@shepai/cli 1.122.1 → 1.122.2-pr367.fdba557

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 (378) hide show
  1. package/dist/packages/core/src/application/ports/output/services/index.d.ts +2 -0
  2. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  3. package/dist/packages/core/src/application/ports/output/services/tunnel-service.interface.d.ts +41 -0
  4. package/dist/packages/core/src/application/ports/output/services/tunnel-service.interface.d.ts.map +1 -0
  5. package/dist/packages/core/src/application/ports/output/services/tunnel-service.interface.js +14 -0
  6. package/dist/packages/core/src/application/ports/output/services/webhook-service.interface.d.ts +65 -0
  7. package/dist/packages/core/src/application/ports/output/services/webhook-service.interface.d.ts.map +1 -0
  8. package/dist/packages/core/src/application/ports/output/services/webhook-service.interface.js +10 -0
  9. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  10. package/dist/packages/core/src/infrastructure/di/container.js +14 -0
  11. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.d.ts.map +1 -1
  12. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/feature-agent-graph.js +21 -4
  13. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/validate.node.d.ts +7 -1
  14. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/validate.node.d.ts.map +1 -1
  15. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/validate.node.js +24 -2
  16. package/dist/packages/core/src/infrastructure/services/tunnel/cloudflare-tunnel.service.d.ts +55 -0
  17. package/dist/packages/core/src/infrastructure/services/tunnel/cloudflare-tunnel.service.d.ts.map +1 -0
  18. package/dist/packages/core/src/infrastructure/services/tunnel/cloudflare-tunnel.service.js +203 -0
  19. package/dist/packages/core/src/infrastructure/services/webhook/github-webhook.service.d.ts +75 -0
  20. package/dist/packages/core/src/infrastructure/services/webhook/github-webhook.service.d.ts.map +1 -0
  21. package/dist/packages/core/src/infrastructure/services/webhook/github-webhook.service.js +372 -0
  22. package/dist/packages/core/src/infrastructure/services/webhook/webhook-manager.service.d.ts +82 -0
  23. package/dist/packages/core/src/infrastructure/services/webhook/webhook-manager.service.d.ts.map +1 -0
  24. package/dist/packages/core/src/infrastructure/services/webhook/webhook-manager.service.js +206 -0
  25. package/dist/src/presentation/cli/commands/ui.command.d.ts.map +1 -1
  26. package/dist/src/presentation/cli/commands/ui.command.js +15 -0
  27. package/dist/src/presentation/web/app/actions/load-webhook-status.d.ts +3 -0
  28. package/dist/src/presentation/web/app/actions/load-webhook-status.d.ts.map +1 -0
  29. package/dist/src/presentation/web/app/actions/load-webhook-status.js +19 -0
  30. package/dist/src/presentation/web/app/api/webhooks/deliveries/route.d.ts +9 -0
  31. package/dist/src/presentation/web/app/api/webhooks/deliveries/route.d.ts.map +1 -0
  32. package/dist/src/presentation/web/app/api/webhooks/deliveries/route.js +27 -0
  33. package/dist/src/presentation/web/app/api/webhooks/github/route.d.ts +17 -0
  34. package/dist/src/presentation/web/app/api/webhooks/github/route.d.ts.map +1 -0
  35. package/dist/src/presentation/web/app/api/webhooks/github/route.js +70 -0
  36. package/dist/src/presentation/web/app/api/webhooks/status/route.d.ts +9 -0
  37. package/dist/src/presentation/web/app/api/webhooks/status/route.d.ts.map +1 -0
  38. package/dist/src/presentation/web/app/api/webhooks/status/route.js +26 -0
  39. package/dist/src/presentation/web/app/webhooks/page.d.ts +4 -0
  40. package/dist/src/presentation/web/app/webhooks/page.d.ts.map +1 -0
  41. package/dist/src/presentation/web/app/webhooks/page.js +9 -0
  42. package/dist/src/presentation/web/components/features/webhooks/types.d.ts +32 -0
  43. package/dist/src/presentation/web/components/features/webhooks/types.d.ts.map +1 -0
  44. package/dist/src/presentation/web/components/features/webhooks/types.js +1 -0
  45. package/dist/src/presentation/web/components/features/webhooks/webhook-delivery-table.d.ts +6 -0
  46. package/dist/src/presentation/web/components/features/webhooks/webhook-delivery-table.d.ts.map +1 -0
  47. package/dist/src/presentation/web/components/features/webhooks/webhook-delivery-table.js +38 -0
  48. package/dist/src/presentation/web/components/features/webhooks/webhook-delivery-table.stories.d.ts +9 -0
  49. package/dist/src/presentation/web/components/features/webhooks/webhook-delivery-table.stories.d.ts.map +1 -0
  50. package/dist/src/presentation/web/components/features/webhooks/webhook-delivery-table.stories.js +69 -0
  51. package/dist/src/presentation/web/components/features/webhooks/webhook-repo-list.d.ts +7 -0
  52. package/dist/src/presentation/web/components/features/webhooks/webhook-repo-list.d.ts.map +1 -0
  53. package/dist/src/presentation/web/components/features/webhooks/webhook-repo-list.js +11 -0
  54. package/dist/src/presentation/web/components/features/webhooks/webhook-repo-list.stories.d.ts +9 -0
  55. package/dist/src/presentation/web/components/features/webhooks/webhook-repo-list.stories.d.ts.map +1 -0
  56. package/dist/src/presentation/web/components/features/webhooks/webhook-repo-list.stories.js +31 -0
  57. package/dist/src/presentation/web/components/features/webhooks/webhook-status-cards.d.ts +6 -0
  58. package/dist/src/presentation/web/components/features/webhooks/webhook-status-cards.d.ts.map +1 -0
  59. package/dist/src/presentation/web/components/features/webhooks/webhook-status-cards.js +21 -0
  60. package/dist/src/presentation/web/components/features/webhooks/webhook-status-cards.stories.d.ts +9 -0
  61. package/dist/src/presentation/web/components/features/webhooks/webhook-status-cards.stories.d.ts.map +1 -0
  62. package/dist/src/presentation/web/components/features/webhooks/webhook-status-cards.stories.js +56 -0
  63. package/dist/src/presentation/web/components/features/webhooks/webhooks-page-client.d.ts +6 -0
  64. package/dist/src/presentation/web/components/features/webhooks/webhooks-page-client.d.ts.map +1 -0
  65. package/dist/src/presentation/web/components/features/webhooks/webhooks-page-client.js +39 -0
  66. package/dist/src/presentation/web/components/features/webhooks/webhooks-page-client.stories.d.ts +8 -0
  67. package/dist/src/presentation/web/components/features/webhooks/webhooks-page-client.stories.d.ts.map +1 -0
  68. package/dist/src/presentation/web/components/features/webhooks/webhooks-page-client.stories.js +59 -0
  69. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  70. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +2 -2
  71. package/dist/src/presentation/web/dev-server.js +20 -0
  72. package/dist/tsconfig.build.tsbuildinfo +1 -1
  73. package/package.json +3 -1
  74. package/web/.next/BUILD_ID +1 -1
  75. package/web/.next/app-path-routes-manifest.json +5 -1
  76. package/web/.next/build-manifest.json +6 -6
  77. package/web/.next/fallback-build-manifest.json +2 -2
  78. package/web/.next/prerender-manifest.json +3 -3
  79. package/web/.next/required-server-files.js +3 -3
  80. package/web/.next/required-server-files.json +3 -3
  81. package/web/.next/routes-manifest.json +24 -0
  82. package/web/.next/server/app/(dashboard)/@drawer/create/page/build-manifest.json +4 -4
  83. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +22 -22
  84. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
  85. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  86. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  87. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/build-manifest.json +4 -4
  88. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +28 -28
  89. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +1 -1
  90. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  91. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  92. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/build-manifest.json +4 -4
  93. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +28 -28
  94. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -1
  95. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  96. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  97. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/build-manifest.json +4 -4
  98. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +20 -20
  99. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  100. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  101. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  102. package/web/.next/server/app/(dashboard)/create/page/build-manifest.json +4 -4
  103. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +22 -22
  104. package/web/.next/server/app/(dashboard)/create/page.js +1 -1
  105. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  106. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  107. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/build-manifest.json +4 -4
  108. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +28 -28
  109. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +1 -1
  110. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  111. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  112. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/build-manifest.json +4 -4
  113. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +28 -28
  114. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +1 -1
  115. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  116. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  117. package/web/.next/server/app/(dashboard)/page/build-manifest.json +4 -4
  118. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +20 -20
  119. package/web/.next/server/app/(dashboard)/page.js +1 -1
  120. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  121. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  122. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/build-manifest.json +4 -4
  123. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +20 -20
  124. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  125. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  126. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  127. package/web/.next/server/app/_global-error/page/build-manifest.json +4 -4
  128. package/web/.next/server/app/_global-error.html +2 -2
  129. package/web/.next/server/app/_global-error.rsc +1 -1
  130. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  131. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  132. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  133. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  134. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  135. package/web/.next/server/app/_not-found/page/build-manifest.json +4 -4
  136. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  137. package/web/.next/server/app/_not-found/page.js +1 -1
  138. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  139. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  140. package/web/.next/server/app/api/attachments/preview/route.js +1 -1
  141. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  142. package/web/.next/server/app/api/evidence/route.js +1 -1
  143. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  144. package/web/.next/server/app/api/graph-data/route.js +1 -1
  145. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  146. package/web/.next/server/app/api/webhooks/deliveries/route/app-paths-manifest.json +3 -0
  147. package/web/.next/server/app/api/webhooks/deliveries/route/build-manifest.json +11 -0
  148. package/web/.next/server/app/api/webhooks/deliveries/route/server-reference-manifest.json +4 -0
  149. package/web/.next/server/app/api/webhooks/deliveries/route.js +6 -0
  150. package/web/.next/server/app/api/webhooks/deliveries/route.js.map +5 -0
  151. package/web/.next/server/app/api/webhooks/deliveries/route.js.nft.json +1 -0
  152. package/web/.next/server/app/api/webhooks/deliveries/route_client-reference-manifest.js +2 -0
  153. package/web/.next/server/app/api/webhooks/github/route/app-paths-manifest.json +3 -0
  154. package/web/.next/server/app/api/webhooks/github/route/build-manifest.json +11 -0
  155. package/web/.next/server/app/api/webhooks/github/route/server-reference-manifest.json +4 -0
  156. package/web/.next/server/app/api/webhooks/github/route.js +6 -0
  157. package/web/.next/server/app/api/webhooks/github/route.js.map +5 -0
  158. package/web/.next/server/app/api/webhooks/github/route.js.nft.json +1 -0
  159. package/web/.next/server/app/api/webhooks/github/route_client-reference-manifest.js +2 -0
  160. package/web/.next/server/app/api/webhooks/status/route/app-paths-manifest.json +3 -0
  161. package/web/.next/server/app/api/webhooks/status/route/build-manifest.json +11 -0
  162. package/web/.next/server/app/api/webhooks/status/route/server-reference-manifest.json +4 -0
  163. package/web/.next/server/app/api/webhooks/status/route.js +6 -0
  164. package/web/.next/server/app/api/webhooks/status/route.js.map +5 -0
  165. package/web/.next/server/app/api/webhooks/status/route.js.nft.json +1 -0
  166. package/web/.next/server/app/api/webhooks/status/route_client-reference-manifest.js +2 -0
  167. package/web/.next/server/app/settings/page/build-manifest.json +4 -4
  168. package/web/.next/server/app/settings/page/server-reference-manifest.json +6 -6
  169. package/web/.next/server/app/settings/page.js +1 -1
  170. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  171. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  172. package/web/.next/server/app/skills/page/build-manifest.json +4 -4
  173. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  174. package/web/.next/server/app/skills/page.js +1 -1
  175. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  176. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  177. package/web/.next/server/app/tools/page/build-manifest.json +4 -4
  178. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  179. package/web/.next/server/app/tools/page.js +1 -1
  180. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  181. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  182. package/web/.next/server/app/version/page/build-manifest.json +4 -4
  183. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  184. package/web/.next/server/app/version/page.js +2 -2
  185. package/web/.next/server/app/version/page.js.nft.json +1 -1
  186. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  187. package/web/.next/server/app/webhooks/page/app-paths-manifest.json +3 -0
  188. package/web/.next/server/app/webhooks/page/build-manifest.json +18 -0
  189. package/web/.next/server/app/webhooks/page/next-font-manifest.json +6 -0
  190. package/web/.next/server/app/webhooks/page/react-loadable-manifest.json +1 -0
  191. package/web/.next/server/app/webhooks/page/server-reference-manifest.json +35 -0
  192. package/web/.next/server/app/webhooks/page.js +16 -0
  193. package/web/.next/server/app/webhooks/page.js.map +5 -0
  194. package/web/.next/server/app/webhooks/page.js.nft.json +1 -0
  195. package/web/.next/server/app/webhooks/page_client-reference-manifest.js +2 -0
  196. package/web/.next/server/app-paths-manifest.json +5 -1
  197. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_webhooks_deliveries_route_actions_d9e34c8d.js +3 -0
  198. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_webhooks_deliveries_route_actions_d9e34c8d.js.map +1 -0
  199. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_webhooks_github_route_actions_1b0d0c38.js +3 -0
  200. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_webhooks_github_route_actions_1b0d0c38.js.map +1 -0
  201. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_webhooks_status_route_actions_1a0d86a1.js +3 -0
  202. package/web/.next/server/chunks/744ca_web__next-internal_server_app_api_webhooks_status_route_actions_1a0d86a1.js.map +1 -0
  203. package/web/.next/server/chunks/[root-of-the-server]__15e5d45c._.js +3 -0
  204. package/web/.next/server/chunks/[root-of-the-server]__15e5d45c._.js.map +1 -0
  205. package/web/.next/server/chunks/[root-of-the-server]__23be381e._.js +3 -0
  206. package/web/.next/server/chunks/[root-of-the-server]__23be381e._.js.map +1 -0
  207. package/web/.next/server/chunks/{[root-of-the-server]__42b7ab55._.js → [root-of-the-server]__3baec744._.js} +2 -2
  208. package/web/.next/server/chunks/{[root-of-the-server]__42b7ab55._.js.map → [root-of-the-server]__3baec744._.js.map} +1 -1
  209. package/web/.next/server/chunks/{[root-of-the-server]__53013576._.js → [root-of-the-server]__7d63f9a4._.js} +2 -2
  210. package/web/.next/server/chunks/[root-of-the-server]__9fc760c0._.js +3 -0
  211. package/web/.next/server/chunks/[root-of-the-server]__9fc760c0._.js.map +1 -0
  212. package/web/.next/server/chunks/{[root-of-the-server]__92078db6._.js → [root-of-the-server]__a1c7c02a._.js} +2 -2
  213. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  214. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  215. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  216. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_activity_22f9667f.js +3 -0
  217. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_activity_22f9667f.js.map +1 -0
  218. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_rocket_1575cd4d.js +3 -0
  219. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_rocket_1575cd4d.js.map +1 -0
  220. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_f30d0343.js +1 -1
  221. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_f30d0343.js.map +1 -1
  222. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_9f1775bb.js +1 -1
  223. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_9f1775bb.js.map +1 -1
  224. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +4 -0
  225. package/web/.next/server/chunks/ssr/{[root-of-the-server]__6b17a22d._.js.map → [root-of-the-server]__11033878._.js.map} +1 -1
  226. package/web/.next/server/chunks/ssr/{[root-of-the-server]__06fef644._.js → [root-of-the-server]__12c2ab7d._.js} +2 -2
  227. package/web/.next/server/chunks/ssr/{[root-of-the-server]__06fef644._.js.map → [root-of-the-server]__12c2ab7d._.js.map} +1 -1
  228. package/web/.next/server/chunks/ssr/[root-of-the-server]__2698e9f4._.js +1 -1
  229. package/web/.next/server/chunks/ssr/[root-of-the-server]__2698e9f4._.js.map +1 -1
  230. package/web/.next/server/chunks/ssr/[root-of-the-server]__3c16bf85._.js +3 -0
  231. package/web/.next/server/chunks/ssr/[root-of-the-server]__3c16bf85._.js.map +1 -0
  232. package/web/.next/server/chunks/ssr/[root-of-the-server]__610f06df._.js +3 -0
  233. package/web/.next/server/chunks/ssr/[root-of-the-server]__610f06df._.js.map +1 -0
  234. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +2 -2
  235. package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js.map +1 -1
  236. package/web/.next/server/chunks/ssr/[root-of-the-server]__76915230._.js +4 -0
  237. package/web/.next/server/chunks/ssr/{[root-of-the-server]__8c553503._.js.map → [root-of-the-server]__76915230._.js.map} +1 -1
  238. package/web/.next/server/chunks/ssr/[root-of-the-server]__7a939e4e._.js +4 -0
  239. package/web/.next/server/chunks/ssr/{[root-of-the-server]__a022445f._.js.map → [root-of-the-server]__7a939e4e._.js.map} +1 -1
  240. package/web/.next/server/chunks/ssr/[root-of-the-server]__87a7ae30._.js +3 -0
  241. package/web/.next/server/chunks/ssr/[root-of-the-server]__87a7ae30._.js.map +1 -0
  242. package/web/.next/server/chunks/ssr/[root-of-the-server]__8e3bf5d7._.js +1 -1
  243. package/web/.next/server/chunks/ssr/[root-of-the-server]__8e3bf5d7._.js.map +1 -1
  244. package/web/.next/server/chunks/ssr/[root-of-the-server]__920dccd5._.js +4 -0
  245. package/web/.next/server/chunks/ssr/[root-of-the-server]__920dccd5._.js.map +1 -0
  246. package/web/.next/server/chunks/ssr/[root-of-the-server]__c07f9f79._.js +1 -1
  247. package/web/.next/server/chunks/ssr/[root-of-the-server]__c07f9f79._.js.map +1 -1
  248. package/web/.next/server/chunks/ssr/[root-of-the-server]__c4dc1b5a._.js +4 -0
  249. package/web/.next/server/chunks/ssr/{[root-of-the-server]__a7de2711._.js.map → [root-of-the-server]__c4dc1b5a._.js.map} +1 -1
  250. package/web/.next/server/chunks/ssr/[root-of-the-server]__c605a375._.js +1 -1
  251. package/web/.next/server/chunks/ssr/[root-of-the-server]__c605a375._.js.map +1 -1
  252. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +4 -0
  253. package/web/.next/server/chunks/ssr/{[root-of-the-server]__804c006d._.js.map → [root-of-the-server]__fdc75809._.js.map} +1 -1
  254. package/web/.next/server/chunks/ssr/_07f57bd0._.js +3 -0
  255. package/web/.next/server/chunks/ssr/_07f57bd0._.js.map +1 -0
  256. package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
  257. package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
  258. package/web/.next/server/chunks/ssr/_15a756dd._.js +3 -0
  259. package/web/.next/server/chunks/ssr/_15a756dd._.js.map +1 -0
  260. package/web/.next/server/chunks/ssr/_26b2c311._.js +3 -0
  261. package/web/.next/server/chunks/ssr/_26b2c311._.js.map +1 -0
  262. package/web/.next/server/chunks/ssr/_2f6f48b8._.js +1 -1
  263. package/web/.next/server/chunks/ssr/_2f6f48b8._.js.map +1 -1
  264. package/web/.next/server/chunks/ssr/{_92d851b4._.js → _3d1ed2a7._.js} +2 -2
  265. package/web/.next/server/chunks/ssr/_3d1ed2a7._.js.map +1 -0
  266. package/web/.next/server/chunks/ssr/_3eca2297._.js +3 -0
  267. package/web/.next/server/chunks/ssr/{_b294a667._.js.map → _3eca2297._.js.map} +1 -1
  268. package/web/.next/server/chunks/ssr/_4470c218._.js +3 -0
  269. package/web/.next/server/chunks/ssr/_4470c218._.js.map +1 -0
  270. package/web/.next/server/chunks/ssr/_462cc3a6._.js +3 -0
  271. package/web/.next/server/chunks/ssr/_462cc3a6._.js.map +1 -0
  272. package/web/.next/server/chunks/ssr/_961cb4b2._.js +3 -0
  273. package/web/.next/server/chunks/ssr/_961cb4b2._.js.map +1 -0
  274. package/web/.next/server/chunks/ssr/_a4899a76._.js +3 -0
  275. package/web/.next/server/chunks/ssr/_a4899a76._.js.map +1 -0
  276. package/web/.next/server/chunks/ssr/_b5babdfc._.js +9 -0
  277. package/web/.next/server/chunks/ssr/_b5babdfc._.js.map +1 -0
  278. package/web/.next/server/chunks/ssr/_b7eb93fc._.js +4 -0
  279. package/web/.next/server/chunks/ssr/_b7eb93fc._.js.map +1 -0
  280. package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
  281. package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
  282. package/web/.next/server/chunks/ssr/_f8b36e2c._.js +3 -0
  283. package/web/.next/server/chunks/ssr/_f8b36e2c._.js.map +1 -0
  284. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  285. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  286. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_webhooks_webhooks-page-client_tsx_b2662ea3._.js +3 -0
  287. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_webhooks_webhooks-page-client_tsx_b2662ea3._.js.map +1 -0
  288. package/web/.next/server/chunks/ssr/{_1bb131c4._.js → node_modules__pnpm_747b43ac._.js} +2 -2
  289. package/web/.next/server/chunks/ssr/node_modules__pnpm_747b43ac._.js.map +1 -0
  290. package/web/.next/server/chunks/ssr/src_presentation_web_5f039db1._.js +2 -2
  291. package/web/.next/server/chunks/ssr/src_presentation_web_5f039db1._.js.map +1 -1
  292. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_2a52b697.js +1 -1
  293. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_2a52b697.js.map +1 -1
  294. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  295. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  296. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  297. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  298. package/web/.next/server/chunks/ssr/src_presentation_web_c4337169._.js +2 -2
  299. package/web/.next/server/chunks/ssr/src_presentation_web_c4337169._.js.map +1 -1
  300. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +1 -1
  301. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
  302. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  303. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  304. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  305. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  306. package/web/.next/server/middleware-build-manifest.js +4 -4
  307. package/web/.next/server/pages/500.html +2 -2
  308. package/web/.next/server/server-reference-manifest.js +1 -1
  309. package/web/.next/server/server-reference-manifest.json +57 -35
  310. package/web/.next/static/chunks/0c76de69325ef923.js +1 -0
  311. package/web/.next/static/chunks/{658fc2f5f65cf3b5.js → 1b9d34af4064dafe.js} +2 -2
  312. package/web/.next/static/chunks/{50dd80c8aafa3b20.js → 293ccfbe777d995a.js} +1 -1
  313. package/web/.next/static/chunks/3835a408dbf8d0bb.js +1 -0
  314. package/web/.next/static/chunks/{941c13dcdb1978a4.js → 3f0773d9b56e04a2.js} +2 -2
  315. package/web/.next/static/chunks/40b6bcf1a2de4a0f.js +1 -0
  316. package/web/.next/static/chunks/4c5b31a2c65d4aa5.js +11 -0
  317. package/web/.next/static/chunks/59a0709f1b080353.js +1 -0
  318. package/web/.next/static/chunks/5f6161ceb4263319.js +1 -0
  319. package/web/.next/static/chunks/77ff1b7b725b7780.js +1 -0
  320. package/web/.next/static/chunks/{672e3da3ad26005b.js → 98e3a7cf58fc912a.js} +1 -1
  321. package/web/.next/static/chunks/9af45e885bd4ccef.js +1 -0
  322. package/web/.next/static/chunks/a57dc2afcf67304a.js +1 -0
  323. package/web/.next/static/chunks/b4f502a76ba10e4b.js +1 -0
  324. package/web/.next/static/chunks/b5d8e8100e310d9f.css +1 -0
  325. package/web/.next/static/chunks/{df85e52b1afb7340.js → b747e59ebdcbd917.js} +1 -1
  326. package/web/.next/static/chunks/c04ce6760f349f3e.js +1 -0
  327. package/web/.next/static/chunks/{78ab7b134f0649ac.js → c3c68de2392a9071.js} +1 -1
  328. package/web/.next/static/chunks/c7e793951b20a67f.js +1 -0
  329. package/web/.next/static/chunks/cf30e300568abf0f.js +1 -0
  330. package/web/.next/static/chunks/d43dff89384fb60a.js +1 -0
  331. package/web/.next/static/chunks/{37ac7fe1cd493293.js → e087f3e5c46c0756.js} +1 -1
  332. package/web/.next/static/chunks/{turbopack-426d9bc2450816ba.js → turbopack-b1685b5f87ad1d60.js} +1 -1
  333. package/web/.next/server/chunks/ssr/[root-of-the-server]__545792ab._.js +0 -3
  334. package/web/.next/server/chunks/ssr/[root-of-the-server]__545792ab._.js.map +0 -1
  335. package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +0 -4
  336. package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +0 -4
  337. package/web/.next/server/chunks/ssr/[root-of-the-server]__8c553503._.js +0 -4
  338. package/web/.next/server/chunks/ssr/[root-of-the-server]__9f155c0e._.js +0 -3
  339. package/web/.next/server/chunks/ssr/[root-of-the-server]__9f155c0e._.js.map +0 -1
  340. package/web/.next/server/chunks/ssr/[root-of-the-server]__a022445f._.js +0 -4
  341. package/web/.next/server/chunks/ssr/[root-of-the-server]__a7de2711._.js +0 -4
  342. package/web/.next/server/chunks/ssr/_0dc2cfd3._.js +0 -3
  343. package/web/.next/server/chunks/ssr/_0dc2cfd3._.js.map +0 -1
  344. package/web/.next/server/chunks/ssr/_1bb131c4._.js.map +0 -1
  345. package/web/.next/server/chunks/ssr/_1bb79fe8._.js +0 -3
  346. package/web/.next/server/chunks/ssr/_1bb79fe8._.js.map +0 -1
  347. package/web/.next/server/chunks/ssr/_469c5451._.js +0 -3
  348. package/web/.next/server/chunks/ssr/_469c5451._.js.map +0 -1
  349. package/web/.next/server/chunks/ssr/_6d26a08f._.js +0 -3
  350. package/web/.next/server/chunks/ssr/_6d26a08f._.js.map +0 -1
  351. package/web/.next/server/chunks/ssr/_75f4ccb3._.js +0 -3
  352. package/web/.next/server/chunks/ssr/_75f4ccb3._.js.map +0 -1
  353. package/web/.next/server/chunks/ssr/_92d851b4._.js.map +0 -1
  354. package/web/.next/server/chunks/ssr/_b294a667._.js +0 -3
  355. package/web/.next/server/chunks/ssr/_b5fc318a._.js +0 -3
  356. package/web/.next/server/chunks/ssr/_b5fc318a._.js.map +0 -1
  357. package/web/.next/server/chunks/ssr/_f1a649e3._.js +0 -9
  358. package/web/.next/server/chunks/ssr/_f1a649e3._.js.map +0 -1
  359. package/web/.next/server/chunks/ssr/node_modules__pnpm_b59e4b16._.js +0 -3
  360. package/web/.next/server/chunks/ssr/node_modules__pnpm_b59e4b16._.js.map +0 -1
  361. package/web/.next/static/chunks/0d2af96e64960ef5.css +0 -1
  362. package/web/.next/static/chunks/11e4439096f8d652.js +0 -1
  363. package/web/.next/static/chunks/303a1217006489b9.js +0 -1
  364. package/web/.next/static/chunks/4562ee849ea13c3a.js +0 -1
  365. package/web/.next/static/chunks/845d8e58a91014e6.js +0 -1
  366. package/web/.next/static/chunks/84a181ff3270fd9f.js +0 -1
  367. package/web/.next/static/chunks/96eeeb28e06de78c.js +0 -1
  368. package/web/.next/static/chunks/9df4681de92ebfc3.js +0 -11
  369. package/web/.next/static/chunks/cca0f5112a9260d8.js +0 -1
  370. package/web/.next/static/chunks/e2ef95d904c360f3.js +0 -1
  371. package/web/.next/static/chunks/e6a2fb8707e079ff.js +0 -1
  372. package/web/.next/static/chunks/e9c3fbbeb418cbfa.js +0 -1
  373. package/web/.next/static/chunks/ed3a602003bcb31b.js +0 -1
  374. /package/web/.next/server/chunks/{[root-of-the-server]__53013576._.js.map → [root-of-the-server]__7d63f9a4._.js.map} +0 -0
  375. /package/web/.next/server/chunks/{[root-of-the-server]__92078db6._.js.map → [root-of-the-server]__a1c7c02a._.js.map} +0 -0
  376. /package/web/.next/static/{hsK1x0unrjI_pUsvQhn6P → svtG6xX1MdaGWkml8eX53}/_buildManifest.js +0 -0
  377. /package/web/.next/static/{hsK1x0unrjI_pUsvQhn6P → svtG6xX1MdaGWkml8eX53}/_clientMiddlewareManifest.json +0 -0
  378. /package/web/.next/static/{hsK1x0unrjI_pUsvQhn6P → svtG6xX1MdaGWkml8eX53}/_ssgManifest.js +0 -0
@@ -1,2 +1,2 @@
1
1
  globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {};
2
- globalThis.__RSC_MANIFEST["/version/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/layout-router.js <module evaluation>":{"id":40799,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":40799,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/render-from-template-context.js <module evaluation>":{"id":73006,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":73006,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-page.js <module evaluation>":{"id":67804,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-page.js":{"id":67804,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-segment.js <module evaluation>":{"id":50122,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":50122,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js <module evaluation>":{"id":19292,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":19292,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js <module evaluation>":{"id":30088,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":30088,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/framework/boundary-components.js <module evaluation>":{"id":66658,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":66658,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/src/presentation/web/app/global-error.tsx <module evaluation>":{"id":98295,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/src/presentation/web/app/global-error.tsx":{"id":98295,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/src/presentation/web/components/layouts/app-shell/app-shell.tsx <module evaluation>":{"id":87292,"name":"*","chunks":["/_next/static/chunks/9df4681de92ebfc3.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/e2ef95d904c360f3.js","/_next/static/chunks/96eeeb28e06de78c.js"],"async":false},"[project]/src/presentation/web/components/layouts/app-shell/app-shell.tsx":{"id":87292,"name":"*","chunks":["/_next/static/chunks/9df4681de92ebfc3.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/e2ef95d904c360f3.js","/_next/static/chunks/96eeeb28e06de78c.js"],"async":false},"[project]/src/presentation/web/components/ui/sonner.tsx <module evaluation>":{"id":25251,"name":"*","chunks":["/_next/static/chunks/9df4681de92ebfc3.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/e2ef95d904c360f3.js","/_next/static/chunks/96eeeb28e06de78c.js"],"async":false},"[project]/src/presentation/web/components/ui/sonner.tsx":{"id":25251,"name":"*","chunks":["/_next/static/chunks/9df4681de92ebfc3.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/e2ef95d904c360f3.js","/_next/static/chunks/96eeeb28e06de78c.js"],"async":false},"[project]/src/presentation/web/hooks/feature-flags-context.tsx <module evaluation>":{"id":75921,"name":"*","chunks":["/_next/static/chunks/9df4681de92ebfc3.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/e2ef95d904c360f3.js","/_next/static/chunks/96eeeb28e06de78c.js"],"async":false},"[project]/src/presentation/web/hooks/feature-flags-context.tsx":{"id":75921,"name":"*","chunks":["/_next/static/chunks/9df4681de92ebfc3.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/e2ef95d904c360f3.js","/_next/static/chunks/96eeeb28e06de78c.js"],"async":false},"[project]/src/presentation/web/components/features/version/version-page-client.tsx <module evaluation>":{"id":1699,"name":"*","chunks":["/_next/static/chunks/9df4681de92ebfc3.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/e2ef95d904c360f3.js","/_next/static/chunks/96eeeb28e06de78c.js","/_next/static/chunks/cca0f5112a9260d8.js"],"async":false},"[project]/src/presentation/web/components/features/version/version-page-client.tsx":{"id":1699,"name":"*","chunks":["/_next/static/chunks/9df4681de92ebfc3.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/672e3da3ad26005b.js","/_next/static/chunks/e2ef95d904c360f3.js","/_next/static/chunks/96eeeb28e06de78c.js","/_next/static/chunks/cca0f5112a9260d8.js"],"async":false}},"ssrModuleMapping":{"40799":{"*":{"id":69218,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"73006":{"*":{"id":76926,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"67804":{"*":{"id":78378,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"50122":{"*":{"id":18508,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"19292":{"*":{"id":55259,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"30088":{"*":{"id":33028,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"66658":{"*":{"id":42422,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"98295":{"*":{"id":84831,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"87292":{"*":{"id":66560,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__545792ab._.js","server/chunks/ssr/_0e506641._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/_f1a649e3._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/_1bb131c4._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js"],"async":false}},"25251":{"*":{"id":58313,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__545792ab._.js","server/chunks/ssr/_0e506641._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/_f1a649e3._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/_1bb131c4._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js"],"async":false}},"75921":{"*":{"id":21333,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__545792ab._.js","server/chunks/ssr/_0e506641._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/_f1a649e3._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/_1bb131c4._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js"],"async":false}},"1699":{"*":{"id":86259,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__545792ab._.js","server/chunks/ssr/_0e506641._.js","server/chunks/ssr/_b5fc318a._.js","server/chunks/ssr/_f1a649e3._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/_1bb131c4._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js","server/chunks/ssr/src_presentation_web_components_bdcfba35._.js","server/chunks/ssr/_1bb79fe8._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"40799":{"*":{"id":48035,"name":"*","chunks":[],"async":false}},"73006":{"*":{"id":22994,"name":"*","chunks":[],"async":false}},"67804":{"*":{"id":21809,"name":"*","chunks":[],"async":false}},"50122":{"*":{"id":70251,"name":"*","chunks":[],"async":false}},"19292":{"*":{"id":39498,"name":"*","chunks":[],"async":false}},"30088":{"*":{"id":2021,"name":"*","chunks":[],"async":false}},"66658":{"*":{"id":47390,"name":"*","chunks":[],"async":false}},"98295":{"*":{"id":73449,"name":"*","chunks":[],"async":false}},"87292":{"*":{"id":34168,"name":"*","chunks":[],"async":false}},"25251":{"*":{"id":11900,"name":"*","chunks":[],"async":false}},"75921":{"*":{"id":59259,"name":"*","chunks":[],"async":false}},"1699":{"*":{"id":93933,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/presentation/web/app/global-error":[],"[project]/src/presentation/web/app/layout":[{"path":"static/chunks/61c4d617e4b83d4b.css","inlined":false},{"path":"static/chunks/0d2af96e64960ef5.css","inlined":false}],"[project]/src/presentation/web/app/version/page":[{"path":"static/chunks/61c4d617e4b83d4b.css","inlined":false},{"path":"static/chunks/0d2af96e64960ef5.css","inlined":false}]},"entryJSFiles":{"[project]/src/presentation/web/app/global-error":["static/chunks/356ebc89a2a97627.js","static/chunks/fe70e73feb07bcfd.js"],"[project]/src/presentation/web/app/layout":["static/chunks/9df4681de92ebfc3.js","static/chunks/52b56677c842e45f.js","static/chunks/672e3da3ad26005b.js","static/chunks/e2ef95d904c360f3.js","static/chunks/96eeeb28e06de78c.js"],"[project]/src/presentation/web/app/version/page":["static/chunks/9df4681de92ebfc3.js","static/chunks/52b56677c842e45f.js","static/chunks/672e3da3ad26005b.js","static/chunks/e2ef95d904c360f3.js","static/chunks/96eeeb28e06de78c.js","static/chunks/cca0f5112a9260d8.js"]}}
2
+ globalThis.__RSC_MANIFEST["/version/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/layout-router.js <module evaluation>":{"id":40799,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":40799,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/render-from-template-context.js <module evaluation>":{"id":73006,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":73006,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-page.js <module evaluation>":{"id":67804,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-page.js":{"id":67804,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-segment.js <module evaluation>":{"id":50122,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":50122,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js <module evaluation>":{"id":19292,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":19292,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js <module evaluation>":{"id":30088,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":30088,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/framework/boundary-components.js <module evaluation>":{"id":66658,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":66658,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/src/presentation/web/app/global-error.tsx <module evaluation>":{"id":98295,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/src/presentation/web/app/global-error.tsx":{"id":98295,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/src/presentation/web/components/layouts/app-shell/app-shell.tsx <module evaluation>":{"id":87292,"name":"*","chunks":["/_next/static/chunks/0c76de69325ef923.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/4c5b31a2c65d4aa5.js","/_next/static/chunks/9af45e885bd4ccef.js","/_next/static/chunks/98e3a7cf58fc912a.js","/_next/static/chunks/c04ce6760f349f3e.js"],"async":false},"[project]/src/presentation/web/components/layouts/app-shell/app-shell.tsx":{"id":87292,"name":"*","chunks":["/_next/static/chunks/0c76de69325ef923.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/4c5b31a2c65d4aa5.js","/_next/static/chunks/9af45e885bd4ccef.js","/_next/static/chunks/98e3a7cf58fc912a.js","/_next/static/chunks/c04ce6760f349f3e.js"],"async":false},"[project]/src/presentation/web/components/ui/sonner.tsx <module evaluation>":{"id":25251,"name":"*","chunks":["/_next/static/chunks/0c76de69325ef923.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/4c5b31a2c65d4aa5.js","/_next/static/chunks/9af45e885bd4ccef.js","/_next/static/chunks/98e3a7cf58fc912a.js","/_next/static/chunks/c04ce6760f349f3e.js"],"async":false},"[project]/src/presentation/web/components/ui/sonner.tsx":{"id":25251,"name":"*","chunks":["/_next/static/chunks/0c76de69325ef923.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/4c5b31a2c65d4aa5.js","/_next/static/chunks/9af45e885bd4ccef.js","/_next/static/chunks/98e3a7cf58fc912a.js","/_next/static/chunks/c04ce6760f349f3e.js"],"async":false},"[project]/src/presentation/web/hooks/feature-flags-context.tsx <module evaluation>":{"id":75921,"name":"*","chunks":["/_next/static/chunks/0c76de69325ef923.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/4c5b31a2c65d4aa5.js","/_next/static/chunks/9af45e885bd4ccef.js","/_next/static/chunks/98e3a7cf58fc912a.js","/_next/static/chunks/c04ce6760f349f3e.js"],"async":false},"[project]/src/presentation/web/hooks/feature-flags-context.tsx":{"id":75921,"name":"*","chunks":["/_next/static/chunks/0c76de69325ef923.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/4c5b31a2c65d4aa5.js","/_next/static/chunks/9af45e885bd4ccef.js","/_next/static/chunks/98e3a7cf58fc912a.js","/_next/static/chunks/c04ce6760f349f3e.js"],"async":false},"[project]/src/presentation/web/components/features/version/version-page-client.tsx <module evaluation>":{"id":1699,"name":"*","chunks":["/_next/static/chunks/0c76de69325ef923.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/4c5b31a2c65d4aa5.js","/_next/static/chunks/9af45e885bd4ccef.js","/_next/static/chunks/98e3a7cf58fc912a.js","/_next/static/chunks/c04ce6760f349f3e.js","/_next/static/chunks/a57dc2afcf67304a.js"],"async":false},"[project]/src/presentation/web/components/features/version/version-page-client.tsx":{"id":1699,"name":"*","chunks":["/_next/static/chunks/0c76de69325ef923.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/4c5b31a2c65d4aa5.js","/_next/static/chunks/9af45e885bd4ccef.js","/_next/static/chunks/98e3a7cf58fc912a.js","/_next/static/chunks/c04ce6760f349f3e.js","/_next/static/chunks/a57dc2afcf67304a.js"],"async":false}},"ssrModuleMapping":{"40799":{"*":{"id":69218,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"73006":{"*":{"id":76926,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"67804":{"*":{"id":78378,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"50122":{"*":{"id":18508,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"19292":{"*":{"id":55259,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"30088":{"*":{"id":33028,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"66658":{"*":{"id":42422,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"98295":{"*":{"id":84831,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"87292":{"*":{"id":66560,"name":"*","chunks":["server/chunks/ssr/_0e506641._.js","server/chunks/ssr/_b5babdfc._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/_a4899a76._.js","server/chunks/ssr/[root-of-the-server]__610f06df._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/_26b2c311._.js","server/chunks/ssr/node_modules__pnpm_747b43ac._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js"],"async":false}},"25251":{"*":{"id":58313,"name":"*","chunks":["server/chunks/ssr/_0e506641._.js","server/chunks/ssr/_b5babdfc._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/_a4899a76._.js","server/chunks/ssr/[root-of-the-server]__610f06df._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/_26b2c311._.js","server/chunks/ssr/node_modules__pnpm_747b43ac._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js"],"async":false}},"75921":{"*":{"id":21333,"name":"*","chunks":["server/chunks/ssr/_0e506641._.js","server/chunks/ssr/_b5babdfc._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/_a4899a76._.js","server/chunks/ssr/[root-of-the-server]__610f06df._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/_26b2c311._.js","server/chunks/ssr/node_modules__pnpm_747b43ac._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js"],"async":false}},"1699":{"*":{"id":86259,"name":"*","chunks":["server/chunks/ssr/_0e506641._.js","server/chunks/ssr/_b5babdfc._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/_a4899a76._.js","server/chunks/ssr/[root-of-the-server]__610f06df._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/_26b2c311._.js","server/chunks/ssr/node_modules__pnpm_747b43ac._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js","server/chunks/ssr/src_presentation_web_components_bdcfba35._.js","server/chunks/ssr/_15a756dd._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"40799":{"*":{"id":48035,"name":"*","chunks":[],"async":false}},"73006":{"*":{"id":22994,"name":"*","chunks":[],"async":false}},"67804":{"*":{"id":21809,"name":"*","chunks":[],"async":false}},"50122":{"*":{"id":70251,"name":"*","chunks":[],"async":false}},"19292":{"*":{"id":39498,"name":"*","chunks":[],"async":false}},"30088":{"*":{"id":2021,"name":"*","chunks":[],"async":false}},"66658":{"*":{"id":47390,"name":"*","chunks":[],"async":false}},"98295":{"*":{"id":73449,"name":"*","chunks":[],"async":false}},"87292":{"*":{"id":34168,"name":"*","chunks":[],"async":false}},"25251":{"*":{"id":11900,"name":"*","chunks":[],"async":false}},"75921":{"*":{"id":59259,"name":"*","chunks":[],"async":false}},"1699":{"*":{"id":93933,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/presentation/web/app/global-error":[],"[project]/src/presentation/web/app/layout":[{"path":"static/chunks/61c4d617e4b83d4b.css","inlined":false},{"path":"static/chunks/b5d8e8100e310d9f.css","inlined":false}],"[project]/src/presentation/web/app/version/page":[{"path":"static/chunks/61c4d617e4b83d4b.css","inlined":false},{"path":"static/chunks/b5d8e8100e310d9f.css","inlined":false}]},"entryJSFiles":{"[project]/src/presentation/web/app/global-error":["static/chunks/356ebc89a2a97627.js","static/chunks/fe70e73feb07bcfd.js"],"[project]/src/presentation/web/app/layout":["static/chunks/0c76de69325ef923.js","static/chunks/52b56677c842e45f.js","static/chunks/4c5b31a2c65d4aa5.js","static/chunks/9af45e885bd4ccef.js","static/chunks/98e3a7cf58fc912a.js","static/chunks/c04ce6760f349f3e.js"],"[project]/src/presentation/web/app/version/page":["static/chunks/0c76de69325ef923.js","static/chunks/52b56677c842e45f.js","static/chunks/4c5b31a2c65d4aa5.js","static/chunks/9af45e885bd4ccef.js","static/chunks/98e3a7cf58fc912a.js","static/chunks/c04ce6760f349f3e.js","static/chunks/a57dc2afcf67304a.js"]}}
@@ -0,0 +1,3 @@
1
+ {
2
+ "/webhooks/page": "app/webhooks/page.js"
3
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "devFiles": [],
3
+ "ampDevFiles": [],
4
+ "polyfillFiles": [
5
+ "static/chunks/a6dad97d9634a72d.js"
6
+ ],
7
+ "lowPriorityFiles": [],
8
+ "rootMainFiles": [
9
+ "static/chunks/40b6bcf1a2de4a0f.js",
10
+ "static/chunks/c7e793951b20a67f.js",
11
+ "static/chunks/4b6cc9f65260f2bd.js",
12
+ "static/chunks/cfe4dc9904fcfddb.js",
13
+ "static/chunks/d4d8f0a137bd2eb4.js",
14
+ "static/chunks/turbopack-b1685b5f87ad1d60.js"
15
+ ],
16
+ "pages": {},
17
+ "ampFirstPages": []
18
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "pages": {},
3
+ "app": {},
4
+ "appUsingSizeAdjust": false,
5
+ "pagesUsingSizeAdjust": false
6
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "node": {
3
+ "003fb395a82a35493ff21e1b4d76a40fb968562d13": {
4
+ "workers": {
5
+ "app/webhooks/page": {
6
+ "moduleId": 54376,
7
+ "async": false,
8
+ "exportedName": "pickFolder",
9
+ "filename": "src/presentation/web/app/actions/pick-folder.ts"
10
+ }
11
+ },
12
+ "layer": {
13
+ "app/webhooks/page": "action-browser"
14
+ },
15
+ "exportedName": "pickFolder",
16
+ "filename": "src/presentation/web/app/actions/pick-folder.ts"
17
+ },
18
+ "006ed6ef0f1458640f4a9a7ca79720cf52b841d858": {
19
+ "workers": {
20
+ "app/webhooks/page": {
21
+ "moduleId": 54376,
22
+ "async": false,
23
+ "exportedName": "loadWebhookStatus",
24
+ "filename": "src/presentation/web/app/actions/load-webhook-status.ts"
25
+ }
26
+ },
27
+ "layer": {
28
+ "app/webhooks/page": "rsc"
29
+ },
30
+ "exportedName": "loadWebhookStatus",
31
+ "filename": "src/presentation/web/app/actions/load-webhook-status.ts"
32
+ }
33
+ },
34
+ "edge": {}
35
+ }
@@ -0,0 +1,16 @@
1
+ var R=require("../../chunks/ssr/[turbopack]_runtime.js")("server/app/webhooks/page.js")
2
+ R.c("server/chunks/ssr/[root-of-the-server]__87a7ae30._.js")
3
+ R.c("server/chunks/ssr/403f9_next_dist_1f3516d7._.js")
4
+ R.c("server/chunks/ssr/_b7eb93fc._.js")
5
+ R.c("server/chunks/ssr/[root-of-the-server]__2dddfea9._.js")
6
+ R.c("server/chunks/ssr/403f9_next_dist_compiled_dc550646._.js")
7
+ R.c("server/chunks/ssr/403f9_next_dist_esm_3981ee1d._.js")
8
+ R.c("server/chunks/ssr/[root-of-the-server]__b14946f5._.js")
9
+ R.c("server/chunks/ssr/src_presentation_web_app_global-error_tsx_14c389b5._.js")
10
+ R.c("server/chunks/ssr/_a37f5f18._.js")
11
+ R.c("server/chunks/ssr/src_presentation_web_app_not-found_tsx_64b86c46._.js")
12
+ R.c("server/chunks/ssr/403f9_next_dist_client_components_44deecdf._.js")
13
+ R.c("server/chunks/ssr/403f9_next_dist_client_components_builtin_unauthorized_a2906ebd.js")
14
+ R.c("server/chunks/ssr/[root-of-the-server]__920dccd5._.js")
15
+ R.m(51076)
16
+ module.exports=R.m(51076).exports
@@ -0,0 +1,5 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sections": []
5
+ }
@@ -0,0 +1 @@
1
+ {"version":1,"files":["../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/package.json","../../../../../../../node_modules/next","../../../../node_modules/next","../../chunks/ssr/403f9_next_d6c8d28d._.js","../../chunks/ssr/403f9_next_dist_1f3516d7._.js","../../chunks/ssr/403f9_next_dist_a53cb908._.js","../../chunks/ssr/403f9_next_dist_client_components_44deecdf._.js","../../chunks/ssr/403f9_next_dist_client_components_builtin_unauthorized_a2906ebd.js","../../chunks/ssr/403f9_next_dist_compiled_dc550646._.js","../../chunks/ssr/403f9_next_dist_esm_3981ee1d._.js","../../chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js","../../chunks/ssr/7f428_lucide-react_dist_esm_icons_activity_22f9667f.js","../../chunks/ssr/[root-of-the-server]__2dddfea9._.js","../../chunks/ssr/[root-of-the-server]__610f06df._.js","../../chunks/ssr/[root-of-the-server]__87a7ae30._.js","../../chunks/ssr/[root-of-the-server]__920dccd5._.js","../../chunks/ssr/[root-of-the-server]__b062b383._.js","../../chunks/ssr/[root-of-the-server]__b14946f5._.js","../../chunks/ssr/[turbopack]_runtime.js","../../chunks/ssr/_0e506641._.js","../../chunks/ssr/_26b2c311._.js","../../chunks/ssr/_4470c218._.js","../../chunks/ssr/_9ac70f88._.js","../../chunks/ssr/_a37f5f18._.js","../../chunks/ssr/_a4899a76._.js","../../chunks/ssr/_b5babdfc._.js","../../chunks/ssr/_b7eb93fc._.js","../../chunks/ssr/b1a17_presentation_web_components_features_webhooks_webhooks-page-client_tsx_b2662ea3._.js","../../chunks/ssr/node_modules__pnpm_747b43ac._.js","../../chunks/ssr/src_presentation_web_app_global-error_tsx_14c389b5._.js","../../chunks/ssr/src_presentation_web_app_not-found_tsx_64b86c46._.js","../../chunks/ssr/src_presentation_web_components_e599bb8c._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]}
@@ -0,0 +1,2 @@
1
+ globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {};
2
+ globalThis.__RSC_MANIFEST["/webhooks/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/layout-router.js <module evaluation>":{"id":40799,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":40799,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/render-from-template-context.js <module evaluation>":{"id":73006,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":73006,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-page.js <module evaluation>":{"id":67804,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-page.js":{"id":67804,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-segment.js <module evaluation>":{"id":50122,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":50122,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js <module evaluation>":{"id":19292,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":19292,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js <module evaluation>":{"id":30088,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":30088,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/framework/boundary-components.js <module evaluation>":{"id":66658,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@playwright+test@1.58.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":66658,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/src/presentation/web/app/global-error.tsx <module evaluation>":{"id":98295,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/src/presentation/web/app/global-error.tsx":{"id":98295,"name":"*","chunks":["/_next/static/chunks/356ebc89a2a97627.js","/_next/static/chunks/fe70e73feb07bcfd.js"],"async":false},"[project]/src/presentation/web/components/layouts/app-shell/app-shell.tsx <module evaluation>":{"id":87292,"name":"*","chunks":["/_next/static/chunks/0c76de69325ef923.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/4c5b31a2c65d4aa5.js","/_next/static/chunks/9af45e885bd4ccef.js","/_next/static/chunks/98e3a7cf58fc912a.js","/_next/static/chunks/c04ce6760f349f3e.js"],"async":false},"[project]/src/presentation/web/components/layouts/app-shell/app-shell.tsx":{"id":87292,"name":"*","chunks":["/_next/static/chunks/0c76de69325ef923.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/4c5b31a2c65d4aa5.js","/_next/static/chunks/9af45e885bd4ccef.js","/_next/static/chunks/98e3a7cf58fc912a.js","/_next/static/chunks/c04ce6760f349f3e.js"],"async":false},"[project]/src/presentation/web/components/ui/sonner.tsx <module evaluation>":{"id":25251,"name":"*","chunks":["/_next/static/chunks/0c76de69325ef923.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/4c5b31a2c65d4aa5.js","/_next/static/chunks/9af45e885bd4ccef.js","/_next/static/chunks/98e3a7cf58fc912a.js","/_next/static/chunks/c04ce6760f349f3e.js"],"async":false},"[project]/src/presentation/web/components/ui/sonner.tsx":{"id":25251,"name":"*","chunks":["/_next/static/chunks/0c76de69325ef923.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/4c5b31a2c65d4aa5.js","/_next/static/chunks/9af45e885bd4ccef.js","/_next/static/chunks/98e3a7cf58fc912a.js","/_next/static/chunks/c04ce6760f349f3e.js"],"async":false},"[project]/src/presentation/web/hooks/feature-flags-context.tsx <module evaluation>":{"id":75921,"name":"*","chunks":["/_next/static/chunks/0c76de69325ef923.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/4c5b31a2c65d4aa5.js","/_next/static/chunks/9af45e885bd4ccef.js","/_next/static/chunks/98e3a7cf58fc912a.js","/_next/static/chunks/c04ce6760f349f3e.js"],"async":false},"[project]/src/presentation/web/hooks/feature-flags-context.tsx":{"id":75921,"name":"*","chunks":["/_next/static/chunks/0c76de69325ef923.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/4c5b31a2c65d4aa5.js","/_next/static/chunks/9af45e885bd4ccef.js","/_next/static/chunks/98e3a7cf58fc912a.js","/_next/static/chunks/c04ce6760f349f3e.js"],"async":false},"[project]/src/presentation/web/components/features/webhooks/webhooks-page-client.tsx <module evaluation>":{"id":4273,"name":"*","chunks":["/_next/static/chunks/0c76de69325ef923.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/4c5b31a2c65d4aa5.js","/_next/static/chunks/9af45e885bd4ccef.js","/_next/static/chunks/98e3a7cf58fc912a.js","/_next/static/chunks/c04ce6760f349f3e.js","/_next/static/chunks/cf30e300568abf0f.js"],"async":false},"[project]/src/presentation/web/components/features/webhooks/webhooks-page-client.tsx":{"id":4273,"name":"*","chunks":["/_next/static/chunks/0c76de69325ef923.js","/_next/static/chunks/52b56677c842e45f.js","/_next/static/chunks/4c5b31a2c65d4aa5.js","/_next/static/chunks/9af45e885bd4ccef.js","/_next/static/chunks/98e3a7cf58fc912a.js","/_next/static/chunks/c04ce6760f349f3e.js","/_next/static/chunks/cf30e300568abf0f.js"],"async":false}},"ssrModuleMapping":{"40799":{"*":{"id":69218,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"73006":{"*":{"id":76926,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"67804":{"*":{"id":78378,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"50122":{"*":{"id":18508,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"19292":{"*":{"id":55259,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"30088":{"*":{"id":33028,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"66658":{"*":{"id":42422,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"98295":{"*":{"id":84831,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__b062b383._.js","server/chunks/ssr/403f9_next_dist_esm_ceb2fa1e._.js"],"async":false}},"87292":{"*":{"id":66560,"name":"*","chunks":["server/chunks/ssr/_0e506641._.js","server/chunks/ssr/_b5babdfc._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/_a4899a76._.js","server/chunks/ssr/[root-of-the-server]__610f06df._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/_26b2c311._.js","server/chunks/ssr/node_modules__pnpm_747b43ac._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js"],"async":false}},"25251":{"*":{"id":58313,"name":"*","chunks":["server/chunks/ssr/_0e506641._.js","server/chunks/ssr/_b5babdfc._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/_a4899a76._.js","server/chunks/ssr/[root-of-the-server]__610f06df._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/_26b2c311._.js","server/chunks/ssr/node_modules__pnpm_747b43ac._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js"],"async":false}},"75921":{"*":{"id":21333,"name":"*","chunks":["server/chunks/ssr/_0e506641._.js","server/chunks/ssr/_b5babdfc._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/_a4899a76._.js","server/chunks/ssr/[root-of-the-server]__610f06df._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/_26b2c311._.js","server/chunks/ssr/node_modules__pnpm_747b43ac._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js"],"async":false}},"4273":{"*":{"id":20551,"name":"*","chunks":["server/chunks/ssr/_0e506641._.js","server/chunks/ssr/_b5babdfc._.js","server/chunks/ssr/_9ac70f88._.js","server/chunks/ssr/_a4899a76._.js","server/chunks/ssr/[root-of-the-server]__610f06df._.js","server/chunks/ssr/403f9_next_dist_a53cb908._.js","server/chunks/ssr/_26b2c311._.js","server/chunks/ssr/node_modules__pnpm_747b43ac._.js","server/chunks/ssr/src_presentation_web_components_e599bb8c._.js","server/chunks/ssr/403f9_next_d6c8d28d._.js","server/chunks/ssr/_4470c218._.js","server/chunks/ssr/7f428_lucide-react_dist_esm_icons_activity_22f9667f.js","server/chunks/ssr/b1a17_presentation_web_components_features_webhooks_webhooks-page-client_tsx_b2662ea3._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"40799":{"*":{"id":48035,"name":"*","chunks":[],"async":false}},"73006":{"*":{"id":22994,"name":"*","chunks":[],"async":false}},"67804":{"*":{"id":21809,"name":"*","chunks":[],"async":false}},"50122":{"*":{"id":70251,"name":"*","chunks":[],"async":false}},"19292":{"*":{"id":39498,"name":"*","chunks":[],"async":false}},"30088":{"*":{"id":2021,"name":"*","chunks":[],"async":false}},"66658":{"*":{"id":47390,"name":"*","chunks":[],"async":false}},"98295":{"*":{"id":73449,"name":"*","chunks":[],"async":false}},"87292":{"*":{"id":34168,"name":"*","chunks":[],"async":false}},"25251":{"*":{"id":11900,"name":"*","chunks":[],"async":false}},"75921":{"*":{"id":59259,"name":"*","chunks":[],"async":false}},"4273":{"*":{"id":31478,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/presentation/web/app/global-error":[],"[project]/src/presentation/web/app/layout":[{"path":"static/chunks/61c4d617e4b83d4b.css","inlined":false},{"path":"static/chunks/b5d8e8100e310d9f.css","inlined":false}],"[project]/src/presentation/web/app/webhooks/page":[{"path":"static/chunks/61c4d617e4b83d4b.css","inlined":false},{"path":"static/chunks/b5d8e8100e310d9f.css","inlined":false}]},"entryJSFiles":{"[project]/src/presentation/web/app/global-error":["static/chunks/356ebc89a2a97627.js","static/chunks/fe70e73feb07bcfd.js"],"[project]/src/presentation/web/app/layout":["static/chunks/0c76de69325ef923.js","static/chunks/52b56677c842e45f.js","static/chunks/4c5b31a2c65d4aa5.js","static/chunks/9af45e885bd4ccef.js","static/chunks/98e3a7cf58fc912a.js","static/chunks/c04ce6760f349f3e.js"],"[project]/src/presentation/web/app/webhooks/page":["static/chunks/0c76de69325ef923.js","static/chunks/52b56677c842e45f.js","static/chunks/4c5b31a2c65d4aa5.js","static/chunks/9af45e885bd4ccef.js","static/chunks/98e3a7cf58fc912a.js","static/chunks/c04ce6760f349f3e.js","static/chunks/cf30e300568abf0f.js"]}}
@@ -28,8 +28,12 @@
28
28
  "/api/tools/[id]/launch/route": "app/api/tools/[id]/launch/route.js",
29
29
  "/api/tools/route": "app/api/tools/route.js",
30
30
  "/api/version/route": "app/api/version/route.js",
31
+ "/api/webhooks/deliveries/route": "app/api/webhooks/deliveries/route.js",
32
+ "/api/webhooks/github/route": "app/api/webhooks/github/route.js",
33
+ "/api/webhooks/status/route": "app/api/webhooks/status/route.js",
31
34
  "/settings/page": "app/settings/page.js",
32
35
  "/skills/page": "app/skills/page.js",
33
36
  "/tools/page": "app/tools/page.js",
34
- "/version/page": "app/version/page.js"
37
+ "/version/page": "app/version/page.js",
38
+ "/webhooks/page": "app/webhooks/page.js"
35
39
  }
@@ -0,0 +1,3 @@
1
+ module.exports=[6359,s=>{"use strict";s.s([])}];
2
+
3
+ //# sourceMappingURL=744ca_web__next-internal_server_app_api_webhooks_deliveries_route_actions_d9e34c8d.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[30910,s=>{"use strict";s.s([])}];
2
+
3
+ //# sourceMappingURL=744ca_web__next-internal_server_app_api_webhooks_github_route_actions_1b0d0c38.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ module.exports=[44479,s=>{"use strict";s.s([])}];
2
+
3
+ //# sourceMappingURL=744ca_web__next-internal_server_app_api_webhooks_status_route_actions_1a0d86a1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ module.exports=[18622,(e,t,r)=>{t.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"))},56704,(e,t,r)=>{t.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,t,r)=>{t.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"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},9851,e=>{"use strict";function t(){return globalThis.__shepWebhookManager??null}function r(){let e=t();if(null===e)throw Error("Webhook manager not initialized. Call initializeWebhookManager() during web server startup.");return e}function n(){return null!==t()}e.s(["getWebhookManager",()=>r,"hasWebhookManager",()=>n])},23026,e=>{"use strict";var t=e.i(22925),r=e.i(62995),n=e.i(14112),a=e.i(31716),o=e.i(16340),s=e.i(40522),i=e.i(21994),l=e.i(5802),u=e.i(17171),d=e.i(177),p=e.i(43685),c=e.i(84832),h=e.i(92435),x=e.i(41260),R=e.i(80556),g=e.i(93695);e.i(97230);var v=e.i(35162),f=e.i(9851);async function w(){if(!(0,f.hasWebhookManager)())return Response.json({running:!1,tunnel:{connected:!1,publicUrl:null},webhooks:{registered:[],totalDeliveries:0,successCount:0,errorCount:0,ignoredCount:0},startedAt:null});let e=(0,f.getWebhookManager)();return Response.json(e.getStatus())}e.s(["GET",()=>w,"dynamic",0,"force-dynamic"],53177);var m=e.i(53177);let b=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/webhooks/status/route",pathname:"/api/webhooks/status",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/presentation/web/app/api/webhooks/status/route.ts",nextConfigOutput:"standalone",userland:m}),{workAsyncStorage:E,workUnitAsyncStorage:C,serverHooks:y}=b;function k(){return(0,n.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:C})}async function A(e,t,n){b.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/webhooks/status/route";f=f.replace(/\/index$/,"")||"/";let w=await b.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:m,params:E,nextConfig:C,parsedUrl:y,isDraftMode:k,prerenderManifest:A,routerServerContext:T,isOnDemandRevalidate:N,revalidateOnlyGenerated:P,resolvedPathname:_,clientReferenceManifest:O,serverActionsManifest:S}=w,q=(0,i.normalizeAppPath)(f),M=!!(A.dynamicRoutes[q]||A.routes[_]),j=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,y,!1):t.end("This page could not be found"),null);if(M&&!k){let e=!!A.routes[_],t=A.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(C.experimental.adapterPath)return await j();throw new g.NoFallbackError}}let H=null;!M||b.isDev||k||(H="/index"===(H=_)?"/":H);let U=!0===b.isDev||!M,I=M&&!U;S&&O&&(0,s.setManifestsSingleton)({page:f,clientReferenceManifest:O,serverActionsManifest:S});let D=e.method||"GET",W=(0,o.getTracer)(),$=W.getActiveScopeSpan(),F={params:E,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:C.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>b.onRequestError(e,t,n,a,T)},sharedContext:{buildId:m}},K=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),L=u.NextRequestAdapter.fromNodeNextRequest(K,(0,u.signalFromNodeResponse)(t));try{let s=async e=>b.handle(L,F).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=W.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${D} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${D} ${f}`)}),i=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var o,l;let u=async({previousCacheEntry:r})=>{try{if(!i&&N&&P&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await s(a);e.fetchMetrics=F.renderOpts.fetchMetrics;let l=F.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let u=F.renderOpts.collectedTags;if(!M)return await (0,c.sendResponse)(K,B,o,F.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(o.headers);u&&(t[R.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==F.renderOpts.collectedRevalidate&&!(F.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&F.renderOpts.collectedRevalidate,n=void 0===F.renderOpts.collectedExpire||F.renderOpts.collectedExpire>=R.INFINITE_CACHE?void 0:F.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:N})},!1,T),t}},d=await b.handleResponse({req:e,nextConfig:C,cacheKey:H,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:N,revalidateOnlyGenerated:P,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:i});if(!M)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",N?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),k&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,h.fromNodeOutgoingHttpHeaders)(d.value.headers);return i&&M||g.delete(R.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,x.getCacheControlHeader)(d.cacheControl)),await (0,c.sendResponse)(K,B,new Response(d.value.body,{headers:g,status:d.value.status||200})),null};$?await l($):await W.withPropagatedContext(e.headers,()=>W.trace(d.BaseServerSpan.handleRequest,{spanName:`${D} ${f}`,kind:o.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:N})},!1,T),M)throw t;return await (0,c.sendResponse)(K,B,new Response(null,{status:500})),null}}e.s(["handler",()=>A,"patchFetch",()=>k,"routeModule",()=>b,"serverHooks",()=>y,"workAsyncStorage",()=>E,"workUnitAsyncStorage",()=>C],23026)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__15e5d45c._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../packages/core/src/infrastructure/services/webhook/webhook-manager.service.ts","../../../../../../src/presentation/web/app/api/webhooks/status/route.ts","../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/dist/esm/build/templates/app-route.js"],"sourcesContent":["/**\n * Webhook Manager Service\n *\n * Orchestrates the Cloudflare Tunnel and GitHub Webhook lifecycle.\n * Follows the singleton pattern used by NotificationWatcherService\n * and PrSyncWatcherService.\n *\n * Lifecycle:\n * 1. Start Cloudflare Tunnel to get a public URL\n * 2. Register GitHub webhooks pointing to the tunnel URL\n * 3. Monitor for tunnel URL changes → update webhooks\n * 4. On shutdown → remove webhooks → stop tunnel\n *\n * The manager is optional — if cloudflared is not installed or webhook\n * registration fails, the system falls back to polling gracefully.\n */\n\nimport type { ITunnelService } from '../../../application/ports/output/services/tunnel-service.interface.js';\nimport type { IWebhookService } from '../../../application/ports/output/services/webhook-service.interface.js';\nimport type {\n RegisteredWebhook,\n WebhookDeliveryRecord,\n GitHubWebhookService,\n} from './github-webhook.service.js';\n\nexport interface WebhookSystemStatus {\n running: boolean;\n tunnel: {\n connected: boolean;\n publicUrl: string | null;\n };\n webhooks: {\n registered: readonly RegisteredWebhook[];\n totalDeliveries: number;\n successCount: number;\n errorCount: number;\n ignoredCount: number;\n };\n startedAt: string | null;\n}\n\nconst TAG = '[WebhookManager]';\n\nexport class WebhookManagerService {\n private readonly tunnelService: ITunnelService;\n private readonly webhookService: IWebhookService;\n private running = false;\n private startedAt: string | null = null;\n\n constructor(tunnelService: ITunnelService, webhookService: IWebhookService) {\n this.tunnelService = tunnelService;\n this.webhookService = webhookService;\n }\n\n /**\n * Start the tunnel and register webhooks.\n * Fails gracefully — logs warnings but does not throw.\n *\n * @param localPort - The local web server port to tunnel\n */\n async start(localPort: number): Promise<void> {\n if (this.running) return;\n\n try {\n // Step 1: Start the tunnel\n // eslint-disable-next-line no-console\n console.log(`${TAG} Starting Cloudflare Tunnel for port ${localPort}...`);\n const publicUrl = await this.tunnelService.start(localPort);\n\n // Step 2: Listen for URL changes\n this.tunnelService.onUrlChange(async (newUrl) => {\n // eslint-disable-next-line no-console\n console.log(`${TAG} Tunnel URL changed, updating webhooks...`);\n try {\n await this.webhookService.updateWebhookUrl(newUrl);\n } catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n // eslint-disable-next-line no-console\n console.warn(`${TAG} Failed to update webhooks after URL change: ${msg}`);\n }\n });\n\n // Step 3: Register webhooks with external services\n await this.webhookService.registerWebhooks(publicUrl);\n\n this.running = true;\n this.startedAt = new Date().toISOString();\n // eslint-disable-next-line no-console\n console.log(`${TAG} Webhook system ready (tunnel: ${publicUrl})`);\n } catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n // eslint-disable-next-line no-console\n console.warn(`${TAG} Failed to start webhook system (falling back to polling): ${msg}`);\n\n // Clean up partial state\n try {\n await this.tunnelService.stop();\n } catch {\n // Already stopped or never started\n }\n }\n }\n\n /**\n * Stop the webhook system — remove webhooks, then stop the tunnel.\n */\n async stop(): Promise<void> {\n if (!this.running) return;\n\n // eslint-disable-next-line no-console\n console.log(`${TAG} Shutting down webhook system...`);\n\n try {\n await this.webhookService.removeWebhooks();\n } catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n // eslint-disable-next-line no-console\n console.warn(`${TAG} Failed to remove webhooks during shutdown: ${msg}`);\n }\n\n try {\n await this.tunnelService.stop();\n } catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n // eslint-disable-next-line no-console\n console.warn(`${TAG} Failed to stop tunnel during shutdown: ${msg}`);\n }\n\n this.running = false;\n // eslint-disable-next-line no-console\n console.log(`${TAG} Webhook system stopped`);\n }\n\n isRunning(): boolean {\n return this.running;\n }\n\n getTunnelUrl(): string | null {\n return this.tunnelService.getPublicUrl();\n }\n\n getStatus(): WebhookSystemStatus {\n const ghService = this.webhookService as GitHubWebhookService;\n const deliveries =\n typeof ghService.getDeliveryHistory === 'function' ? ghService.getDeliveryHistory() : [];\n\n const registered =\n typeof ghService.getRegisteredWebhooks === 'function'\n ? ghService.getRegisteredWebhooks()\n : [];\n\n let successCount = 0;\n let errorCount = 0;\n let ignoredCount = 0;\n for (const d of deliveries) {\n if (d.status === 'success') successCount++;\n else if (d.status === 'error') errorCount++;\n else ignoredCount++;\n }\n\n return {\n running: this.running,\n tunnel: {\n connected: this.tunnelService.isRunning(),\n publicUrl: this.tunnelService.getPublicUrl(),\n },\n webhooks: {\n registered,\n totalDeliveries: deliveries.length,\n successCount,\n errorCount,\n ignoredCount,\n },\n startedAt: this.startedAt,\n };\n }\n\n getDeliveryHistory(): readonly WebhookDeliveryRecord[] {\n const ghService = this.webhookService as GitHubWebhookService;\n if (typeof ghService.getDeliveryHistory === 'function') {\n return ghService.getDeliveryHistory();\n }\n return [];\n }\n}\n\n// --- Singleton accessors ---\n//\n// The singleton is stored on globalThis so that it survives module duplication\n// across bundler contexts (e.g. Next.js Turbopack bundles API routes separately\n// from the dev-server entry point, giving each its own copy of module-level\n// variables). By using globalThis, the same manager instance is visible to both\n// the initializer (dev-server.ts / CLI) and the API route handlers.\n\nconst GLOBAL_KEY = '__shepWebhookManager' as const;\n\nfunction getInstance(): WebhookManagerService | null {\n return ((globalThis as Record<string, unknown>)[GLOBAL_KEY] as WebhookManagerService) ?? null;\n}\n\nfunction setInstance(instance: WebhookManagerService | null): void {\n (globalThis as Record<string, unknown>)[GLOBAL_KEY] = instance;\n}\n\n/**\n * Initialize the webhook manager singleton.\n * Must be called once during web server startup.\n *\n * @throws Error if the manager is already initialized\n */\nexport function initializeWebhookManager(\n tunnelService: ITunnelService,\n webhookService: IWebhookService\n): void {\n if (getInstance() !== null) {\n throw new Error('Webhook manager already initialized. Cannot re-initialize.');\n }\n\n setInstance(new WebhookManagerService(tunnelService, webhookService));\n}\n\n/**\n * Get the webhook manager singleton.\n *\n * @returns The webhook manager service\n * @throws Error if the manager hasn't been initialized yet\n */\nexport function getWebhookManager(): WebhookManagerService {\n const instance = getInstance();\n if (instance === null) {\n throw new Error(\n 'Webhook manager not initialized. Call initializeWebhookManager() during web server startup.'\n );\n }\n\n return instance;\n}\n\n/**\n * Check if the webhook manager has been initialized.\n */\nexport function hasWebhookManager(): boolean {\n return getInstance() !== null;\n}\n\n/**\n * Reset the webhook manager singleton (for testing purposes only).\n * Stops the manager if running before resetting.\n *\n * @internal\n */\nexport function resetWebhookManager(): void {\n const instance = getInstance();\n if (instance !== null) {\n void instance.stop();\n }\n setInstance(null);\n}\n","/**\n * Webhook System Status: GET /api/webhooks/status\n *\n * Returns the full webhook system status including tunnel state,\n * registered webhooks, and delivery statistics.\n */\n\nimport {\n hasWebhookManager,\n getWebhookManager,\n} from '@shepai/core/infrastructure/services/webhook/webhook-manager.service';\n\nexport const dynamic = 'force-dynamic';\n\nexport async function GET(): Promise<Response> {\n if (!hasWebhookManager()) {\n return Response.json({\n running: false,\n tunnel: { connected: false, publicUrl: null },\n webhooks: {\n registered: [],\n totalDeliveries: 0,\n successCount: 0,\n errorCount: 0,\n ignoredCount: 0,\n },\n startedAt: null,\n });\n }\n\n const manager = getWebhookManager();\n return Response.json(manager.getStatus());\n}\n","import { AppRouteRouteModule } from \"next/dist/esm/server/route-modules/app-route/module.compiled\";\nimport { RouteKind } from \"next/dist/esm/server/route-kind\";\nimport { patchFetch as _patchFetch } from \"next/dist/esm/server/lib/patch-fetch\";\nimport { addRequestMeta, getRequestMeta } from \"next/dist/esm/server/request-meta\";\nimport { getTracer, SpanKind } from \"next/dist/esm/server/lib/trace/tracer\";\nimport { setManifestsSingleton } from \"next/dist/esm/server/app-render/manifests-singleton\";\nimport { normalizeAppPath } from \"next/dist/esm/shared/lib/router/utils/app-paths\";\nimport { NodeNextRequest, NodeNextResponse } from \"next/dist/esm/server/base-http/node\";\nimport { NextRequestAdapter, signalFromNodeResponse } from \"next/dist/esm/server/web/spec-extension/adapters/next-request\";\nimport { BaseServerSpan } from \"next/dist/esm/server/lib/trace/constants\";\nimport { getRevalidateReason } from \"next/dist/esm/server/instrumentation/utils\";\nimport { sendResponse } from \"next/dist/esm/server/send-response\";\nimport { fromNodeOutgoingHttpHeaders, toNodeOutgoingHttpHeaders } from \"next/dist/esm/server/web/utils\";\nimport { getCacheControlHeader } from \"next/dist/esm/server/lib/cache-control\";\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from \"next/dist/esm/lib/constants\";\nimport { NoFallbackError } from \"next/dist/esm/shared/lib/no-fallback-error.external\";\nimport { CachedRouteKind } from \"next/dist/esm/server/response-cache\";\nimport * as userland from \"INNER_APP_ROUTE\";\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\nconst nextConfigOutput = \"standalone\"\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: \"/api/webhooks/status/route\",\n pathname: \"/api/webhooks/status\",\n filename: \"route\",\n bundlePath: \"\"\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: \"[project]/src/presentation/web/app/api/webhooks/status/route.ts\",\n nextConfigOutput,\n userland\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;\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage\n });\n}\nexport { routeModule, workAsyncStorage, workUnitAsyncStorage, serverHooks, patchFetch, };\nexport async function handler(req, res, ctx) {\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint());\n }\n let srcPage = \"/api/webhooks/status/route\";\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.__NEXT_MULTI_ZONE_DRAFT_MODE;\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode\n });\n if (!prepareResult) {\n res.statusCode = 400;\n res.end('Bad Request');\n ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n return null;\n }\n const { buildId, params, nextConfig, parsedUrl, isDraftMode, prerenderManifest, routerServerContext, isOnDemandRevalidate, revalidateOnlyGenerated, resolvedPathname, clientReferenceManifest, serverActionsManifest } = prepareResult;\n const normalizedSrcPage = normalizeAppPath(srcPage);\n let isIsr = Boolean(prerenderManifest.dynamicRoutes[normalizedSrcPage] || prerenderManifest.routes[resolvedPathname]);\n const render404 = async ()=>{\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext == null ? void 0 : 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 if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname]);\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage];\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.experimental.adapterPath) {\n return await render404();\n }\n throw new NoFallbackError();\n }\n }\n }\n let cacheKey = null;\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 const supportsDynamicResponse = // If we're in development, we always support dynamic HTML\n routeModule.isDev === true || // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr;\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse;\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 const method = req.method || 'GET';\n const tracer = getTracer();\n const activeSpan = tracer.getActiveScopeSpan();\n const context = {\n params,\n prerenderManifest,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts)\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n supportsDynamicResponse,\n incrementalCache: getRequestMeta(req, 'incrementalCache'),\n cacheLifeProfiles: nextConfig.cacheLife,\n waitUntil: ctx.waitUntil,\n onClose: (cb)=>{\n res.on('close', cb);\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (error, _request, errorContext, silenceLog)=>routeModule.onRequestError(req, error, errorContext, silenceLog, routerServerContext)\n },\n sharedContext: {\n buildId\n }\n };\n const nodeNextReq = new NodeNextRequest(req);\n const nodeNextRes = new NodeNextResponse(res);\n const nextReq = NextRequestAdapter.fromNodeNextRequest(nodeNextReq, signalFromNodeResponse(res));\n try {\n const invokeRouteModule = async (span)=>{\n return routeModule.handle(nextReq, context).finally(()=>{\n if (!span) return;\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false\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 if (rootSpanAttributes.get('next.span_type') !== BaseServerSpan.handleRequest) {\n console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n return;\n }\n const route = rootSpanAttributes.get('next.route');\n if (route) {\n const name = `${method} ${route}`;\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name\n });\n span.updateName(name);\n } else {\n span.updateName(`${method} ${srcPage}`);\n }\n });\n };\n const isMinimalMode = Boolean(process.env.MINIMAL_MODE || getRequestMeta(req, 'minimalMode'));\n const handleResponse = async (currentSpan)=>{\n var _cacheEntry_value;\n const responseGenerator = async ({ previousCacheEntry })=>{\n try {\n if (!isMinimalMode && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) {\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 const response = await invokeRouteModule(currentSpan);\n req.fetchMetrics = context.renderOpts.fetchMetrics;\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil;\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 // 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 // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers);\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags;\n }\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type;\n }\n const revalidate = typeof context.renderOpts.collectedRevalidate === 'undefined' || context.renderOpts.collectedRevalidate >= INFINITE_CACHE ? false : context.renderOpts.collectedRevalidate;\n const expire = typeof context.renderOpts.collectedExpire === 'undefined' || context.renderOpts.collectedExpire >= INFINITE_CACHE ? undefined : context.renderOpts.collectedExpire;\n // Create the cache entry for the response.\n const cacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers\n },\n cacheControl: {\n revalidate,\n expire\n }\n };\n return cacheEntry;\n } else {\n // send response without caching if not ISR\n await sendResponse(nodeNextReq, nodeNextRes, response, context.renderOpts.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 == null ? void 0 : previousCacheEntry.isStale) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n throw err;\n }\n };\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode\n });\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null;\n }\n if ((cacheEntry == null ? void 0 : (_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) !== CachedRouteKind.APP_ROUTE) {\n var _cacheEntry_value1;\n throw Object.defineProperty(new Error(`Invariant: app-route received invalid cache entry ${cacheEntry == null ? void 0 : (_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E701\",\n enumerable: false,\n configurable: true\n });\n }\n if (!isMinimalMode) {\n res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT');\n }\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n }\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers);\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER);\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 (cacheEntry.cacheControl && !res.getHeader('Cache-Control') && !headers.get('Cache-Control')) {\n headers.set('Cache-Control', getCacheControlHeader(cacheEntry.cacheControl));\n }\n await sendResponse(nodeNextReq, nodeNextRes, // @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 return null;\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 (activeSpan) {\n await handleResponse(activeSpan);\n } else {\n await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(BaseServerSpan.handleRequest, {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url\n }\n }, handleResponse));\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n // rethrow so that we can handle serving error page\n // If this is during static generation, throw the error again.\n if (isIsr) throw err;\n // Otherwise, send a 500 response.\n await sendResponse(nodeNextReq, nodeNextRes, new Response(null, {\n status: 500\n }));\n return null;\n }\n}\n\n//# sourceMappingURL=app-route.js.map\n"],"names":[],"mappings":"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","ignoreList":[2]}
@@ -0,0 +1,3 @@
1
+ module.exports=[18622,(e,t,r)=>{t.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"))},56704,(e,t,r)=>{t.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,t,r)=>{t.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"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},9851,e=>{"use strict";function t(){return globalThis.__shepWebhookManager??null}function r(){let e=t();if(null===e)throw Error("Webhook manager not initialized. Call initializeWebhookManager() during web server startup.");return e}function a(){return null!==t()}e.s(["getWebhookManager",()=>r,"hasWebhookManager",()=>a])},51828,e=>{"use strict";var t=e.i(22925),r=e.i(62995),a=e.i(14112),n=e.i(31716),i=e.i(16340),o=e.i(40522),s=e.i(21994),l=e.i(5802),d=e.i(17171),u=e.i(177),p=e.i(43685),c=e.i(84832),h=e.i(92435),v=e.i(41260),R=e.i(80556),x=e.i(93695);e.i(97230);var g=e.i(35162),f=e.i(9851);async function m(e){if(!(0,f.hasWebhookManager)())return Response.json({deliveries:[]});let t=new URL(e.url),r=t.searchParams.get("status"),a=t.searchParams.get("eventType"),n=t.searchParams.get("limit"),i=n?Math.min(parseInt(n,10)||50,200):50,o=[...(0,f.getWebhookManager)().getDeliveryHistory()];return r&&(o=o.filter(e=>e.status===r)),a&&(o=o.filter(e=>e.eventType===a)),Response.json({deliveries:o.slice(0,i)})}e.s(["GET",()=>m,"dynamic",0,"force-dynamic"],56914);var w=e.i(56914);let E=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/webhooks/deliveries/route",pathname:"/api/webhooks/deliveries",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/presentation/web/app/api/webhooks/deliveries/route.ts",nextConfigOutput:"standalone",userland:w}),{workAsyncStorage:b,workUnitAsyncStorage:y,serverHooks:C}=E;function k(){return(0,a.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:y})}async function A(e,t,a){E.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/webhooks/deliveries/route";f=f.replace(/\/index$/,"")||"/";let m=await E.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!m)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:w,params:b,nextConfig:y,parsedUrl:C,isDraftMode:k,prerenderManifest:A,routerServerContext:T,isOnDemandRevalidate:P,revalidateOnlyGenerated:N,resolvedPathname:_,clientReferenceManifest:O,serverActionsManifest:q}=m,M=(0,s.normalizeAppPath)(f),S=!!(A.dynamicRoutes[M]||A.routes[_]),H=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,C,!1):t.end("This page could not be found"),null);if(S&&!k){let e=!!A.routes[_],t=A.dynamicRoutes[M];if(t&&!1===t.fallback&&!e){if(y.experimental.adapterPath)return await H();throw new x.NoFallbackError}}let j=null;!S||E.isDev||k||(j="/index"===(j=_)?"/":j);let U=!0===E.isDev||!S,I=S&&!U;q&&O&&(0,o.setManifestsSingleton)({page:f,clientReferenceManifest:O,serverActionsManifest:q});let D=e.method||"GET",W=(0,i.getTracer)(),$=W.getActiveScopeSpan(),F={params:b,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts},cacheComponents:!!y.cacheComponents,supportsDynamicResponse:U,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:y.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>E.onRequestError(e,t,a,n,T)},sharedContext:{buildId:w}},K=new l.NodeNextRequest(e),L=new l.NodeNextResponse(t),B=d.NextRequestAdapter.fromNodeNextRequest(K,(0,d.signalFromNodeResponse)(t));try{let o=async e=>E.handle(B,F).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=W.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void 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");if(a){let t=`${D} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${D} ${f}`)}),s=!!(0,n.getRequestMeta)(e,"minimalMode"),l=async n=>{var i,l;let d=async({previousCacheEntry:r})=>{try{if(!s&&P&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await o(n);e.fetchMetrics=F.renderOpts.fetchMetrics;let l=F.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let d=F.renderOpts.collectedTags;if(!S)return await (0,c.sendResponse)(K,L,i,F.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(i.headers);d&&(t[R.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==F.renderOpts.collectedRevalidate&&!(F.renderOpts.collectedRevalidate>=R.INFINITE_CACHE)&&F.renderOpts.collectedRevalidate,a=void 0===F.renderOpts.collectedExpire||F.renderOpts.collectedExpire>=R.INFINITE_CACHE?void 0:F.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:P})},!1,T),t}},u=await E.handleResponse({req:e,nextConfig:y,cacheKey:j,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:N,responseGenerator:d,waitUntil:a.waitUntil,isMinimalMode:s});if(!S)return null;if((null==u||null==(i=u.value)?void 0:i.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",P?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),k&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let x=(0,h.fromNodeOutgoingHttpHeaders)(u.value.headers);return s&&S||x.delete(R.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||x.get("Cache-Control")||x.set("Cache-Control",(0,v.getCacheControlHeader)(u.cacheControl)),await (0,c.sendResponse)(K,L,new Response(u.value.body,{headers:x,status:u.value.status||200})),null};$?await l($):await W.withPropagatedContext(e.headers,()=>W.trace(u.BaseServerSpan.handleRequest,{spanName:`${D} ${f}`,kind:i.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},l))}catch(t){if(t instanceof x.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:M,routeType:"route",revalidateReason:(0,p.getRevalidateReason)({isStaticGeneration:I,isOnDemandRevalidate:P})},!1,T),S)throw t;return await (0,c.sendResponse)(K,L,new Response(null,{status:500})),null}}e.s(["handler",()=>A,"patchFetch",()=>k,"routeModule",()=>E,"serverHooks",()=>C,"workAsyncStorage",()=>b,"workUnitAsyncStorage",()=>y],51828)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__23be381e._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../packages/core/src/infrastructure/services/webhook/webhook-manager.service.ts","../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/dist/esm/build/templates/app-route.js","../../../../../../src/presentation/web/app/api/webhooks/deliveries/route.ts"],"sourcesContent":["/**\n * Webhook Manager Service\n *\n * Orchestrates the Cloudflare Tunnel and GitHub Webhook lifecycle.\n * Follows the singleton pattern used by NotificationWatcherService\n * and PrSyncWatcherService.\n *\n * Lifecycle:\n * 1. Start Cloudflare Tunnel to get a public URL\n * 2. Register GitHub webhooks pointing to the tunnel URL\n * 3. Monitor for tunnel URL changes → update webhooks\n * 4. On shutdown → remove webhooks → stop tunnel\n *\n * The manager is optional — if cloudflared is not installed or webhook\n * registration fails, the system falls back to polling gracefully.\n */\n\nimport type { ITunnelService } from '../../../application/ports/output/services/tunnel-service.interface.js';\nimport type { IWebhookService } from '../../../application/ports/output/services/webhook-service.interface.js';\nimport type {\n RegisteredWebhook,\n WebhookDeliveryRecord,\n GitHubWebhookService,\n} from './github-webhook.service.js';\n\nexport interface WebhookSystemStatus {\n running: boolean;\n tunnel: {\n connected: boolean;\n publicUrl: string | null;\n };\n webhooks: {\n registered: readonly RegisteredWebhook[];\n totalDeliveries: number;\n successCount: number;\n errorCount: number;\n ignoredCount: number;\n };\n startedAt: string | null;\n}\n\nconst TAG = '[WebhookManager]';\n\nexport class WebhookManagerService {\n private readonly tunnelService: ITunnelService;\n private readonly webhookService: IWebhookService;\n private running = false;\n private startedAt: string | null = null;\n\n constructor(tunnelService: ITunnelService, webhookService: IWebhookService) {\n this.tunnelService = tunnelService;\n this.webhookService = webhookService;\n }\n\n /**\n * Start the tunnel and register webhooks.\n * Fails gracefully — logs warnings but does not throw.\n *\n * @param localPort - The local web server port to tunnel\n */\n async start(localPort: number): Promise<void> {\n if (this.running) return;\n\n try {\n // Step 1: Start the tunnel\n // eslint-disable-next-line no-console\n console.log(`${TAG} Starting Cloudflare Tunnel for port ${localPort}...`);\n const publicUrl = await this.tunnelService.start(localPort);\n\n // Step 2: Listen for URL changes\n this.tunnelService.onUrlChange(async (newUrl) => {\n // eslint-disable-next-line no-console\n console.log(`${TAG} Tunnel URL changed, updating webhooks...`);\n try {\n await this.webhookService.updateWebhookUrl(newUrl);\n } catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n // eslint-disable-next-line no-console\n console.warn(`${TAG} Failed to update webhooks after URL change: ${msg}`);\n }\n });\n\n // Step 3: Register webhooks with external services\n await this.webhookService.registerWebhooks(publicUrl);\n\n this.running = true;\n this.startedAt = new Date().toISOString();\n // eslint-disable-next-line no-console\n console.log(`${TAG} Webhook system ready (tunnel: ${publicUrl})`);\n } catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n // eslint-disable-next-line no-console\n console.warn(`${TAG} Failed to start webhook system (falling back to polling): ${msg}`);\n\n // Clean up partial state\n try {\n await this.tunnelService.stop();\n } catch {\n // Already stopped or never started\n }\n }\n }\n\n /**\n * Stop the webhook system — remove webhooks, then stop the tunnel.\n */\n async stop(): Promise<void> {\n if (!this.running) return;\n\n // eslint-disable-next-line no-console\n console.log(`${TAG} Shutting down webhook system...`);\n\n try {\n await this.webhookService.removeWebhooks();\n } catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n // eslint-disable-next-line no-console\n console.warn(`${TAG} Failed to remove webhooks during shutdown: ${msg}`);\n }\n\n try {\n await this.tunnelService.stop();\n } catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n // eslint-disable-next-line no-console\n console.warn(`${TAG} Failed to stop tunnel during shutdown: ${msg}`);\n }\n\n this.running = false;\n // eslint-disable-next-line no-console\n console.log(`${TAG} Webhook system stopped`);\n }\n\n isRunning(): boolean {\n return this.running;\n }\n\n getTunnelUrl(): string | null {\n return this.tunnelService.getPublicUrl();\n }\n\n getStatus(): WebhookSystemStatus {\n const ghService = this.webhookService as GitHubWebhookService;\n const deliveries =\n typeof ghService.getDeliveryHistory === 'function' ? ghService.getDeliveryHistory() : [];\n\n const registered =\n typeof ghService.getRegisteredWebhooks === 'function'\n ? ghService.getRegisteredWebhooks()\n : [];\n\n let successCount = 0;\n let errorCount = 0;\n let ignoredCount = 0;\n for (const d of deliveries) {\n if (d.status === 'success') successCount++;\n else if (d.status === 'error') errorCount++;\n else ignoredCount++;\n }\n\n return {\n running: this.running,\n tunnel: {\n connected: this.tunnelService.isRunning(),\n publicUrl: this.tunnelService.getPublicUrl(),\n },\n webhooks: {\n registered,\n totalDeliveries: deliveries.length,\n successCount,\n errorCount,\n ignoredCount,\n },\n startedAt: this.startedAt,\n };\n }\n\n getDeliveryHistory(): readonly WebhookDeliveryRecord[] {\n const ghService = this.webhookService as GitHubWebhookService;\n if (typeof ghService.getDeliveryHistory === 'function') {\n return ghService.getDeliveryHistory();\n }\n return [];\n }\n}\n\n// --- Singleton accessors ---\n//\n// The singleton is stored on globalThis so that it survives module duplication\n// across bundler contexts (e.g. Next.js Turbopack bundles API routes separately\n// from the dev-server entry point, giving each its own copy of module-level\n// variables). By using globalThis, the same manager instance is visible to both\n// the initializer (dev-server.ts / CLI) and the API route handlers.\n\nconst GLOBAL_KEY = '__shepWebhookManager' as const;\n\nfunction getInstance(): WebhookManagerService | null {\n return ((globalThis as Record<string, unknown>)[GLOBAL_KEY] as WebhookManagerService) ?? null;\n}\n\nfunction setInstance(instance: WebhookManagerService | null): void {\n (globalThis as Record<string, unknown>)[GLOBAL_KEY] = instance;\n}\n\n/**\n * Initialize the webhook manager singleton.\n * Must be called once during web server startup.\n *\n * @throws Error if the manager is already initialized\n */\nexport function initializeWebhookManager(\n tunnelService: ITunnelService,\n webhookService: IWebhookService\n): void {\n if (getInstance() !== null) {\n throw new Error('Webhook manager already initialized. Cannot re-initialize.');\n }\n\n setInstance(new WebhookManagerService(tunnelService, webhookService));\n}\n\n/**\n * Get the webhook manager singleton.\n *\n * @returns The webhook manager service\n * @throws Error if the manager hasn't been initialized yet\n */\nexport function getWebhookManager(): WebhookManagerService {\n const instance = getInstance();\n if (instance === null) {\n throw new Error(\n 'Webhook manager not initialized. Call initializeWebhookManager() during web server startup.'\n );\n }\n\n return instance;\n}\n\n/**\n * Check if the webhook manager has been initialized.\n */\nexport function hasWebhookManager(): boolean {\n return getInstance() !== null;\n}\n\n/**\n * Reset the webhook manager singleton (for testing purposes only).\n * Stops the manager if running before resetting.\n *\n * @internal\n */\nexport function resetWebhookManager(): void {\n const instance = getInstance();\n if (instance !== null) {\n void instance.stop();\n }\n setInstance(null);\n}\n","import { AppRouteRouteModule } from \"next/dist/esm/server/route-modules/app-route/module.compiled\";\nimport { RouteKind } from \"next/dist/esm/server/route-kind\";\nimport { patchFetch as _patchFetch } from \"next/dist/esm/server/lib/patch-fetch\";\nimport { addRequestMeta, getRequestMeta } from \"next/dist/esm/server/request-meta\";\nimport { getTracer, SpanKind } from \"next/dist/esm/server/lib/trace/tracer\";\nimport { setManifestsSingleton } from \"next/dist/esm/server/app-render/manifests-singleton\";\nimport { normalizeAppPath } from \"next/dist/esm/shared/lib/router/utils/app-paths\";\nimport { NodeNextRequest, NodeNextResponse } from \"next/dist/esm/server/base-http/node\";\nimport { NextRequestAdapter, signalFromNodeResponse } from \"next/dist/esm/server/web/spec-extension/adapters/next-request\";\nimport { BaseServerSpan } from \"next/dist/esm/server/lib/trace/constants\";\nimport { getRevalidateReason } from \"next/dist/esm/server/instrumentation/utils\";\nimport { sendResponse } from \"next/dist/esm/server/send-response\";\nimport { fromNodeOutgoingHttpHeaders, toNodeOutgoingHttpHeaders } from \"next/dist/esm/server/web/utils\";\nimport { getCacheControlHeader } from \"next/dist/esm/server/lib/cache-control\";\nimport { INFINITE_CACHE, NEXT_CACHE_TAGS_HEADER } from \"next/dist/esm/lib/constants\";\nimport { NoFallbackError } from \"next/dist/esm/shared/lib/no-fallback-error.external\";\nimport { CachedRouteKind } from \"next/dist/esm/server/response-cache\";\nimport * as userland from \"INNER_APP_ROUTE\";\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\nconst nextConfigOutput = \"standalone\"\nconst routeModule = new AppRouteRouteModule({\n definition: {\n kind: RouteKind.APP_ROUTE,\n page: \"/api/webhooks/deliveries/route\",\n pathname: \"/api/webhooks/deliveries\",\n filename: \"route\",\n bundlePath: \"\"\n },\n distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '',\n relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '',\n resolvedPagePath: \"[project]/src/presentation/web/app/api/webhooks/deliveries/route.ts\",\n nextConfigOutput,\n userland\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;\nfunction patchFetch() {\n return _patchFetch({\n workAsyncStorage,\n workUnitAsyncStorage\n });\n}\nexport { routeModule, workAsyncStorage, workUnitAsyncStorage, serverHooks, patchFetch, };\nexport async function handler(req, res, ctx) {\n if (routeModule.isDev) {\n addRequestMeta(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint());\n }\n let srcPage = \"/api/webhooks/deliveries/route\";\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.__NEXT_MULTI_ZONE_DRAFT_MODE;\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode\n });\n if (!prepareResult) {\n res.statusCode = 400;\n res.end('Bad Request');\n ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n return null;\n }\n const { buildId, params, nextConfig, parsedUrl, isDraftMode, prerenderManifest, routerServerContext, isOnDemandRevalidate, revalidateOnlyGenerated, resolvedPathname, clientReferenceManifest, serverActionsManifest } = prepareResult;\n const normalizedSrcPage = normalizeAppPath(srcPage);\n let isIsr = Boolean(prerenderManifest.dynamicRoutes[normalizedSrcPage] || prerenderManifest.routes[resolvedPathname]);\n const render404 = async ()=>{\n // TODO: should route-module itself handle rendering the 404\n if (routerServerContext == null ? void 0 : 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 if (isIsr && !isDraftMode) {\n const isPrerendered = Boolean(prerenderManifest.routes[resolvedPathname]);\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage];\n if (prerenderInfo) {\n if (prerenderInfo.fallback === false && !isPrerendered) {\n if (nextConfig.experimental.adapterPath) {\n return await render404();\n }\n throw new NoFallbackError();\n }\n }\n }\n let cacheKey = null;\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 const supportsDynamicResponse = // If we're in development, we always support dynamic HTML\n routeModule.isDev === true || // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isIsr;\n // This is a revalidation request if the request is for a static\n // page and it is not being resumed from a postponed render and\n // it is not a dynamic RSC request then it is a revalidation\n // request.\n const isStaticGeneration = isIsr && !supportsDynamicResponse;\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 const method = req.method || 'GET';\n const tracer = getTracer();\n const activeSpan = tracer.getActiveScopeSpan();\n const context = {\n params,\n prerenderManifest,\n renderOpts: {\n experimental: {\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts)\n },\n cacheComponents: Boolean(nextConfig.cacheComponents),\n supportsDynamicResponse,\n incrementalCache: getRequestMeta(req, 'incrementalCache'),\n cacheLifeProfiles: nextConfig.cacheLife,\n waitUntil: ctx.waitUntil,\n onClose: (cb)=>{\n res.on('close', cb);\n },\n onAfterTaskError: undefined,\n onInstrumentationRequestError: (error, _request, errorContext, silenceLog)=>routeModule.onRequestError(req, error, errorContext, silenceLog, routerServerContext)\n },\n sharedContext: {\n buildId\n }\n };\n const nodeNextReq = new NodeNextRequest(req);\n const nodeNextRes = new NodeNextResponse(res);\n const nextReq = NextRequestAdapter.fromNodeNextRequest(nodeNextReq, signalFromNodeResponse(res));\n try {\n const invokeRouteModule = async (span)=>{\n return routeModule.handle(nextReq, context).finally(()=>{\n if (!span) return;\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false\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 if (rootSpanAttributes.get('next.span_type') !== BaseServerSpan.handleRequest) {\n console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n return;\n }\n const route = rootSpanAttributes.get('next.route');\n if (route) {\n const name = `${method} ${route}`;\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name\n });\n span.updateName(name);\n } else {\n span.updateName(`${method} ${srcPage}`);\n }\n });\n };\n const isMinimalMode = Boolean(process.env.MINIMAL_MODE || getRequestMeta(req, 'minimalMode'));\n const handleResponse = async (currentSpan)=>{\n var _cacheEntry_value;\n const responseGenerator = async ({ previousCacheEntry })=>{\n try {\n if (!isMinimalMode && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) {\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 const response = await invokeRouteModule(currentSpan);\n req.fetchMetrics = context.renderOpts.fetchMetrics;\n let pendingWaitUntil = context.renderOpts.pendingWaitUntil;\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 // 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 // Copy the headers from the response.\n const headers = toNodeOutgoingHttpHeaders(response.headers);\n if (cacheTags) {\n headers[NEXT_CACHE_TAGS_HEADER] = cacheTags;\n }\n if (!headers['content-type'] && blob.type) {\n headers['content-type'] = blob.type;\n }\n const revalidate = typeof context.renderOpts.collectedRevalidate === 'undefined' || context.renderOpts.collectedRevalidate >= INFINITE_CACHE ? false : context.renderOpts.collectedRevalidate;\n const expire = typeof context.renderOpts.collectedExpire === 'undefined' || context.renderOpts.collectedExpire >= INFINITE_CACHE ? undefined : context.renderOpts.collectedExpire;\n // Create the cache entry for the response.\n const cacheEntry = {\n value: {\n kind: CachedRouteKind.APP_ROUTE,\n status: response.status,\n body: Buffer.from(await blob.arrayBuffer()),\n headers\n },\n cacheControl: {\n revalidate,\n expire\n }\n };\n return cacheEntry;\n } else {\n // send response without caching if not ISR\n await sendResponse(nodeNextReq, nodeNextRes, response, context.renderOpts.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 == null ? void 0 : previousCacheEntry.isStale) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n throw err;\n }\n };\n const cacheEntry = await routeModule.handleResponse({\n req,\n nextConfig,\n cacheKey,\n routeKind: RouteKind.APP_ROUTE,\n isFallback: false,\n prerenderManifest,\n isRoutePPREnabled: false,\n isOnDemandRevalidate,\n revalidateOnlyGenerated,\n responseGenerator,\n waitUntil: ctx.waitUntil,\n isMinimalMode\n });\n // we don't create a cacheEntry for ISR\n if (!isIsr) {\n return null;\n }\n if ((cacheEntry == null ? void 0 : (_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) !== CachedRouteKind.APP_ROUTE) {\n var _cacheEntry_value1;\n throw Object.defineProperty(new Error(`Invariant: app-route received invalid cache entry ${cacheEntry == null ? void 0 : (_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E701\",\n enumerable: false,\n configurable: true\n });\n }\n if (!isMinimalMode) {\n res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT');\n }\n // Draft mode should never be cached\n if (isDraftMode) {\n res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n }\n const headers = fromNodeOutgoingHttpHeaders(cacheEntry.value.headers);\n if (!(isMinimalMode && isIsr)) {\n headers.delete(NEXT_CACHE_TAGS_HEADER);\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 (cacheEntry.cacheControl && !res.getHeader('Cache-Control') && !headers.get('Cache-Control')) {\n headers.set('Cache-Control', getCacheControlHeader(cacheEntry.cacheControl));\n }\n await sendResponse(nodeNextReq, nodeNextRes, // @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 return null;\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 (activeSpan) {\n await handleResponse(activeSpan);\n } else {\n await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(BaseServerSpan.handleRequest, {\n spanName: `${method} ${srcPage}`,\n kind: SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url\n }\n }, handleResponse));\n }\n } catch (err) {\n if (!(err instanceof NoFallbackError)) {\n const silenceLog = false;\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: normalizedSrcPage,\n routeType: 'route',\n revalidateReason: getRevalidateReason({\n isStaticGeneration,\n isOnDemandRevalidate\n })\n }, silenceLog, routerServerContext);\n }\n // rethrow so that we can handle serving error page\n // If this is during static generation, throw the error again.\n if (isIsr) throw err;\n // Otherwise, send a 500 response.\n await sendResponse(nodeNextReq, nodeNextRes, new Response(null, {\n status: 500\n }));\n return null;\n }\n}\n\n//# sourceMappingURL=app-route.js.map\n","/**\n * Webhook Delivery History: GET /api/webhooks/deliveries\n *\n * Returns recent webhook delivery records with optional filtering.\n * Query params: ?status=success|error|ignored&eventType=pull_request&limit=50\n */\n\nimport {\n hasWebhookManager,\n getWebhookManager,\n} from '@shepai/core/infrastructure/services/webhook/webhook-manager.service';\n\nexport const dynamic = 'force-dynamic';\n\nexport async function GET(request: Request): Promise<Response> {\n if (!hasWebhookManager()) {\n return Response.json({ deliveries: [] });\n }\n\n const url = new URL(request.url);\n const statusFilter = url.searchParams.get('status');\n const eventTypeFilter = url.searchParams.get('eventType');\n const limitParam = url.searchParams.get('limit');\n const limit = limitParam ? Math.min(parseInt(limitParam, 10) || 50, 200) : 50;\n\n const manager = getWebhookManager();\n let deliveries = [...manager.getDeliveryHistory()];\n\n if (statusFilter) {\n deliveries = deliveries.filter((d) => d.status === statusFilter);\n }\n if (eventTypeFilter) {\n deliveries = deliveries.filter((d) => d.eventType === eventTypeFilter);\n }\n\n return Response.json({ deliveries: deliveries.slice(0, limit) });\n}\n"],"names":[],"mappings":"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","ignoreList":[1]}