@jiggai/kitchen 0.3.10 → 0.3.11

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 (192) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +2 -2
  3. package/.next/prerender-manifest.json +3 -3
  4. package/.next/server/app/_global-error.html +2 -2
  5. package/.next/server/app/_global-error.rsc +1 -1
  6. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/_not-found.html +1 -1
  13. package/.next/server/app/_not-found.rsc +2 -2
  14. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  15. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  16. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  17. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  20. package/.next/server/app/agents/[agentId]/page_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/goals/[id]/promote/route.js.nft.json +1 -1
  22. package/.next/server/app/api/goals/[id]/route.js.nft.json +1 -1
  23. package/.next/server/app/api/goals/route.js.nft.json +1 -1
  24. package/.next/server/app/api/recipes/[id]/route.js.nft.json +1 -1
  25. package/.next/server/app/api/recipes/clone/route.js.nft.json +1 -1
  26. package/.next/server/app/api/recipes/custom-team/route.js.nft.json +1 -1
  27. package/.next/server/app/api/recipes/delete/route.js.nft.json +1 -1
  28. package/.next/server/app/api/recipes/team-agents/route.js.nft.json +1 -1
  29. package/.next/server/app/api/scaffold/route.js.nft.json +1 -1
  30. package/.next/server/app/api/teams/[teamId]/tickets/assign/route.js.nft.json +1 -1
  31. package/.next/server/app/api/teams/[teamId]/tickets/comment/route.js.nft.json +1 -1
  32. package/.next/server/app/api/teams/[teamId]/tickets/delete/route.js.nft.json +1 -1
  33. package/.next/server/app/api/teams/[teamId]/tickets/move/route.js.nft.json +1 -1
  34. package/.next/server/app/api/teams/[teamId]/tickets/move-to-goals/route.js.nft.json +1 -1
  35. package/.next/server/app/api/teams/orchestrator/route.js.nft.json +1 -1
  36. package/.next/server/app/api/teams/remove-team/route.js.nft.json +1 -1
  37. package/.next/server/app/api/tickets/assign/route.js.nft.json +1 -1
  38. package/.next/server/app/api/tickets/assignees/route.js.nft.json +1 -1
  39. package/.next/server/app/api/tickets/move/route.js.nft.json +1 -1
  40. package/.next/server/app/channels/page_client-reference-manifest.js +1 -1
  41. package/.next/server/app/channels.html +2 -2
  42. package/.next/server/app/channels.rsc +2 -2
  43. package/.next/server/app/channels.segments/_full.segment.rsc +2 -2
  44. package/.next/server/app/channels.segments/_head.segment.rsc +1 -1
  45. package/.next/server/app/channels.segments/_index.segment.rsc +2 -2
  46. package/.next/server/app/channels.segments/_tree.segment.rsc +2 -2
  47. package/.next/server/app/channels.segments/channels/__PAGE__.segment.rsc +1 -1
  48. package/.next/server/app/channels.segments/channels.segment.rsc +1 -1
  49. package/.next/server/app/cron-jobs/page_client-reference-manifest.js +1 -1
  50. package/.next/server/app/goals/[id]/page_client-reference-manifest.js +1 -1
  51. package/.next/server/app/goals/new/page_client-reference-manifest.js +1 -1
  52. package/.next/server/app/goals/new.html +2 -2
  53. package/.next/server/app/goals/new.rsc +2 -2
  54. package/.next/server/app/goals/new.segments/_full.segment.rsc +2 -2
  55. package/.next/server/app/goals/new.segments/_head.segment.rsc +1 -1
  56. package/.next/server/app/goals/new.segments/_index.segment.rsc +2 -2
  57. package/.next/server/app/goals/new.segments/_tree.segment.rsc +2 -2
  58. package/.next/server/app/goals/new.segments/goals/new/__PAGE__.segment.rsc +1 -1
  59. package/.next/server/app/goals/new.segments/goals/new.segment.rsc +1 -1
  60. package/.next/server/app/goals/new.segments/goals.segment.rsc +1 -1
  61. package/.next/server/app/goals/page_client-reference-manifest.js +1 -1
  62. package/.next/server/app/goals.html +1 -1
  63. package/.next/server/app/goals.rsc +2 -2
  64. package/.next/server/app/goals.segments/_full.segment.rsc +2 -2
  65. package/.next/server/app/goals.segments/_head.segment.rsc +1 -1
  66. package/.next/server/app/goals.segments/_index.segment.rsc +2 -2
  67. package/.next/server/app/goals.segments/_tree.segment.rsc +2 -2
  68. package/.next/server/app/goals.segments/goals/__PAGE__.segment.rsc +1 -1
  69. package/.next/server/app/goals.segments/goals.segment.rsc +1 -1
  70. package/.next/server/app/page.js +2 -2
  71. package/.next/server/app/page.js.nft.json +1 -1
  72. package/.next/server/app/page_client-reference-manifest.js +1 -1
  73. package/.next/server/app/recipes/[id]/page.js +3 -3
  74. package/.next/server/app/recipes/[id]/page.js.nft.json +1 -1
  75. package/.next/server/app/recipes/[id]/page_client-reference-manifest.js +1 -1
  76. package/.next/server/app/recipes/page.js +2 -2
  77. package/.next/server/app/recipes/page.js.nft.json +1 -1
  78. package/.next/server/app/recipes/page_client-reference-manifest.js +1 -1
  79. package/.next/server/app/runs/page.js +3 -3
  80. package/.next/server/app/runs/page.js.nft.json +1 -1
  81. package/.next/server/app/runs/page_client-reference-manifest.js +1 -1
  82. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  83. package/.next/server/app/settings.html +1 -1
  84. package/.next/server/app/settings.rsc +2 -2
  85. package/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  86. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  87. package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  88. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  89. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  90. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  91. package/.next/server/app/teams/[teamId]/page.js +3 -3
  92. package/.next/server/app/teams/[teamId]/page.js.nft.json +1 -1
  93. package/.next/server/app/teams/[teamId]/page_client-reference-manifest.js +1 -1
  94. package/.next/server/app/teams/[teamId]/runs/[workflowId]/[runId]/page.js +2 -2
  95. package/.next/server/app/teams/[teamId]/runs/[workflowId]/[runId]/page.js.nft.json +1 -1
  96. package/.next/server/app/teams/[teamId]/runs/[workflowId]/[runId]/page_client-reference-manifest.js +1 -1
  97. package/.next/server/app/teams/[teamId]/runs/page_client-reference-manifest.js +1 -1
  98. package/.next/server/app/teams/[teamId]/tickets/[ticket]/page.js.nft.json +1 -1
  99. package/.next/server/app/teams/[teamId]/tickets/[ticket]/page_client-reference-manifest.js +1 -1
  100. package/.next/server/app/teams/[teamId]/tickets/page.js.nft.json +1 -1
  101. package/.next/server/app/teams/[teamId]/tickets/page_client-reference-manifest.js +1 -1
  102. package/.next/server/app/teams/[teamId]/workflows/[workflowId]/page.js +3 -3
  103. package/.next/server/app/teams/[teamId]/workflows/[workflowId]/page.js.nft.json +1 -1
  104. package/.next/server/app/teams/[teamId]/workflows/[workflowId]/page_client-reference-manifest.js +1 -1
  105. package/.next/server/app/teams/[teamId]/workflows/page.js +3 -3
  106. package/.next/server/app/teams/[teamId]/workflows/page.js.nft.json +1 -1
  107. package/.next/server/app/teams/[teamId]/workflows/page_client-reference-manifest.js +1 -1
  108. package/.next/server/app/tickets/[ticket]/page.js.nft.json +1 -1
  109. package/.next/server/app/tickets/[ticket]/page_client-reference-manifest.js +1 -1
  110. package/.next/server/app/tickets/page.js.nft.json +1 -1
  111. package/.next/server/app/tickets/page_client-reference-manifest.js +1 -1
  112. package/.next/server/chunks/[root-of-the-server]__ff69832c._.js.map +1 -1
  113. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_1fe98a49.js +1 -1
  114. package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_1fe98a49.js.map +1 -1
  115. package/.next/server/chunks/ssr/[root-of-the-server]__24c20736._.js +3 -0
  116. package/.next/server/chunks/ssr/[root-of-the-server]__24c20736._.js.map +1 -0
  117. package/.next/server/chunks/ssr/[root-of-the-server]__30619465._.js +3 -0
  118. package/.next/server/chunks/ssr/[root-of-the-server]__30619465._.js.map +1 -0
  119. package/.next/server/chunks/ssr/[root-of-the-server]__49281b4c._.js +1 -1
  120. package/.next/server/chunks/ssr/[root-of-the-server]__49281b4c._.js.map +1 -1
  121. package/.next/server/chunks/ssr/[root-of-the-server]__4981f370._.js +3 -0
  122. package/.next/server/chunks/ssr/[root-of-the-server]__4981f370._.js.map +1 -0
  123. package/.next/server/chunks/ssr/[root-of-the-server]__4c66998a._.js +3 -0
  124. package/.next/server/chunks/ssr/[root-of-the-server]__4c66998a._.js.map +1 -0
  125. package/.next/server/chunks/ssr/[root-of-the-server]__7fcc6175._.js +3 -0
  126. package/.next/server/chunks/ssr/[root-of-the-server]__7fcc6175._.js.map +1 -0
  127. package/.next/server/chunks/ssr/[root-of-the-server]__8e001110._.js +3 -0
  128. package/.next/server/chunks/ssr/[root-of-the-server]__8e001110._.js.map +1 -0
  129. package/.next/server/chunks/ssr/[root-of-the-server]__9a7d79aa._.js +1 -1
  130. package/.next/server/chunks/ssr/[root-of-the-server]__9a7d79aa._.js.map +1 -1
  131. package/.next/server/chunks/ssr/[root-of-the-server]__ad4e8478._.js +3 -0
  132. package/.next/server/chunks/ssr/[root-of-the-server]__ad4e8478._.js.map +1 -0
  133. package/.next/server/chunks/ssr/[root-of-the-server]__bd20cf10._.js +3 -0
  134. package/.next/server/chunks/ssr/[root-of-the-server]__bd20cf10._.js.map +1 -0
  135. package/.next/server/chunks/ssr/[root-of-the-server]__cefae8c8._.js +3 -0
  136. package/.next/server/chunks/ssr/[root-of-the-server]__cefae8c8._.js.map +1 -0
  137. package/.next/server/chunks/ssr/{node_modules_next_10fb6ad9._.js → _7f9e89d2._.js} +2 -2
  138. package/.next/server/chunks/ssr/_7f9e89d2._.js.map +1 -0
  139. package/.next/server/chunks/ssr/b1a17_app_teams_[teamId]_workflows_[workflowId]_workflows-editor-client_tsx_5e714aa2._.js +1 -1
  140. package/.next/server/chunks/ssr/b1a17_app_teams_[teamId]_workflows_[workflowId]_workflows-editor-client_tsx_5e714aa2._.js.map +1 -1
  141. package/.next/server/chunks/ssr/src_59477309._.js +1 -1
  142. package/.next/server/chunks/ssr/src_59477309._.js.map +1 -1
  143. package/.next/server/chunks/ssr/src_app_teams_[teamId]_workflows_workflows-client_tsx_12742cc9._.js +3 -0
  144. package/.next/server/chunks/ssr/src_app_teams_[teamId]_workflows_workflows-client_tsx_12742cc9._.js.map +1 -0
  145. package/.next/server/chunks/ssr/src_lib_errors_ts_f440efeb._.js +3 -0
  146. package/.next/server/chunks/ssr/src_lib_errors_ts_f440efeb._.js.map +1 -0
  147. package/.next/server/pages/404.html +1 -1
  148. package/.next/server/pages/500.html +2 -2
  149. package/.next/server/server-reference-manifest.js +1 -1
  150. package/.next/server/server-reference-manifest.json +1 -1
  151. package/.next/static/chunks/3e0d3a43014c0ad2.css +3 -0
  152. package/.next/static/chunks/43d0024279c6160e.js +1 -0
  153. package/.next/static/chunks/4f5e02a609758a0b.js +1 -0
  154. package/.next/static/chunks/5e3b1d0f61a651bf.js +1 -0
  155. package/.next/static/chunks/be12a66bd736fad8.js +1 -0
  156. package/openclaw.plugin.json +1 -1
  157. package/package.json +1 -1
  158. package/public/images/clawkitchen/home.png +0 -0
  159. package/public/images/clawkitchen/recipes.png +0 -0
  160. package/public/images/clawkitchen/runs.png +0 -0
  161. package/public/images/clawkitchen/team.png +0 -0
  162. package/public/images/clawkitchen/tickets.png +0 -0
  163. package/public/images/clawkitchen/workflows.png +0 -0
  164. package/.next/server/chunks/ssr/[root-of-the-server]__1d65fddf._.js +0 -3
  165. package/.next/server/chunks/ssr/[root-of-the-server]__1d65fddf._.js.map +0 -1
  166. package/.next/server/chunks/ssr/[root-of-the-server]__450d6006._.js +0 -3
  167. package/.next/server/chunks/ssr/[root-of-the-server]__450d6006._.js.map +0 -1
  168. package/.next/server/chunks/ssr/[root-of-the-server]__76f9757d._.js +0 -3
  169. package/.next/server/chunks/ssr/[root-of-the-server]__76f9757d._.js.map +0 -1
  170. package/.next/server/chunks/ssr/[root-of-the-server]__9ffebe91._.js +0 -3
  171. package/.next/server/chunks/ssr/[root-of-the-server]__9ffebe91._.js.map +0 -1
  172. package/.next/server/chunks/ssr/[root-of-the-server]__a26db919._.js +0 -3
  173. package/.next/server/chunks/ssr/[root-of-the-server]__a26db919._.js.map +0 -1
  174. package/.next/server/chunks/ssr/[root-of-the-server]__afaa71fe._.js +0 -3
  175. package/.next/server/chunks/ssr/[root-of-the-server]__afaa71fe._.js.map +0 -1
  176. package/.next/server/chunks/ssr/[root-of-the-server]__b577b475._.js +0 -3
  177. package/.next/server/chunks/ssr/[root-of-the-server]__b577b475._.js.map +0 -1
  178. package/.next/server/chunks/ssr/[root-of-the-server]__e94ab521._.js +0 -3
  179. package/.next/server/chunks/ssr/[root-of-the-server]__e94ab521._.js.map +0 -1
  180. package/.next/server/chunks/ssr/[root-of-the-server]__fb6781d4._.js +0 -3
  181. package/.next/server/chunks/ssr/[root-of-the-server]__fb6781d4._.js.map +0 -1
  182. package/.next/server/chunks/ssr/node_modules_next_10fb6ad9._.js.map +0 -1
  183. package/.next/server/chunks/ssr/src_e54f24fb._.js +0 -3
  184. package/.next/server/chunks/ssr/src_e54f24fb._.js.map +0 -1
  185. package/.next/static/chunks/42b3230688d0834c.js +0 -1
  186. package/.next/static/chunks/7495459fdf300bf9.js +0 -1
  187. package/.next/static/chunks/be874907adf946fd.js +0 -1
  188. package/.next/static/chunks/e397a21bf5f13650.js +0 -1
  189. package/.next/static/chunks/f5d0d403c0fecb7f.css +0 -3
  190. /package/.next/static/{0PWp2TzSmiSf_Pf9YHES- → pW5SAQ1dzPcsq_66yy5po}/_buildManifest.js +0 -0
  191. /package/.next/static/{0PWp2TzSmiSf_Pf9YHES- → pW5SAQ1dzPcsq_66yy5po}/_clientMiddlewareManifest.json +0 -0
  192. /package/.next/static/{0PWp2TzSmiSf_Pf9YHES- → pW5SAQ1dzPcsq_66yy5po}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../node_modules/next/dist/client/app-dir/link.js/__nextjs-internal-proxy.cjs","../../../../node_modules/next/src/client/app-dir/link.tsx","../../../../node_modules/next/src/client/app-dir/link.react-server.tsx","../../../../src/lib/workflows/runs-storage.ts","../../../../src/lib/workflows/readdir.ts","../../../../src/lib/workflows/storage.ts","../../../../src/app/teams/%5BteamId%5D/runs/%5BworkflowId%5D/%5BrunId%5D/run-detail-client.tsx/__nextjs-internal-proxy.mjs","../../../../src/app/teams/%5BteamId%5D/runs/%5BworkflowId%5D/%5BrunId%5D/page.tsx"],"sourcesContent":["// This file is generated by next-core EcmascriptClientReferenceModule.\nconst { createClientModuleProxy } = require(\"react-server-dom-turbopack/server\");\n\n__turbopack_context__.n(createClientModuleProxy(\"[project]/node_modules/next/dist/client/app-dir/link.js\"));\n","'use client'\n\nimport React, { createContext, useContext, useOptimistic, useRef } from 'react'\nimport type { UrlObject } from 'url'\nimport { formatUrl } from '../../shared/lib/router/utils/format-url'\nimport { AppRouterContext } from '../../shared/lib/app-router-context.shared-runtime'\nimport { useMergedRef } from '../use-merged-ref'\nimport { isAbsoluteUrl } from '../../shared/lib/utils'\nimport { addBasePath } from '../add-base-path'\nimport { warnOnce } from '../../shared/lib/utils/warn-once'\nimport type { PENDING_LINK_STATUS } from '../components/links'\nimport {\n IDLE_LINK_STATUS,\n mountLinkInstance,\n onNavigationIntent,\n unmountLinkForCurrentNavigation,\n unmountPrefetchableInstance,\n type LinkInstance,\n} from '../components/links'\nimport { isLocalURL } from '../../shared/lib/router/utils/is-local-url'\nimport {\n FetchStrategy,\n type PrefetchTaskFetchStrategy,\n} from '../components/segment-cache/types'\nimport { errorOnce } from '../../shared/lib/utils/error-once'\n\ntype Url = string | UrlObject\ntype RequiredKeys<T> = {\n [K in keyof T]-?: {} extends Pick<T, K> ? never : K\n}[keyof T]\ntype OptionalKeys<T> = {\n [K in keyof T]-?: {} extends Pick<T, K> ? K : never\n}[keyof T]\n\ntype OnNavigateEventHandler = (event: { preventDefault: () => void }) => void\n\ntype InternalLinkProps = {\n /**\n * **Required**. The path or URL to navigate to. It can also be an object (similar to `URL`).\n *\n * @example\n * ```tsx\n * // Navigate to /dashboard:\n * <Link href=\"/dashboard\">Dashboard</Link>\n *\n * // Navigate to /about?name=test:\n * <Link href={{ pathname: '/about', query: { name: 'test' } }}>\n * About\n * </Link>\n * ```\n *\n * @remarks\n * - For external URLs, use a fully qualified URL such as `https://...`.\n * - In the App Router, dynamic routes must not include bracketed segments in `href`.\n */\n href: Url\n\n /**\n * @deprecated v10.0.0: `href` props pointing to a dynamic route are\n * automatically resolved and no longer require the `as` prop.\n */\n as?: Url\n\n /**\n * Replace the current `history` state instead of adding a new URL into the stack.\n *\n * @defaultValue `false`\n *\n * @example\n * ```tsx\n * <Link href=\"/about\" replace>\n * About (replaces the history state)\n * </Link>\n * ```\n */\n replace?: boolean\n\n /**\n * Whether to override the default scroll behavior. If `true`, Next.js attempts to maintain\n * the scroll position if the newly navigated page is still visible. If not, it scrolls to the top.\n *\n * If `false`, Next.js will not modify the scroll behavior at all.\n *\n * @defaultValue `true`\n *\n * @example\n * ```tsx\n * <Link href=\"/dashboard\" scroll={false}>\n * No auto scroll\n * </Link>\n * ```\n */\n scroll?: boolean\n\n /**\n * Update the path of the current page without rerunning data fetching methods\n * like `getStaticProps`, `getServerSideProps`, or `getInitialProps`.\n *\n * @remarks\n * `shallow` only applies to the Pages Router. For the App Router, see the\n * [following documentation](https://nextjs.org/docs/app/building-your-application/routing/linking-and-navigating#using-the-native-history-api).\n *\n * @defaultValue `false`\n *\n * @example\n * ```tsx\n * <Link href=\"/blog\" shallow>\n * Shallow navigation\n * </Link>\n * ```\n */\n shallow?: boolean\n\n /**\n * Forces `Link` to pass its `href` to the child component. Useful if the child is a custom\n * component that wraps an `<a>` tag, or if you're using certain styling libraries.\n *\n * @defaultValue `false`\n *\n * @example\n * ```tsx\n * <Link href=\"/dashboard\" passHref legacyBehavior>\n * <MyStyledAnchor>Dashboard</MyStyledAnchor>\n * </Link>\n * ```\n */\n passHref?: boolean\n\n /**\n * Prefetch the page in the background.\n * Any `<Link />` that is in the viewport (initially or through scroll) will be prefetched.\n * Prefetch can be disabled by passing `prefetch={false}`.\n *\n * @remarks\n * Prefetching is only enabled in production.\n *\n * - In the **App Router**:\n * - `\"auto\"`, `null`, `undefined` (default): Prefetch behavior depends on static vs dynamic routes:\n * - Static routes: fully prefetched\n * - Dynamic routes: partial prefetch to the nearest segment with a `loading.js`\n * - `true`: Always prefetch the full route and data.\n * - `false`: Disable prefetching on both viewport and hover.\n * - In the **Pages Router**:\n * - `true` (default): Prefetches the route and data in the background on viewport or hover.\n * - `false`: Prefetch only on hover, not on viewport.\n *\n * @defaultValue `true` (Pages Router) or `null` (App Router)\n *\n * @example\n * ```tsx\n * <Link href=\"/dashboard\" prefetch={false}>\n * Dashboard\n * </Link>\n * ```\n */\n prefetch?: boolean | 'auto' | null\n\n /**\n * (unstable) Switch to a full prefetch on hover. Effectively the same as\n * updating the prefetch prop to `true` in a mouse event.\n */\n unstable_dynamicOnHover?: boolean\n\n /**\n * The active locale is automatically prepended in the Pages Router. `locale` allows for providing\n * a different locale, or can be set to `false` to opt out of automatic locale behavior.\n *\n * @remarks\n * Note: locale only applies in the Pages Router and is ignored in the App Router.\n *\n * @example\n * ```tsx\n * // Use the 'fr' locale:\n * <Link href=\"/about\" locale=\"fr\">\n * About (French)\n * </Link>\n *\n * // Disable locale prefix:\n * <Link href=\"/about\" locale={false}>\n * About (no locale prefix)\n * </Link>\n * ```\n */\n locale?: string | false\n\n /**\n * Enable legacy link behavior.\n *\n * @deprecated This will be removed in a future version\n * @defaultValue `false`\n * @see https://github.com/vercel/next.js/commit/489e65ed98544e69b0afd7e0cfc3f9f6c2b803b7\n */\n legacyBehavior?: boolean\n\n /**\n * Optional event handler for when the mouse pointer is moved onto the `<Link>`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLAnchorElement>\n\n /**\n * Optional event handler for when the `<Link>` is touched.\n */\n onTouchStart?: React.TouchEventHandler<HTMLAnchorElement>\n\n /**\n * Optional event handler for when the `<Link>` is clicked.\n */\n onClick?: React.MouseEventHandler<HTMLAnchorElement>\n\n /**\n * Optional event handler for when the `<Link>` is navigated.\n */\n onNavigate?: OnNavigateEventHandler\n}\n\n// TODO-APP: Include the full set of Anchor props\n// adding this to the publicly exported type currently breaks existing apps\n\n// `RouteInferType` is a stub here to avoid breaking `typedRoutes` when the type\n// isn't generated yet. It will be replaced when type generation runs.\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport type LinkProps<RouteInferType = any> = InternalLinkProps\ntype LinkPropsRequired = RequiredKeys<LinkProps>\ntype LinkPropsOptional = OptionalKeys<Omit<InternalLinkProps, 'locale'>>\n\nfunction isModifiedEvent(event: React.MouseEvent): boolean {\n const eventTarget = event.currentTarget as HTMLAnchorElement | SVGAElement\n const target = eventTarget.getAttribute('target')\n return (\n (target && target !== '_self') ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey ||\n event.altKey || // triggers resource download\n (event.nativeEvent && event.nativeEvent.which === 2)\n )\n}\n\nfunction linkClicked(\n e: React.MouseEvent,\n href: string,\n as: string,\n linkInstanceRef: React.RefObject<LinkInstance | null>,\n replace?: boolean,\n scroll?: boolean,\n onNavigate?: OnNavigateEventHandler\n): void {\n if (typeof window !== 'undefined') {\n const { nodeName } = e.currentTarget\n\n // anchors inside an svg have a lowercase nodeName\n const isAnchorNodeName = nodeName.toUpperCase() === 'A'\n if (\n (isAnchorNodeName && isModifiedEvent(e)) ||\n e.currentTarget.hasAttribute('download')\n ) {\n // ignore click for browser’s default behavior\n return\n }\n\n if (!isLocalURL(href)) {\n if (replace) {\n // browser default behavior does not replace the history state\n // so we need to do it manually\n e.preventDefault()\n location.replace(href)\n }\n\n // ignore click for browser’s default behavior\n return\n }\n\n e.preventDefault()\n\n if (onNavigate) {\n let isDefaultPrevented = false\n\n onNavigate({\n preventDefault: () => {\n isDefaultPrevented = true\n },\n })\n\n if (isDefaultPrevented) {\n return\n }\n }\n\n const { dispatchNavigateAction } =\n require('../components/app-router-instance') as typeof import('../components/app-router-instance')\n\n React.startTransition(() => {\n dispatchNavigateAction(\n as || href,\n replace ? 'replace' : 'push',\n scroll ?? true,\n linkInstanceRef.current\n )\n })\n }\n}\n\nfunction formatStringOrUrl(urlObjOrString: UrlObject | string): string {\n if (typeof urlObjOrString === 'string') {\n return urlObjOrString\n }\n\n return formatUrl(urlObjOrString)\n}\n\n/**\n * A React component that extends the HTML `<a>` element to provide\n * [prefetching](https://nextjs.org/docs/app/building-your-application/routing/linking-and-navigating#2-prefetching)\n * and client-side navigation. This is the primary way to navigate between routes in Next.js.\n *\n * @remarks\n * - Prefetching is only enabled in production.\n *\n * @see https://nextjs.org/docs/app/api-reference/components/link\n */\nexport default function LinkComponent(\n props: LinkProps & {\n children: React.ReactNode\n ref: React.Ref<HTMLAnchorElement>\n }\n) {\n const [linkStatus, setOptimisticLinkStatus] = useOptimistic(IDLE_LINK_STATUS)\n\n let children: React.ReactNode\n\n const linkInstanceRef = useRef<LinkInstance | null>(null)\n\n const {\n href: hrefProp,\n as: asProp,\n children: childrenProp,\n prefetch: prefetchProp = null,\n passHref,\n replace,\n shallow,\n scroll,\n onClick,\n onMouseEnter: onMouseEnterProp,\n onTouchStart: onTouchStartProp,\n legacyBehavior = false,\n onNavigate,\n ref: forwardedRef,\n unstable_dynamicOnHover,\n ...restProps\n } = props\n\n children = childrenProp\n\n if (\n legacyBehavior &&\n (typeof children === 'string' || typeof children === 'number')\n ) {\n children = <a>{children}</a>\n }\n\n const router = React.useContext(AppRouterContext)\n\n const prefetchEnabled = prefetchProp !== false\n\n const fetchStrategy =\n prefetchProp !== false\n ? getFetchStrategyFromPrefetchProp(prefetchProp)\n : // TODO: it makes no sense to assign a fetchStrategy when prefetching is disabled.\n FetchStrategy.PPR\n\n if (process.env.NODE_ENV !== 'production') {\n function createPropError(args: {\n key: string\n expected: string\n actual: string\n }) {\n return new Error(\n `Failed prop type: The prop \\`${args.key}\\` expects a ${args.expected} in \\`<Link>\\`, but got \\`${args.actual}\\` instead.` +\n (typeof window !== 'undefined'\n ? \"\\nOpen your browser's console to view the Component stack trace.\"\n : '')\n )\n }\n\n // TypeScript trick for type-guarding:\n const requiredPropsGuard: Record<LinkPropsRequired, true> = {\n href: true,\n } as const\n const requiredProps: LinkPropsRequired[] = Object.keys(\n requiredPropsGuard\n ) as LinkPropsRequired[]\n requiredProps.forEach((key: LinkPropsRequired) => {\n if (key === 'href') {\n if (\n props[key] == null ||\n (typeof props[key] !== 'string' && typeof props[key] !== 'object')\n ) {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: props[key] === null ? 'null' : typeof props[key],\n })\n }\n } else {\n // TypeScript trick for type-guarding:\n const _: never = key\n }\n })\n\n // TypeScript trick for type-guarding:\n const optionalPropsGuard: Record<LinkPropsOptional, true> = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n unstable_dynamicOnHover: true,\n onClick: true,\n onMouseEnter: true,\n onTouchStart: true,\n legacyBehavior: true,\n onNavigate: true,\n } as const\n const optionalProps: LinkPropsOptional[] = Object.keys(\n optionalPropsGuard\n ) as LinkPropsOptional[]\n optionalProps.forEach((key: LinkPropsOptional) => {\n const valType = typeof props[key]\n\n if (key === 'as') {\n if (props[key] && valType !== 'string' && valType !== 'object') {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: valType,\n })\n }\n } else if (\n key === 'onClick' ||\n key === 'onMouseEnter' ||\n key === 'onTouchStart' ||\n key === 'onNavigate'\n ) {\n if (props[key] && valType !== 'function') {\n throw createPropError({\n key,\n expected: '`function`',\n actual: valType,\n })\n }\n } else if (\n key === 'replace' ||\n key === 'scroll' ||\n key === 'shallow' ||\n key === 'passHref' ||\n key === 'legacyBehavior' ||\n key === 'unstable_dynamicOnHover'\n ) {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key,\n expected: '`boolean`',\n actual: valType,\n })\n }\n } else if (key === 'prefetch') {\n if (\n props[key] != null &&\n valType !== 'boolean' &&\n props[key] !== 'auto'\n ) {\n throw createPropError({\n key,\n expected: '`boolean | \"auto\"`',\n actual: valType,\n })\n }\n } else {\n // TypeScript trick for type-guarding:\n const _: never = key\n }\n })\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (props.locale) {\n warnOnce(\n 'The `locale` prop is not supported in `next/link` while using the `app` router. Read more about app router internalization: https://nextjs.org/docs/app/building-your-application/routing/internationalization'\n )\n }\n if (!asProp) {\n let href: string | undefined\n if (typeof hrefProp === 'string') {\n href = hrefProp\n } else if (\n typeof hrefProp === 'object' &&\n typeof hrefProp.pathname === 'string'\n ) {\n href = hrefProp.pathname\n }\n\n if (href) {\n const hasDynamicSegment = href\n .split('/')\n .some((segment) => segment.startsWith('[') && segment.endsWith(']'))\n\n if (hasDynamicSegment) {\n throw new Error(\n `Dynamic href \\`${href}\\` found in <Link> while using the \\`/app\\` router, this is not supported. Read more: https://nextjs.org/docs/messages/app-dir-dynamic-href`\n )\n }\n }\n }\n }\n\n const { href, as } = React.useMemo(() => {\n const resolvedHref = formatStringOrUrl(hrefProp)\n return {\n href: resolvedHref,\n as: asProp ? formatStringOrUrl(asProp) : resolvedHref,\n }\n }, [hrefProp, asProp])\n\n // This will return the first child, if multiple are provided it will throw an error\n let child: any\n if (legacyBehavior) {\n if ((children as any)?.$$typeof === Symbol.for('react.lazy')) {\n throw new Error(\n `\\`<Link legacyBehavior>\\` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's \\`<a>\\` tag.`\n )\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (onClick) {\n console.warn(\n `\"onClick\" was passed to <Link> with \\`href\\` of \\`${hrefProp}\\` but \"legacyBehavior\" was set. The legacy behavior requires onClick be set on the child of next/link`\n )\n }\n if (onMouseEnterProp) {\n console.warn(\n `\"onMouseEnter\" was passed to <Link> with \\`href\\` of \\`${hrefProp}\\` but \"legacyBehavior\" was set. The legacy behavior requires onMouseEnter be set on the child of next/link`\n )\n }\n try {\n child = React.Children.only(children)\n } catch (err) {\n if (!children) {\n throw new Error(\n `No children were passed to <Link> with \\`href\\` of \\`${hrefProp}\\` but one child is required https://nextjs.org/docs/messages/link-no-children`\n )\n }\n throw new Error(\n `Multiple children were passed to <Link> with \\`href\\` of \\`${hrefProp}\\` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children` +\n (typeof window !== 'undefined'\n ? \" \\nOpen your browser's console to view the Component stack trace.\"\n : '')\n )\n }\n } else {\n child = React.Children.only(children)\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if ((children as any)?.type === 'a') {\n throw new Error(\n 'Invalid <Link> with <a> child. Please remove <a> or use <Link legacyBehavior>.\\nLearn more: https://nextjs.org/docs/messages/invalid-new-link-with-extra-anchor'\n )\n }\n }\n }\n\n const childRef: any = legacyBehavior\n ? child && typeof child === 'object' && child.ref\n : forwardedRef\n\n // Use a callback ref to attach an IntersectionObserver to the anchor tag on\n // mount. In the future we will also use this to keep track of all the\n // currently mounted <Link> instances, e.g. so we can re-prefetch them after\n // a revalidation or refresh.\n const observeLinkVisibilityOnMount = React.useCallback(\n (element: HTMLAnchorElement | SVGAElement) => {\n if (router !== null) {\n linkInstanceRef.current = mountLinkInstance(\n element,\n href,\n router,\n fetchStrategy,\n prefetchEnabled,\n setOptimisticLinkStatus\n )\n }\n\n return () => {\n if (linkInstanceRef.current) {\n unmountLinkForCurrentNavigation(linkInstanceRef.current)\n linkInstanceRef.current = null\n }\n unmountPrefetchableInstance(element)\n }\n },\n [prefetchEnabled, href, router, fetchStrategy, setOptimisticLinkStatus]\n )\n\n const mergedRef = useMergedRef(observeLinkVisibilityOnMount, childRef)\n\n const childProps: {\n onTouchStart?: React.TouchEventHandler<HTMLAnchorElement>\n onMouseEnter: React.MouseEventHandler<HTMLAnchorElement>\n onClick: React.MouseEventHandler<HTMLAnchorElement>\n href?: string\n ref?: any\n } = {\n ref: mergedRef,\n onClick(e) {\n if (process.env.NODE_ENV !== 'production') {\n if (!e) {\n throw new Error(\n `Component rendered inside next/link has to pass click event to \"onClick\" prop.`\n )\n }\n }\n\n if (!legacyBehavior && typeof onClick === 'function') {\n onClick(e)\n }\n\n if (\n legacyBehavior &&\n child.props &&\n typeof child.props.onClick === 'function'\n ) {\n child.props.onClick(e)\n }\n\n if (!router) {\n return\n }\n if (e.defaultPrevented) {\n return\n }\n linkClicked(e, href, as, linkInstanceRef, replace, scroll, onNavigate)\n },\n onMouseEnter(e) {\n if (!legacyBehavior && typeof onMouseEnterProp === 'function') {\n onMouseEnterProp(e)\n }\n\n if (\n legacyBehavior &&\n child.props &&\n typeof child.props.onMouseEnter === 'function'\n ) {\n child.props.onMouseEnter(e)\n }\n\n if (!router) {\n return\n }\n if (!prefetchEnabled || process.env.NODE_ENV === 'development') {\n return\n }\n\n const upgradeToDynamicPrefetch = unstable_dynamicOnHover === true\n onNavigationIntent(\n e.currentTarget as HTMLAnchorElement | SVGAElement,\n upgradeToDynamicPrefetch\n )\n },\n onTouchStart: process.env.__NEXT_LINK_NO_TOUCH_START\n ? undefined\n : function onTouchStart(e) {\n if (!legacyBehavior && typeof onTouchStartProp === 'function') {\n onTouchStartProp(e)\n }\n\n if (\n legacyBehavior &&\n child.props &&\n typeof child.props.onTouchStart === 'function'\n ) {\n child.props.onTouchStart(e)\n }\n\n if (!router) {\n return\n }\n if (!prefetchEnabled) {\n return\n }\n\n const upgradeToDynamicPrefetch = unstable_dynamicOnHover === true\n onNavigationIntent(\n e.currentTarget as HTMLAnchorElement | SVGAElement,\n upgradeToDynamicPrefetch\n )\n },\n }\n\n // If the url is absolute, we can bypass the logic to prepend the basePath.\n if (isAbsoluteUrl(as)) {\n childProps.href = as\n } else if (\n !legacyBehavior ||\n passHref ||\n (child.type === 'a' && !('href' in child.props))\n ) {\n childProps.href = addBasePath(as)\n }\n\n let link: React.ReactNode\n\n if (legacyBehavior) {\n if (process.env.NODE_ENV === 'development') {\n errorOnce(\n '`legacyBehavior` is deprecated and will be removed in a future ' +\n 'release. A codemod is available to upgrade your components:\\n\\n' +\n 'npx @next/codemod@latest new-link .\\n\\n' +\n 'Learn more: https://nextjs.org/docs/app/building-your-application/upgrading/codemods#remove-a-tags-from-link-components'\n )\n }\n link = React.cloneElement(child, childProps)\n } else {\n link = (\n <a {...restProps} {...childProps}>\n {children}\n </a>\n )\n }\n\n return (\n <LinkStatusContext.Provider value={linkStatus}>\n {link}\n </LinkStatusContext.Provider>\n )\n}\n\nconst LinkStatusContext = createContext<\n typeof PENDING_LINK_STATUS | typeof IDLE_LINK_STATUS\n>(IDLE_LINK_STATUS)\n\nexport const useLinkStatus = () => {\n return useContext(LinkStatusContext)\n}\n\nfunction getFetchStrategyFromPrefetchProp(\n prefetchProp: Exclude<LinkProps['prefetch'], undefined | false>\n): PrefetchTaskFetchStrategy {\n if (process.env.__NEXT_CACHE_COMPONENTS) {\n if (prefetchProp === true) {\n return FetchStrategy.Full\n }\n\n // `null` or `\"auto\"`: this is the default \"auto\" mode, where we will prefetch partially if the link is in the viewport.\n // This will also include invalid prop values that don't match the types specified here.\n // (although those should've been filtered out by prop validation in dev)\n prefetchProp satisfies null | 'auto'\n return FetchStrategy.PPR\n } else {\n return prefetchProp === null || prefetchProp === 'auto'\n ? // We default to PPR, and we'll discover whether or not the route supports it with the initial prefetch.\n FetchStrategy.PPR\n : // In the old implementation without runtime prefetches, `prefetch={true}` forces all dynamic data to be prefetched.\n // To preserve backwards-compatibility, anything other than `false`, `null`, or `\"auto\"` results in a full prefetch.\n // (although invalid values should've been filtered out by prop validation in dev)\n FetchStrategy.Full\n }\n}\n","import type { ComponentProps } from 'react'\nimport ClientLinkComponent, { type LinkProps, useLinkStatus } from './link'\n\nexport default function LinkComponent(\n props: ComponentProps<typeof ClientLinkComponent>\n) {\n const isLegacyBehavior = props.legacyBehavior\n const childIsHostComponent =\n typeof props.children === 'string' ||\n typeof props.children === 'number' ||\n typeof (props.children as any)?.type === 'string'\n const childIsClientComponent =\n (props.children as any)?.type?.$$typeof ===\n Symbol.for('react.client.reference')\n\n if (isLegacyBehavior && !childIsHostComponent && !childIsClientComponent) {\n if ((props.children as any)?.type?.$$typeof === Symbol.for('react.lazy')) {\n console.error(\n `Using a Lazy Component as a direct child of \\`<Link legacyBehavior>\\` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's \\`<a>\\` tag.`\n )\n } else {\n console.error(\n `Using a Server Component as a direct child of \\`<Link legacyBehavior>\\` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's \\`<a>\\` tag.`\n )\n }\n }\n\n return <ClientLinkComponent {...props} />\n}\n\nexport { type LinkProps, useLinkStatus }\n","import fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { getTeamWorkspaceDir } from \"@/lib/paths\";\nimport { readdirFiles } from \"@/lib/workflows/readdir\";\nimport { assertSafeWorkflowId } from \"@/lib/workflows/storage\";\nimport type { WorkflowRunFileV1, WorkflowRunNodeResultV1 } from \"@/lib/workflows/runs-types\";\n\nconst RUNS_DIR = path.join(\"shared-context\", \"workflow-runs\");\n\n/**\n * Back-compat:\n * - Legacy Kitchen layout: shared-context/workflow-runs/<workflowId>/*.run.json\n * - Runner layout (preferred): shared-context/workflow-runs/*.run.json\n */\nconst LEGACY_PER_WORKFLOW_LAYOUT = true;\n\nexport function assertSafeRunId(runId: string) {\n const id = String(runId ?? \"\").trim();\n if (!id) throw new Error(\"run id is required\");\n\n // Accept both Kitchen-style run ids (lowercase) and runner ids that include ISO timestamps (T/Z).\n // We still keep it conservative: only letters/numbers/dashes.\n if (!/^[A-Za-z0-9][A-Za-z0-9-]{0,120}$/.test(id)) {\n throw new Error(\"Invalid run id. Use letters, numbers, and dashes.\"\n );\n }\n return id;\n}\n\nexport async function getWorkflowRunsDir(teamId: string, workflowId: string) {\n // Validate workflowId (we no longer use it for the directory name).\n void assertSafeWorkflowId(workflowId);\n const teamDir = await getTeamWorkspaceDir(teamId);\n return path.join(teamDir, RUNS_DIR);\n}\n\nexport function workflowRunFileName(runId: string) {\n return `${runId}.run.json`;\n}\n\nexport async function listWorkflowRuns(teamId: string, workflowId: string) {\n const wfId = assertSafeWorkflowId(workflowId);\n const dir = await getWorkflowRunsDir(teamId, wfId);\n\n const runIds: string[] = [];\n\n // Preferred: runner directory-per-run layout: shared-context/workflow-runs/<runId>/run.json\n try {\n const entries = await fs.readdir(dir, { withFileTypes: true });\n const runDirs = entries.filter((e) => e.isDirectory()).map((e) => e.name).sort();\n\n for (const runId of runDirs) {\n const p = path.join(dir, runId, \"run.json\");\n try {\n const raw = await fs.readFile(p, \"utf8\");\n const parsed = JSON.parse(raw) as unknown;\n const normalized = normalizeRunFile(teamId, wfId, parsed, runId);\n if (normalized.workflowId === wfId) runIds.push(runId);\n } catch {\n // ignore\n }\n }\n } catch {\n // ignore\n }\n\n // Legacy: flat *.run.json at root\n try {\n const { files } = await readdirFiles(dir, \".run.json\", true);\n for (const f of files) {\n const runId = f.replace(/\\.run\\.json$/i, \"\");\n try {\n const raw = await fs.readFile(path.join(dir, f), \"utf8\");\n const parsed = JSON.parse(raw) as unknown;\n const normalized = normalizeRunFile(teamId, wfId, parsed, runId);\n if (normalized.workflowId === wfId) runIds.push(runId);\n } catch {\n // ignore\n }\n }\n } catch {\n // ignore\n }\n\n // Back-compat: legacy per-workflow directory.\n if (LEGACY_PER_WORKFLOW_LAYOUT) {\n try {\n const legacyDir = path.join(dir, wfId);\n const { files } = await readdirFiles(legacyDir, \".run.json\", true);\n for (const f of files) runIds.push(f.replace(/\\.run\\.json$/i, \"\"));\n } catch {\n // ignore\n }\n }\n\n const uniq = Array.from(new Set(runIds)).sort().reverse();\n return { ok: true as const, dir, runIds: uniq };\n}\n\nexport async function readWorkflowRun(teamId: string, workflowId: string, runId: string) {\n const wfId = assertSafeWorkflowId(workflowId);\n const rId = assertSafeRunId(runId);\n const dir = await getWorkflowRunsDir(teamId, wfId);\n\n // Preferred (runner) layout: shared-context/workflow-runs/<runId>/run.json\n const pRunner = path.join(dir, rId, \"run.json\");\n try {\n const raw = await fs.readFile(pRunner, \"utf8\");\n const parsed = JSON.parse(raw) as unknown;\n const run = normalizeRunFile(teamId, wfId, parsed, rId);\n\n // Runner stores rich node outputs as files under:\n // workflow-runs/<runId>/node-outputs/*-<nodeId>.json\n // Normalize by hydrating node.output from those files when missing.\n if (Array.isArray(run.nodes) && run.nodes.length) {\n const outputsDir = path.join(dir, rId, \"node-outputs\");\n let files: string[] = [];\n try {\n files = await fs.readdir(outputsDir);\n } catch {\n files = [];\n }\n\n // Multiple output files may exist for the same nodeId when a workflow executes a node\n // more than once. Preserve ordering by assigning outputs sequentially per nodeId.\n //\n // NOTE: Runner output filenames are typically prefixed with a sortable counter (e.g. 001-<nodeId>.json).\n // We rely on lexicographic order of filenames within node-outputs.\n const byNodeId = new Map<string, string[]>();\n for (const f of files.slice().sort()) {\n const m = f.match(/-([^/]+)\\.json$/);\n if (!m) continue;\n const nodeId = m[1];\n if (!nodeId) continue;\n const existing = byNodeId.get(nodeId) ?? [];\n existing.push(path.join(outputsDir, f));\n byNodeId.set(nodeId, existing);\n }\n\n await Promise.all(\n run.nodes.map(async (n) => {\n if (!n || typeof n !== \"object\") return;\n // Only hydrate if output is truly missing.\n if (typeof n.output !== \"undefined\") return;\n\n const arr = byNodeId.get(n.nodeId);\n if (!arr || !arr.length) return;\n\n const pOut = arr.shift();\n if (!pOut) return;\n\n try {\n const outRaw = await fs.readFile(pOut, \"utf8\");\n n.output = JSON.parse(outRaw) as unknown;\n } catch {\n // ignore\n }\n })\n );\n }\n\n return { ok: true as const, path: pRunner, run };\n } catch (err: unknown) {\n // fallthrough\n if (!(err && typeof err === \"object\" && (err as { code?: unknown }).code === \"ENOENT\")) throw err;\n }\n\n // Legacy flat layout: shared-context/workflow-runs/<runId>.run.json\n const p0 = path.join(dir, workflowRunFileName(rId));\n try {\n const raw = await fs.readFile(p0, \"utf8\");\n const parsed = JSON.parse(raw) as unknown;\n return { ok: true as const, path: p0, run: normalizeRunFile(teamId, wfId, parsed, rId) };\n } catch (err: unknown) {\n if (LEGACY_PER_WORKFLOW_LAYOUT && err && typeof err === \"object\" && (err as { code?: unknown }).code === \"ENOENT\") {\n const legacy = path.join(dir, wfId, workflowRunFileName(rId));\n const raw = await fs.readFile(legacy, \"utf8\");\n const parsed = JSON.parse(raw) as unknown;\n return { ok: true as const, path: legacy, run: normalizeRunFile(teamId, wfId, parsed, rId) };\n }\n throw err;\n }\n}\n\nexport async function writeWorkflowRun(teamId: string, workflowId: string, run: WorkflowRunFileV1) {\n const wfId = assertSafeWorkflowId(workflowId);\n const rId = assertSafeRunId(run.id);\n const dir = await getWorkflowRunsDir(teamId, wfId);\n await fs.mkdir(dir, { recursive: true });\n\n // Default layout: write to shared-context/workflow-runs/<runId>.run.json\n //\n // IMPORTANT: that filename may already be occupied by a runner-owned run log (different schema).\n // In that case, keep the runner log intact and write the Kitchen run file to the legacy\n // per-workflow directory shared-context/workflow-runs/<workflowId>/<runId>.run.json.\n const p0 = path.join(dir, workflowRunFileName(rId));\n\n let p = p0;\n try {\n const raw = await fs.readFile(p0, \"utf8\");\n const existing = JSON.parse(raw) as unknown;\n const isRunnerLog =\n Boolean(existing) &&\n typeof existing === \"object\" &&\n !Array.isArray(existing) &&\n \"runId\" in (existing as Record<string, unknown>) &&\n !(\"schema\" in (existing as Record<string, unknown>));\n\n if (isRunnerLog && LEGACY_PER_WORKFLOW_LAYOUT) {\n const legacyDir = path.join(dir, wfId);\n await fs.mkdir(legacyDir, { recursive: true });\n p = path.join(legacyDir, workflowRunFileName(rId));\n }\n } catch {\n // ignore read/parse errors; we'll write to p0\n }\n\n const toWrite: WorkflowRunFileV1 = {\n ...run,\n schema: \"clawkitchen.workflow-run.v1\",\n id: rId,\n workflowId: wfId,\n teamId,\n };\n await fs.writeFile(p, JSON.stringify(toWrite, null, 2) + \"\\n\", \"utf8\");\n return { ok: true as const, path: p };\n}\n\nexport type WorkflowRunSummary = {\n workflowId: string;\n runId: string;\n status?: WorkflowRunFileV1[\"status\"];\n startedAt?: string;\n endedAt?: string;\n /** ISO timestamp derived from file mtime (best-effort) */\n updatedAt?: string;\n /** Absolute path to the run file on disk (server-side only) */\n path: string;\n};\n\nexport async function listAllWorkflowRuns(teamId: string): Promise<{ ok: true; dir: string; runs: WorkflowRunSummary[] }> {\n const teamDir = await getTeamWorkspaceDir(teamId);\n const dir = path.join(teamDir, RUNS_DIR);\n\n const runs: WorkflowRunSummary[] = [];\n\n // Preferred: runner directory-per-run layout:\n // shared-context/workflow-runs/<runId>/run.json\n try {\n const entries = await fs.readdir(dir, { withFileTypes: true });\n const runDirs = entries.filter((e) => e.isDirectory()).map((e) => e.name).sort();\n\n for (const runId of runDirs) {\n const full = path.join(dir, runId, \"run.json\");\n try {\n const [raw, st] = await Promise.all([fs.readFile(full, \"utf8\"), fs.stat(full)]);\n const normalized = normalizeRunFile(teamId, \"(unknown)\", JSON.parse(raw) as unknown, runId);\n runs.push({\n workflowId: normalized.workflowId,\n runId: normalized.id,\n status: normalized.status,\n startedAt: normalized.startedAt,\n endedAt: normalized.endedAt,\n updatedAt: st.mtime ? new Date(st.mtime).toISOString() : undefined,\n path: full,\n });\n } catch {\n // ignore missing run.json/parse errors; keep going\n }\n }\n } catch (err: unknown) {\n if (!(err && typeof err === \"object\" && (err as { code?: unknown }).code === \"ENOENT\")) throw err;\n }\n\n // Legacy: flat run files at root: shared-context/workflow-runs/<runId>.run.json\n try {\n const entries = (await fs.readdir(dir)).filter((n) => n.endsWith(\".run.json\")).sort();\n for (const fileName of entries) {\n const runId = fileName.replace(/\\.run\\.json$/i, \"\");\n const full = path.join(dir, fileName);\n try {\n const [raw, st] = await Promise.all([fs.readFile(full, \"utf8\"), fs.stat(full)]);\n const normalized = normalizeRunFile(teamId, \"(unknown)\", JSON.parse(raw) as unknown, runId);\n runs.push({\n workflowId: normalized.workflowId,\n runId: normalized.id,\n status: normalized.status,\n startedAt: normalized.startedAt,\n endedAt: normalized.endedAt,\n updatedAt: st.mtime ? new Date(st.mtime).toISOString() : undefined,\n path: full,\n });\n } catch {\n runs.push({ workflowId: \"(unknown)\", runId, path: full });\n }\n }\n } catch (err: unknown) {\n if (!(err && typeof err === \"object\" && (err as { code?: unknown }).code === \"ENOENT\")) throw err;\n }\n\n // Back-compat: legacy per-workflow directory.\n if (LEGACY_PER_WORKFLOW_LAYOUT) {\n try {\n const entries = await fs.readdir(dir, { withFileTypes: true });\n const wfDirs = entries.filter((e) => e.isDirectory()).map((e) => e.name).sort();\n\n for (const workflowId of wfDirs) {\n const wfDir = path.join(dir, workflowId);\n let entries2: string[] = [];\n try {\n entries2 = (await fs.readdir(wfDir)).filter((n) => n.endsWith(\".run.json\")).sort();\n } catch (err: unknown) {\n if (err && typeof err === \"object\" && (err as { code?: unknown }).code === \"ENOENT\") continue;\n throw err;\n }\n\n for (const fileName of entries2) {\n const runId = fileName.replace(/\\.run\\.json$/i, \"\");\n const full = path.join(wfDir, fileName);\n try {\n const [raw, st] = await Promise.all([fs.readFile(full, \"utf8\"), fs.stat(full)]);\n const parsed = JSON.parse(raw) as Partial<WorkflowRunFileV1>;\n runs.push({\n workflowId,\n runId,\n status: parsed.status as WorkflowRunFileV1[\"status\"],\n startedAt: typeof parsed.startedAt === \"string\" ? parsed.startedAt : undefined,\n endedAt: typeof parsed.endedAt === \"string\" ? parsed.endedAt : undefined,\n updatedAt: st.mtime ? new Date(st.mtime).toISOString() : undefined,\n path: full,\n });\n } catch {\n runs.push({ workflowId, runId, path: full });\n }\n }\n }\n } catch (err: unknown) {\n if (!(err && typeof err === \"object\" && (err as { code?: unknown }).code === \"ENOENT\")) throw err;\n }\n }\n\n // Deduplicate across layouts. It's possible for the same logical run to appear in multiple places\n // (runner dir-per-run + legacy flat/per-workflow layouts). Prefer the richest record.\n const byKey = new Map<string, WorkflowRunSummary>();\n for (const r of runs) {\n const key = `${r.workflowId}:${r.runId}`;\n const prev = byKey.get(key);\n if (!prev) {\n byKey.set(key, r);\n continue;\n }\n\n const score = (x: WorkflowRunSummary) => {\n let s = 0;\n if (x.status) s += 2;\n if (x.startedAt) s += 1;\n if (x.endedAt) s += 1;\n if (x.updatedAt) s += 1;\n // Prefer runner dir-per-run run.json over legacy .run.json files.\n if (x.path.endsWith(`${path.sep}run.json`)) s += 2;\n return s;\n };\n\n if (score(r) >= score(prev)) byKey.set(key, r);\n }\n\n const deduped = Array.from(byKey.values());\n deduped.sort((a, b) => String(b.updatedAt ?? b.startedAt ?? \"\").localeCompare(String(a.updatedAt ?? a.startedAt ?? \"\")));\n return { ok: true as const, dir, runs: deduped };\n}\n\nfunction normalizeRunFile(teamId: string, workflowId: string, parsed: unknown, runIdFallback: string): WorkflowRunFileV1 {\n // Kitchen schema\n if (parsed && typeof parsed === \"object\" && (parsed as { schema?: unknown }).schema === \"clawkitchen.workflow-run.v1\") {\n return parsed as WorkflowRunFileV1;\n }\n\n // Runner schema (RunLog from ClawRecipes). Convert to Kitchen's display schema.\n if (parsed && typeof parsed === \"object\" && \"runId\" in parsed && \"workflow\" in parsed) {\n const o = parsed as {\n runId?: unknown;\n createdAt?: unknown;\n updatedAt?: unknown;\n status?: unknown;\n workflow?: { id?: unknown; file?: unknown };\n nodeResults?: unknown;\n };\n\n const wfObj = o.workflow && typeof o.workflow === \"object\" ? o.workflow : {};\n const file = typeof wfObj.file === \"string\" ? wfObj.file : \"\";\n const inferredWfId = file ? path.basename(file).replace(/\\.workflow\\.json$/i, \"\") : \"\";\n const wfId = typeof wfObj.id === \"string\" && wfObj.id ? wfObj.id : inferredWfId || workflowId;\n\n const statusRaw = String(o.status ?? \"\");\n const status: WorkflowRunFileV1[\"status\"] =\n statusRaw === \"awaiting_approval\"\n ? \"waiting_for_approval\"\n : statusRaw === \"completed\"\n ? \"success\"\n : statusRaw === \"rejected\"\n ? \"error\"\n : statusRaw === \"error\"\n ? \"error\"\n : statusRaw === \"canceled\"\n ? \"canceled\"\n : \"running\";\n\n const nodes = Array.isArray(o.nodeResults)\n ? o.nodeResults\n .map((nr) => {\n if (!nr || typeof nr !== \"object\") return null;\n const r = nr as {\n nodeId?: unknown;\n status?: unknown;\n startedAt?: unknown;\n endedAt?: unknown;\n output?: unknown;\n error?: unknown;\n };\n const nodeId = typeof r.nodeId === \"string\" ? r.nodeId : \"\";\n if (!nodeId) return null;\n\n const st = String(r.status ?? \"pending\");\n const mapped =\n st === \"awaiting_approval\"\n ? \"waiting\"\n : st === \"completed\"\n ? \"success\"\n : st === \"error\"\n ? \"error\"\n : st;\n\n const allowed = [\"pending\", \"running\", \"waiting\", \"success\", \"error\", \"skipped\"] as const;\n const status = (allowed as readonly string[]).includes(mapped) ? (mapped as (typeof allowed)[number]) : \"pending\";\n\n const error =\n typeof r.error === \"string\"\n ? r.error\n : r.error && typeof r.error === \"object\" && \"message\" in r.error\n ? { message: String((r.error as { message?: unknown }).message ?? \"\") }\n : undefined;\n\n const startedAt = typeof r.startedAt === \"string\" ? r.startedAt : undefined;\n const endedAt = typeof r.endedAt === \"string\" ? r.endedAt : undefined;\n\n return {\n nodeId,\n status,\n ...(startedAt ? { startedAt } : {}),\n ...(endedAt ? { endedAt } : {}),\n ...(typeof r.output !== \"undefined\" ? { output: r.output } : {}),\n ...(typeof error !== \"undefined\" ? { error } : {}),\n } satisfies WorkflowRunNodeResultV1;\n })\n .filter((x): x is WorkflowRunNodeResultV1 => x !== null)\n : undefined;\n\n return {\n schema: \"clawkitchen.workflow-run.v1\",\n id: typeof o.runId === \"string\" ? o.runId : runIdFallback,\n workflowId: wfId,\n teamId,\n startedAt: typeof o.createdAt === \"string\" ? o.createdAt : new Date().toISOString(),\n endedAt:\n status === \"success\" || status === \"error\" || status === \"canceled\"\n ? typeof o.updatedAt === \"string\"\n ? o.updatedAt\n : undefined\n : undefined,\n status,\n summary: \"Executed by workflow runner\",\n nodes,\n };\n }\n\n // Unknown schema; keep a placeholder so UI can still render.\n return {\n schema: \"clawkitchen.workflow-run.v1\",\n id: runIdFallback,\n workflowId,\n teamId,\n startedAt: new Date().toISOString(),\n status: \"error\",\n summary: \"Malformed run file\",\n };\n}","import fs from \"node:fs/promises\";\n\n/** Reads dir with optional suffix filter and reverse sort. Returns { ok, dir, files } or { ok, dir, files: [] } on ENOENT. */\nexport async function readdirFiles(\n dir: string,\n suffix: string,\n reverse = false\n): Promise<{ ok: true; dir: string; files: string[] }> {\n try {\n const entries = await fs.readdir(dir, { withFileTypes: true });\n let files = entries\n .filter((e) => e.isFile() && e.name.endsWith(suffix))\n .map((e) => e.name)\n .sort();\n if (reverse) files = files.reverse();\n return { ok: true as const, dir, files };\n } catch (err: unknown) {\n if (err && typeof err === \"object\" && (err as { code?: unknown }).code === \"ENOENT\") {\n return { ok: true as const, dir, files: [] as string[] };\n }\n throw err;\n }\n}\n","import fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { getTeamWorkspaceDir } from \"@/lib/paths\";\nimport { readdirFiles } from \"@/lib/workflows/readdir\";\nimport type { WorkflowFileV1 } from \"@/lib/workflows/types\";\n\nconst WORKFLOWS_DIR = path.join(\"shared-context\", \"workflows\");\n\nexport function workflowFileName(workflowId: string) {\n return `${workflowId}.workflow.json`;\n}\n\nexport function assertSafeWorkflowId(workflowId: string) {\n const id = String(workflowId ?? \"\").trim();\n if (!id) throw new Error(\"workflow id is required\");\n if (!/^[a-z0-9][a-z0-9-]{0,62}$/.test(id)) {\n throw new Error(\n \"Invalid workflow id. Use lowercase letters, numbers, and dashes (max 63 chars), e.g. marketing-cadence-v1\"\n );\n }\n return id;\n}\n\nexport async function getTeamWorkflowsDir(teamId: string) {\n const teamDir = await getTeamWorkspaceDir(teamId);\n return path.join(teamDir, WORKFLOWS_DIR);\n}\n\nexport async function listWorkflows(teamId: string) {\n const dir = await getTeamWorkflowsDir(teamId);\n return readdirFiles(dir, \".workflow.json\");\n}\n\nexport async function readWorkflow(teamId: string, workflowId: string) {\n const id = assertSafeWorkflowId(workflowId);\n const dir = await getTeamWorkflowsDir(teamId);\n const p = path.join(dir, workflowFileName(id));\n const raw = await fs.readFile(p, \"utf8\");\n const parsed = JSON.parse(raw) as WorkflowFileV1;\n return { ok: true as const, path: p, workflow: parsed };\n}\n\nexport async function writeWorkflow(teamId: string, workflow: WorkflowFileV1) {\n const id = assertSafeWorkflowId(workflow.id);\n const dir = await getTeamWorkflowsDir(teamId);\n await fs.mkdir(dir, { recursive: true });\n const p = path.join(dir, workflowFileName(id));\n const toWrite: WorkflowFileV1 = {\n ...workflow,\n schema: \"clawkitchen.workflow.v1\",\n id,\n };\n await fs.writeFile(p, JSON.stringify(toWrite, null, 2) + \"\\n\", \"utf8\");\n return { ok: true as const, path: p };\n}\n\nexport async function deleteWorkflow(teamId: string, workflowId: string) {\n const id = assertSafeWorkflowId(workflowId);\n const dir = await getTeamWorkflowsDir(teamId);\n const p = path.join(dir, workflowFileName(id));\n try {\n await fs.unlink(p);\n } catch (err: unknown) {\n if (err && typeof err === \"object\" && (err as { code?: unknown }).code === \"ENOENT\") {\n return { ok: true as const, path: p, existed: false as const };\n }\n throw err;\n }\n return { ok: true as const, path: p, existed: true as const };\n}\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/src/app/teams/[teamId]/runs/[workflowId]/[runId]/run-detail-client.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/app/teams/[teamId]/runs/[workflowId]/[runId]/run-detail-client.tsx\",\n \"default\",\n);\n","import Link from \"next/link\";\nimport { unstable_noStore as noStore } from \"next/cache\";\n\nimport { getTeamDisplayName } from \"@/lib/recipes\";\nimport { readWorkflowRun } from \"@/lib/workflows/runs-storage\";\nimport { readWorkflow } from \"@/lib/workflows/storage\";\nimport RunDetailClient from \"./run-detail-client\";\n\nexport const dynamic = \"force-dynamic\";\nexport const revalidate = 0;\n\nexport default async function TeamRunDetailPage({\n params,\n}: {\n params: Promise<{ teamId: string; workflowId: string; runId: string }>;\n}) {\n noStore();\n\n const { teamId, workflowId, runId } = await params;\n const name = await getTeamDisplayName(teamId);\n\n const [{ run }, workflowRes] = await Promise.all([\n readWorkflowRun(teamId, workflowId, runId),\n readWorkflow(teamId, workflowId).catch(() => null),\n ]);\n\n const wfName = workflowRes?.workflow?.name;\n\n return (\n <div className=\"flex flex-col gap-4\">\n <div className=\"flex flex-wrap items-start justify-between gap-4\">\n <div>\n <div className=\"text-xs text-[color:var(--ck-text-tertiary)]\">\n <Link href={`/runs?team=${encodeURIComponent(teamId)}`} className=\"hover:underline\">\n Runs\n </Link>\n <span className=\"mx-2\">/</span>\n <span className=\"font-mono\">{workflowId}</span>\n </div>\n <h1 className=\"mt-1 text-2xl font-semibold tracking-tight\">\n {wfName ? `${wfName} · ` : \"\"}\n <span className=\"font-mono\">{runId}</span>\n </h1>\n <div className=\"mt-1 text-sm text-[color:var(--ck-text-secondary)]\">\n {name || teamId} · <span className=\"font-mono\">{teamId}</span>\n </div>\n </div>\n\n <div className=\"flex items-center gap-3\">\n <Link\n href={`/teams/${encodeURIComponent(teamId)}/workflows/${encodeURIComponent(workflowId)}`}\n className=\"text-sm font-medium text-[color:var(--ck-text-secondary)] hover:underline\"\n >\n Workflow editor →\n </Link>\n </div>\n </div>\n\n <RunDetailClient run={run} />\n </div>\n );\n}\n"],"names":["LinkComponent","useLinkStatus","isModifiedEvent","event","eventTarget","currentTarget","target","getAttribute","metaKey","ctrlKey","shiftKey","altKey","nativeEvent","which","linkClicked","e","href","as","linkInstanceRef","replace","scroll","onNavigate","window","nodeName","isAnchorNodeName","toUpperCase","hasAttribute","isLocalURL","preventDefault","location","isDefaultPrevented","dispatchNavigateAction","require","React","startTransition","current","formatStringOrUrl","urlObjOrString","formatUrl","props","linkStatus","setOptimisticLinkStatus","useOptimistic","IDLE_LINK_STATUS","children","useRef","hrefProp","asProp","childrenProp","prefetch","prefetchProp","passHref","shallow","onClick","onMouseEnter","onMouseEnterProp","onTouchStart","onTouchStartProp","legacyBehavior","ref","forwardedRef","unstable_dynamicOnHover","restProps","a","router","useContext","AppRouterContext","prefetchEnabled","fetchStrategy","getFetchStrategyFromPrefetchProp","FetchStrategy","PPR","process","env","NODE_ENV","createPropError","args","Error","key","expected","actual","requiredPropsGuard","requiredProps","Object","keys","forEach","_","optionalPropsGuard","optionalProps","valType","locale","warnOnce","pathname","hasDynamicSegment","split","some","segment","startsWith","endsWith","useMemo","resolvedHref","child","$$typeof","Symbol","for","console","warn","Children","only","err","type","childRef","observeLinkVisibilityOnMount","useCallback","element","mountLinkInstance","unmountLinkForCurrentNavigation","unmountPrefetchableInstance","mergedRef","useMergedRef","childProps","defaultPrevented","upgradeToDynamicPrefetch","onNavigationIntent","__NEXT_LINK_NO_TOUCH_START","undefined","isAbsoluteUrl","addBasePath","link","errorOnce","cloneElement","LinkStatusContext","Provider","value","createContext","__NEXT_CACHE_COMPONENTS","Full","isLegacyBehavior","childIsHostComponent","childIsClientComponent","error","ClientLinkComponent"],"mappings":"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","ignoreList":[0,2,6]}
@@ -0,0 +1,3 @@
1
+ module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},12714,(a,b,c)=>{b.exports=a.x("node:fs/promises",()=>require("node:fs/promises"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},12057,(a,b,c)=>{b.exports=a.x("node:util",()=>require("node:util"))},69264,a=>{a.n(a.i(54832))},50645,a=>{a.n(a.i(27572))},17537,a=>{a.n(a.i(3363))},13718,a=>{a.n(a.i(85523))},18198,a=>{a.n(a.i(45518))},5365,(a,b,c)=>{b.exports=a.x("process",()=>require("process"))},874,(a,b,c)=>{b.exports=a.x("buffer",()=>require("buffer"))},62188,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/src/app/HomeClient.tsx <module evaluation> from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/HomeClient.tsx <module evaluation>","default")},49735,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/src/app/HomeClient.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/src/app/HomeClient.tsx","default")},73189,a=>{"use strict";a.i(62188);var b=a.i(49735);a.n(b)},60168,a=>{"use strict";var b=a.i(7997),c=a.i(18558),d=a.i(83643),e=a.i(15629),f=a.i(73189);async function g(){let a=await (0,d.runOpenClaw)(["agents","list","--json"]);return a.ok?JSON.parse(a.stdout):[]}async function h(){let a=await (0,e.listRecipes)(),b={};for(let c of a){if("team"!==c.kind)continue;let a=String(c.name??"").trim();a&&(b[c.id]=a)}return{teamNames:b}}async function i(){(0,c.unstable_noStore)();let[a,{teamNames:d}]=await Promise.all([g(),h()]);return(0,b.jsx)(f.default,{agents:a,teamNames:d})}a.s(["default",()=>i,"dynamic",0,"force-dynamic","revalidate",0,0])}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__cefae8c8._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/app/HomeClient.tsx/__nextjs-internal-proxy.mjs","../../../../src/app/page.tsx"],"sourcesContent":["// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/src/app/HomeClient.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/src/app/HomeClient.tsx\",\n \"default\",\n);\n","import { unstable_noStore as noStore } from \"next/cache\";\nimport { type AgentListItem } from \"@/lib/agents\";\nimport { runOpenClaw } from \"@/lib/openclaw\";\nimport { listRecipes } from \"@/lib/recipes\";\nimport HomeClient from \"./HomeClient\";\n\nexport const dynamic = \"force-dynamic\";\nexport const revalidate = 0;\nasync function getAgents(): Promise<AgentListItem[]> {\n const res = await runOpenClaw([\"agents\", \"list\", \"--json\"]);\n if (!res.ok) return [];\n return JSON.parse(res.stdout) as AgentListItem[];\n}\n\nasync function getTeamsFromRecipes(): Promise<{ teamNames: Record<string, string> }> {\n const items = await listRecipes();\n const teamNames: Record<string, string> = {};\n for (const r of items) {\n if (r.kind !== \"team\") continue;\n const name = String(r.name ?? \"\").trim();\n if (!name) continue;\n teamNames[r.id] = name;\n }\n return { teamNames };\n}\n\nexport default async function Home() {\n // Home should always reflect the current OpenClaw state (teams/agents can change outside Next).\n noStore();\n\n const [agents, { teamNames }] = await Promise.all([getAgents(), getTeamsFromRecipes()]);\n return <HomeClient agents={agents} teamNames={teamNames} />;\n}\n"],"names":[],"mappings":"m1BAEe,CAAA,EAAA,AADf,EAAA,CAAA,CAAA,OACe,uBAAA,AAAuB,EAClC,WAAa,MAAM,AAAI,MAAM,wRAA0R,EACvT,uDACA,gEAHW,CAAA,EAAA,AADf,EAAA,CAAA,CAAA,OACe,uBAAA,AAAuB,EAClC,WAAa,MAAM,AAAI,MAAM,oQAAsQ,EACnS,mCACA,8GCLJ,EAAA,EAAA,CAAA,CAAA,OAEA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAIA,eAAe,IACb,IAAM,EAAM,MAAM,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,CAAC,SAAU,OAAQ,SAAS,SAC1D,AAAK,EAAI,EAAE,AAAP,CACG,CADM,IACD,KAAK,CAAC,EAAI,MAAM,EADR,EAAE,AAExB,CAEA,eAAe,IACb,IAAM,EAAQ,MAAM,CAAA,EAAA,EAAA,WAAA,AAAW,IACzB,EAAoC,CAAC,EAC3C,IAAK,IAAM,KAAK,EAAO,CACrB,GAAe,SAAX,EAAE,IAAI,CAAa,SACvB,IAAM,EAAO,OAAO,EAAE,IAAI,EAAI,IAAI,IAAI,GACjC,IACL,CAAS,CADE,AACD,EAAE,EAAE,CAAC,CAAG,CAAA,CACpB,CACA,MAAO,WAAE,CAAU,CACrB,CAEe,eAAe,IAE5B,CAAA,EAAA,EAAA,gBAAA,AAAO,IAEP,GAAM,CAAC,EAAQ,WAAE,CAAS,CAAE,CAAC,CAAG,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAa,IAAsB,EACtF,MAAO,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,OAAU,CAAA,CAAC,OAAQ,EAAQ,UAAW,GAChD,kCA1BuB,+BACG","ignoreList":[0]}
@@ -16,6 +16,6 @@ Read more at https://nextjs.org/docs/messages/missing-root-layout-tags"
16
16
  Read more: https://nextjs.org/docs/messages/middleware-request-page
17
17
  `)}}class h extends Error{constructor(){super(`The request.ua has been removed in favour of \`userAgent\` function.
18
18
  Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent
19
- `)}}},63681,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={RequestCookies:function(){return f.RequestCookies},ResponseCookies:function(){return f.ResponseCookies},stringifyCookie:function(){return f.stringifyCookie}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(36226)},88491,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={INTERNALS:function(){return j},NextRequest:function(){return k}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(22670),g=a.r(92273),h=a.r(89753),i=a.r(63681),j=Symbol("internal request");class k extends Request{constructor(a,b={}){const c="string"!=typeof a&&"url"in a?a.url:String(a);(0,g.validateURL)(c),b.body&&"half"!==b.duplex&&(b.duplex="half"),a instanceof Request?super(a,b):super(c,b);const d=new f.NextURL(c,{headers:(0,g.toNodeOutgoingHttpHeaders)(this.headers),nextConfig:b.nextConfig});this[j]={cookies:new i.RequestCookies(this.headers),nextUrl:d,url:d.toString()}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,nextUrl:this.nextUrl,url:this.url,bodyUsed:this.bodyUsed,cache:this.cache,credentials:this.credentials,destination:this.destination,headers:Object.fromEntries(this.headers),integrity:this.integrity,keepalive:this.keepalive,method:this.method,mode:this.mode,redirect:this.redirect,referrer:this.referrer,referrerPolicy:this.referrerPolicy,signal:this.signal}}get cookies(){return this[j].cookies}get nextUrl(){return this[j].nextUrl}get page(){throw new h.RemovedPageError}get ua(){throw new h.RemovedUAError}get url(){return this[j].url}}},50965,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={isNodeNextRequest:function(){return h},isNodeNextResponse:function(){return i},isWebNextRequest:function(){return f},isWebNextResponse:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a=>!1,g=a=>!1,h=a=>!0,i=a=>!0},17498,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={NextRequestAdapter:function(){return n},ResponseAborted:function(){return k},ResponseAbortedName:function(){return j},createAbortController:function(){return l},signalFromNodeResponse:function(){return m}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(49697),g=a.r(92273),h=a.r(88491),i=a.r(50965),j="ResponseAborted";class k extends Error{constructor(...a){super(...a),this.name=j}}function l(a){let b=new AbortController;return a.once("close",()=>{a.writableFinished||b.abort(new k)}),b}function m(a){let{errored:b,destroyed:c}=a;if(b||c)return AbortSignal.abort(b??new k);let{signal:d}=l(a);return d}class n{static fromBaseNextRequest(a,b){if((0,i.isNodeNextRequest)(a))return n.fromNodeNextRequest(a,b);throw Object.defineProperty(Error("Invariant: Unsupported NextRequest type"),"__NEXT_ERROR_CODE",{value:"E345",enumerable:!1,configurable:!0})}static fromNodeNextRequest(a,b){let c,d=null;if("GET"!==a.method&&"HEAD"!==a.method&&a.body&&(d=a.body),a.url.startsWith("http"))c=new URL(a.url);else{let b=(0,f.getRequestMeta)(a,"initURL");c=b&&b.startsWith("http")?new URL(a.url,b):new URL(a.url,"http://n")}return new h.NextRequest(c,{method:a.method,headers:(0,g.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:b,...b.aborted?{}:{body:d}})}static fromWebNextRequest(a){let b=null;return"GET"!==a.method&&"HEAD"!==a.method&&(b=a.body),new h.NextRequest(a.url,{method:a.method,headers:(0,g.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:a.request.signal,...a.request.signal.aborted?{}:{body:b}})}}},86131,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={getClientComponentLoaderMetrics:function(){return j},wrapClientComponentLoader:function(){return i}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=0,g=0,h=0;function i(a){return"performance"in globalThis?{require:(...b)=>{let c=performance.now();0===f&&(f=c);try{return h+=1,a.__next_app__.require(...b)}finally{g+=performance.now()-c}},loadChunk:(...b)=>{let c=performance.now(),d=a.__next_app__.loadChunk(...b);return d.finally(()=>{g+=performance.now()-c}),d}}:a.__next_app__}function j(a={}){let b=0===f?void 0:{clientComponentLoadStart:f,clientComponentLoadTimes:g,clientComponentLoadCount:h};return a.reset&&(f=0,g=0,h=0),b}},76178,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={isAbortError:function(){return k},pipeToNodeResponse:function(){return l}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(17498),g=a.r(96194),h=a.r(35842),i=a.r(76391),j=a.r(86131);function k(a){return(null==a?void 0:a.name)==="AbortError"||(null==a?void 0:a.name)===f.ResponseAbortedName}async function l(a,b,c){try{let{errored:d,destroyed:e}=b;if(d||e)return;let k=(0,f.createAbortController)(b),l=function(a,b){let c=!1,d=new g.DetachedPromise;function e(){d.resolve()}a.on("drain",e),a.once("close",()=>{a.off("drain",e),d.resolve()});let f=new g.DetachedPromise;return a.once("finish",()=>{f.resolve()}),new WritableStream({write:async b=>{if(!c){if(c=!0,"performance"in globalThis&&process.env.NEXT_OTEL_PERFORMANCE_PREFIX){let a=(0,j.getClientComponentLoaderMetrics)();a&&performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`,{start:a.clientComponentLoadStart,end:a.clientComponentLoadStart+a.clientComponentLoadTimes})}a.flushHeaders(),(0,h.getTracer)().trace(i.NextNodeServerSpan.startResponse,{spanName:"start response"},()=>void 0)}try{let c=a.write(b);"flush"in a&&"function"==typeof a.flush&&a.flush(),c||(await d.promise,d=new g.DetachedPromise)}catch(b){throw a.end(),Object.defineProperty(Error("failed to write chunk to response",{cause:b}),"__NEXT_ERROR_CODE",{value:"E321",enumerable:!1,configurable:!0})}},abort:b=>{a.writableFinished||a.destroy(b)},close:async()=>{if(b&&await b,!a.writableFinished)return a.end(),f.promise}})}(b,c);await a.pipeTo(l,{signal:k.signal})}catch(a){if(k(a))return;throw Object.defineProperty(Error("failed to pipe response",{cause:a}),"__NEXT_ERROR_CODE",{value:"E180",enumerable:!1,configurable:!0})}}},25393,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return g}});let d=a.r(75406),e=a.r(76178),f=a.r(50640);class g{static #a=this.EMPTY=new g(null,{metadata:{},contentType:null});static fromStatic(a,b){return new g(a,{metadata:{},contentType:b})}constructor(a,{contentType:b,waitUntil:c,metadata:d}){this.response=a,this.contentType=b,this.metadata=d,this.waitUntil=c}assignMetadata(a){Object.assign(this.metadata,a)}get isNull(){return null===this.response}get isDynamic(){return"string"!=typeof this.response}toUnchunkedString(a=!1){if(null===this.response)return"";if("string"!=typeof this.response){if(!a)throw Object.defineProperty(new f.InvariantError("dynamic responses cannot be unchunked. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E732",enumerable:!1,configurable:!0});return(0,d.streamToString)(this.readable)}return this.response}get readable(){return null===this.response?new ReadableStream({start(a){a.close()}}):"string"==typeof this.response?(0,d.streamFromString)(this.response):Buffer.isBuffer(this.response)?(0,d.streamFromBuffer)(this.response):Array.isArray(this.response)?(0,d.chainStreams)(...this.response):this.response}coerce(){return null===this.response?[]:"string"==typeof this.response?[(0,d.streamFromString)(this.response)]:Array.isArray(this.response)?this.response:Buffer.isBuffer(this.response)?[(0,d.streamFromBuffer)(this.response)]:[this.response]}unshift(a){this.response=this.coerce(),this.response.unshift(a)}push(a){this.response=this.coerce(),this.response.push(a)}async pipeTo(a){try{await this.readable.pipeTo(a,{preventClose:!0}),this.waitUntil&&await this.waitUntil,await a.close()}catch(b){if((0,e.isAbortError)(b))return void await a.abort(b);throw b}}async pipeToNodeResponse(a){await (0,e.pipeToNodeResponse)(this.readable,a,this.waitUntil)}}},29756,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"RouteKind",{enumerable:!0,get:function(){return e}});var d,e=((d={}).PAGES="PAGES",d.PAGES_API="PAGES_API",d.APP_PAGE="APP_PAGE",d.APP_ROUTE="APP_ROUTE",d.IMAGE="IMAGE",d)},41333,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d,e={fromResponseCacheEntry:function(){return k},routeKindToIncrementalCacheKind:function(){return m},toResponseCacheEntry:function(){return l}};for(var f in e)Object.defineProperty(c,f,{enumerable:!0,get:e[f]});let g=a.r(41733),h=(d=a.r(25393))&&d.__esModule?d:{default:d},i=a.r(29756),j=a.r(99870);async function k(a){var b,c;return{...a,value:(null==(b=a.value)?void 0:b.kind)===g.CachedRouteKind.PAGES?{kind:g.CachedRouteKind.PAGES,html:await a.value.html.toUnchunkedString(!0),pageData:a.value.pageData,headers:a.value.headers,status:a.value.status}:(null==(c=a.value)?void 0:c.kind)===g.CachedRouteKind.APP_PAGE?{kind:g.CachedRouteKind.APP_PAGE,html:await a.value.html.toUnchunkedString(!0),postponed:a.value.postponed,rscData:a.value.rscData,headers:a.value.headers,status:a.value.status,segmentData:a.value.segmentData}:a.value}}async function l(a){var b,c;return a?{isMiss:a.isMiss,isStale:a.isStale,cacheControl:a.cacheControl,value:(null==(b=a.value)?void 0:b.kind)===g.CachedRouteKind.PAGES?{kind:g.CachedRouteKind.PAGES,html:h.default.fromStatic(a.value.html,j.HTML_CONTENT_TYPE_HEADER),pageData:a.value.pageData,headers:a.value.headers,status:a.value.status}:(null==(c=a.value)?void 0:c.kind)===g.CachedRouteKind.APP_PAGE?{kind:g.CachedRouteKind.APP_PAGE,html:h.default.fromStatic(a.value.html,j.HTML_CONTENT_TYPE_HEADER),rscData:a.value.rscData,headers:a.value.headers,status:a.value.status,postponed:a.value.postponed,segmentData:a.value.segmentData}:a.value}:null}function m(a){switch(a){case i.RouteKind.PAGES:return g.IncrementalCacheKind.PAGES;case i.RouteKind.APP_PAGE:return g.IncrementalCacheKind.APP_PAGE;case i.RouteKind.IMAGE:return g.IncrementalCacheKind.IMAGE;case i.RouteKind.APP_ROUTE:return g.IncrementalCacheKind.APP_ROUTE;case i.RouteKind.PAGES_API:throw Object.defineProperty(Error(`Unexpected route kind ${a}`),"__NEXT_ERROR_CODE",{value:"E64",enumerable:!1,configurable:!0});default:return a}}},24653,(a,b,c)=>{"use strict";var d,e;Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return p}});let f=a.r(88690),g=a.r(10184),h=a.r(51402),i=a.r(61933),j=a.r(41333);function k(a,b){if(!a)return b;let c=parseInt(a,10);return Number.isFinite(c)&&c>0?c:b}d=a.r(41733),e=c,Object.keys(d).forEach(function(a){"default"===a||Object.prototype.hasOwnProperty.call(e,a)||Object.defineProperty(e,a,{enumerable:!0,get:function(){return d[a]}})});let l=k(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL,1e4),m=k(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE,150),n="__ttl_sentinel__";function o(a,b){return`${a}\0${b??n}`}class p{constructor(a,b=m,c=l){this.getBatcher=f.Batcher.create({cacheKeyFn:({key:a,isOnDemandRevalidate:b})=>`${a}-${b?"1":"0"}`,schedulerFn:i.scheduleOnNextTick}),this.revalidateBatcher=f.Batcher.create({schedulerFn:i.scheduleOnNextTick}),this.evictedInvocationIDs=new Set,this.minimal_mode=a,this.maxSize=b,this.ttl=c,this.cache=new g.LRUCache(b,void 0,a=>{let b=function(a){let b=a.lastIndexOf("\0");if(-1===b)return;let c=a.slice(b+1);return c===n?void 0:c}(a);if(b){if(this.evictedInvocationIDs.size>=100){let a=this.evictedInvocationIDs.values().next().value;a&&this.evictedInvocationIDs.delete(a)}this.evictedInvocationIDs.add(b)}})}async get(a,b,c){if(!a)return b({hasResolved:!1,previousCacheEntry:null});if(this.minimal_mode){let b=o(a,c.invocationID),d=this.cache.get(b);if(d){if(void 0!==c.invocationID)return(0,j.toResponseCacheEntry)(d.entry);let a=Date.now();if(d.expiresAt>a)return(0,j.toResponseCacheEntry)(d.entry);this.cache.remove(b)}c.invocationID&&this.evictedInvocationIDs.has(c.invocationID)&&(0,h.warnOnce)(`Response cache entry was evicted for invocation ${c.invocationID}. Consider increasing NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE (current: ${this.maxSize}).`)}let{incrementalCache:d,isOnDemandRevalidate:e=!1,isFallback:f=!1,isRoutePPREnabled:g=!1,isPrefetch:i=!1,waitUntil:k,routeKind:l,invocationID:m}=c,n=await this.getBatcher.batch({key:a,isOnDemandRevalidate:e},({resolve:c})=>{let h=this.handleGet(a,b,{incrementalCache:d,isOnDemandRevalidate:e,isFallback:f,isRoutePPREnabled:g,isPrefetch:i,routeKind:l,invocationID:m},c);return k&&k(h),h});return(0,j.toResponseCacheEntry)(n)}async handleGet(a,b,c,d){let e=null,f=!1;try{if((e=this.minimal_mode?null:await c.incrementalCache.get(a,{kind:(0,j.routeKindToIncrementalCacheKind)(c.routeKind),isRoutePPREnabled:c.isRoutePPREnabled,isFallback:c.isFallback}))&&!c.isOnDemandRevalidate&&(d(e),f=!0,!e.isStale||c.isPrefetch))return e;let g=await this.revalidate(a,c.incrementalCache,c.isRoutePPREnabled,c.isFallback,b,e,null!==e&&!c.isOnDemandRevalidate,void 0,c.invocationID);if(!g){if(this.minimal_mode){let b=o(a,c.invocationID);this.cache.remove(b)}return null}return c.isOnDemandRevalidate,g}catch(a){if(f)return console.error(a),null;throw a}}async revalidate(a,b,c,d,e,f,g,h,i){return this.revalidateBatcher.batch(a,()=>{let j=this.handleRevalidate(a,b,c,d,e,f,g,i);return h&&h(j),j})}async handleRevalidate(a,b,c,d,e,f,g,h){try{let i=await e({hasResolved:g,previousCacheEntry:f,isRevalidating:!0});if(!i)return null;let k=await (0,j.fromResponseCacheEntry)({...i,isMiss:!f});if(k.cacheControl)if(this.minimal_mode){let b=o(a,h);this.cache.set(b,{entry:k,expiresAt:Date.now()+this.ttl})}else await b.set(a,k.value,{cacheControl:k.cacheControl,isRoutePPREnabled:c,isFallback:d});return k}catch(e){if(null==f?void 0:f.cacheControl){let e=Math.min(Math.max(f.cacheControl.revalidate||3,3),30),g=void 0===f.cacheControl.expire?void 0:Math.max(e+3,f.cacheControl.expire);await b.set(a,f.value,{cacheControl:{revalidate:e,expire:g},isRoutePPREnabled:c,isFallback:d})}throw e}}}},28340,(a,b,c)=>{"use strict";function d(){let a,b,c=new Promise((c,d)=>{a=c,b=d});return{resolve:a,reject:b,promise:c}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"createPromiseWithResolvers",{enumerable:!0,get:function(){return d}})},31382,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d,e={RenderStage:function(){return i},StagedRenderingController:function(){return j}};for(var f in e)Object.defineProperty(c,f,{enumerable:!0,get:e[f]});let g=a.r(50640),h=a.r(28340);var i=((d={})[d.Before=1]="Before",d[d.Static=2]="Static",d[d.Runtime=3]="Runtime",d[d.Dynamic=4]="Dynamic",d[d.Abandoned=5]="Abandoned",d);class j{constructor(a=null,b){this.abortSignal=a,this.hasRuntimePrefetch=b,this.currentStage=1,this.staticInterruptReason=null,this.runtimeInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.runtimeStagePromise=(0,h.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,h.createPromiseWithResolvers)(),this.mayAbandon=!1,a&&(a.addEventListener("abort",()=>{let{reason:b}=a;this.currentStage<3&&(this.runtimeStagePromise.promise.catch(k),this.runtimeStagePromise.reject(b)),(this.currentStage<4||5===this.currentStage)&&(this.dynamicStagePromise.promise.catch(k),this.dynamicStagePromise.reject(b))},{once:!0}),this.mayAbandon=!0)}onStage(a,b){if(this.currentStage>=a)b();else if(3===a)this.runtimeStageListeners.push(b);else if(4===a)this.dynamicStageListeners.push(b);else throw Object.defineProperty(new g.InvariantError(`Invalid render stage: ${a}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}canSyncInterrupt(){if(1===this.currentStage)return!1;let a=this.hasRuntimePrefetch?4:3;return this.currentStage<a}syncInterruptCurrentStageWithReason(a){if(1!==this.currentStage){if(this.mayAbandon)return this.abandonRenderImpl();switch(this.currentStage){case 2:this.staticInterruptReason=a,this.advanceStage(4);return;case 3:this.hasRuntimePrefetch&&(this.runtimeInterruptReason=a,this.advanceStage(4));return}}}getStaticInterruptReason(){return this.staticInterruptReason}getRuntimeInterruptReason(){return this.runtimeInterruptReason}getStaticStageEndTime(){return this.staticStageEndTime}getRuntimeStageEndTime(){return this.runtimeStageEndTime}abandonRender(){if(!this.mayAbandon)throw Object.defineProperty(new g.InvariantError("`abandonRender` called on a stage controller that cannot be abandoned."),"__NEXT_ERROR_CODE",{value:"E938",enumerable:!1,configurable:!0});this.abandonRenderImpl()}abandonRenderImpl(){let{currentStage:a}=this;switch(a){case 2:this.currentStage=5,this.resolveRuntimeStage();return;case 3:this.currentStage=5;return}}advanceStage(a){if(a<=this.currentStage)return;let b=this.currentStage;if(this.currentStage=a,b<3&&a>=3&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),b<4&&a>=4){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveRuntimeStage(){let a=this.runtimeStageListeners;for(let b=0;b<a.length;b++)a[b]();a.length=0,this.runtimeStagePromise.resolve()}resolveDynamicStage(){let a=this.dynamicStageListeners;for(let b=0;b<a.length;b++)a[b]();a.length=0,this.dynamicStagePromise.resolve()}getStagePromise(a){switch(a){case 3:return this.runtimeStagePromise.promise;case 4:return this.dynamicStagePromise.promise;default:throw Object.defineProperty(new g.InvariantError(`Invalid render stage: ${a}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}}waitForStage(a){return this.getStagePromise(a)}delayUntilStage(a,b,c){var d,e,f;let g,h=(d=this.getStagePromise(a),e=b,f=c,g=new Promise((a,b)=>{d.then(a.bind(null,f),b)}),void 0!==e&&(g.displayName=e),g);return this.abortSignal&&h.catch(k),h}}function k(){}},26095,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={NEXT_PATCH_SYMBOL:function(){return o},createPatchedFetcher:function(){return u},patchFetch:function(){return v},validateRevalidate:function(){return p},validateTags:function(){return q}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(76391),g=a.r(35842),h=a.r(99870),i=a.r(60384),j=a.r(13091),k=a.r(1786),l=a.r(32319),m=a.r(24653),n=a.r(5723);a.r(31382);let o=Symbol.for("next-patch");function p(a,b){try{let c;if(!1===a)c=h.INFINITE_CACHE;else if("number"==typeof a&&!isNaN(a)&&a>-1)c=a;else if(void 0!==a)throw Object.defineProperty(Error(`Invalid revalidate value "${a}" on "${b}", must be a non-negative number or false`),"__NEXT_ERROR_CODE",{value:"E179",enumerable:!1,configurable:!0});return c}catch(a){if(a instanceof Error&&a.message.includes("Invalid revalidate"))throw a;return}}function q(a,b){let c=[],d=[];for(let e=0;e<a.length;e++){let f=a[e];if("string"!=typeof f?d.push({tag:f,reason:"invalid type, must be a string"}):f.length>h.NEXT_CACHE_TAG_MAX_LENGTH?d.push({tag:f,reason:`exceeded max length of ${h.NEXT_CACHE_TAG_MAX_LENGTH}`}):c.push(f),c.length>h.NEXT_CACHE_TAG_MAX_ITEMS){console.warn(`Warning: exceeded max tag count for ${b}, dropped tags:`,a.slice(e).join(", "));break}}if(d.length>0)for(let{tag:a,reason:c}of(console.warn(`Warning: invalid tags passed to ${b}: `),d))console.log(`tag: "${a}" ${c}`);return c}function r(a,b){a.shouldTrackFetchMetrics&&(a.fetchMetrics??=[],a.fetchMetrics.push({...b,end:performance.timeOrigin+performance.now(),idx:a.nextFetchId||0}))}async function s(a,b,c,d,e,f){let g=await a.arrayBuffer(),h={headers:Object.fromEntries(a.headers.entries()),body:Buffer.from(g).toString("base64"),status:a.status,url:a.url};return c&&await d.set(b,{kind:m.CachedRouteKind.FETCH,data:h,revalidate:e},c),await f(),new Response(g,{headers:a.headers,status:a.status,statusText:a.statusText})}async function t(a,b,c,d,e,f,g,h,i){let[j,k]=(0,n.cloneResponse)(b),l=j.arrayBuffer().then(async a=>{let b=Buffer.from(a),h={headers:Object.fromEntries(j.headers.entries()),body:b.toString("base64"),status:j.status,url:j.url};null==f||f.set(c,h),d&&await e.set(c,{kind:m.CachedRouteKind.FETCH,data:h,revalidate:g},d)}).catch(a=>console.warn("Failed to set fetch cache",h,a)).finally(i),o=`cache-set-${c}`,p=a.pendingRevalidates??={},q=Promise.resolve();return o in p&&(q=p[o]),p[o]=q.then(()=>l).finally(()=>{(null==p?void 0:p[o])&&delete p[o]}),k}function u(a,{workAsyncStorage:b,workUnitAsyncStorage:c}){let d=async function(d,e){var k,o;let u;try{(u=new URL(d instanceof Request?d.url:d)).username="",u.password=""}catch{u=void 0}let v=(null==u?void 0:u.href)??"",x=(null==e||null==(k=e.method)?void 0:k.toUpperCase())||"GET",y=(null==e||null==(o=e.next)?void 0:o.internal)===!0,z="1"===process.env.NEXT_OTEL_FETCH_DISABLED,A=y?void 0:performance.timeOrigin+performance.now(),B=b.getStore(),C=c.getStore(),D=C?(0,l.getCacheSignal)(C):null;D&&D.beginRead();let E=(0,g.getTracer)().trace(y?f.NextNodeServerSpan.internalFetch:f.AppRenderSpan.fetch,{hideSpan:z,kind:g.SpanKind.CLIENT,spanName:["fetch",x,v].filter(Boolean).join(" "),attributes:{"http.url":v,"http.method":x,"net.peer.name":null==u?void 0:u.hostname,"net.peer.port":(null==u?void 0:u.port)||void 0}},async()=>{var b;let c,f,g,k,l,o;if(y||!B||B.isDraftMode)return a(d,e);let u=d&&"object"==typeof d&&"string"==typeof d.method,x=a=>(null==e?void 0:e[a])||(u?d[a]:null),z=a=>{var b,c,f;return void 0!==(null==e||null==(b=e.next)?void 0:b[a])?null==e||null==(c=e.next)?void 0:c[a]:u?null==(f=d.next)?void 0:f[a]:void 0},E=z("revalidate"),F=E,G=q(z("tags")||[],`fetch ${d.toString()}`);if(C)switch(C.type){case"prerender":case"prerender-runtime":case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":c=C}if(c&&Array.isArray(G)){let a=c.tags??(c.tags=[]);for(let b of G)a.includes(b)||a.push(b)}let H=null==C?void 0:C.implicitTags,I=B.fetchCache;C&&"unstable-cache"===C.type&&(I="force-no-store");let J=!!B.isUnstableNoStore,K=x("cache"),L="";"string"==typeof K&&void 0!==F&&("force-cache"===K&&0===F||"no-store"===K&&(F>0||!1===F))&&(f=`Specified "cache: ${K}" and "revalidate: ${F}", only one should be specified.`,K=void 0,F=void 0);let M="no-cache"===K||"no-store"===K||"force-no-store"===I||"only-no-store"===I,N=!I&&!K&&!F&&B.forceDynamic;"force-cache"===K&&void 0===F?F=!1:(M||N)&&(F=0),("no-cache"===K||"no-store"===K)&&(L=`cache: ${K}`),o=p(F,B.route);let O=x("headers"),P="function"==typeof(null==O?void 0:O.get)?O:new Headers(O||{}),Q=P.get("authorization")||P.get("cookie"),R=!["get","head"].includes((null==(b=x("method"))?void 0:b.toLowerCase())||"get"),S=void 0==I&&(void 0==K||"default"===K)&&void 0==F,T=!!((Q||R)&&(null==c?void 0:c.revalidate)===0),U=!1;if(!T&&S&&(B.isBuildTimePrerendering?U=!0:T=!0),S&&void 0!==C)switch(C.type){case"prerender":case"prerender-runtime":case"prerender-client":return D&&(D.endRead(),D=null),(0,j.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}switch(I){case"force-no-store":L="fetchCache = force-no-store";break;case"only-no-store":if("force-cache"===K||void 0!==o&&o>0)throw Object.defineProperty(Error(`cache: 'force-cache' used on fetch for ${v} with 'export const fetchCache = 'only-no-store'`),"__NEXT_ERROR_CODE",{value:"E448",enumerable:!1,configurable:!0});L="fetchCache = only-no-store";break;case"only-cache":if("no-store"===K)throw Object.defineProperty(Error(`cache: 'no-store' used on fetch for ${v} with 'export const fetchCache = 'only-cache'`),"__NEXT_ERROR_CODE",{value:"E521",enumerable:!1,configurable:!0});break;case"force-cache":(void 0===F||0===F)&&(L="fetchCache = force-cache",o=h.INFINITE_CACHE)}if(void 0===o?"default-cache"!==I||J?"default-no-store"===I?(o=0,L="fetchCache = default-no-store"):J?(o=0,L="noStore call"):T?(o=0,L="auto no cache"):(L="auto cache",o=c?c.revalidate:h.INFINITE_CACHE):(o=h.INFINITE_CACHE,L="fetchCache = default-cache"):L||(L=`revalidate: ${o}`),!(B.forceStatic&&0===o)&&!T&&c&&o<c.revalidate){if(0===o){if(C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":return D&&(D.endRead(),D=null),(0,j.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}(0,i.markCurrentScopeAsDynamic)(B,C,`revalidate: 0 fetch ${d} ${B.route}`)}c&&E===o&&(c.revalidate=o)}let V="number"==typeof o&&o>0,{incrementalCache:W}=B,X=!1;if(C)switch(C.type){case"request":case"cache":case"private-cache":X=C.isHmrRefresh??!1,k=C.serverComponentsHmrCache}if(W&&(V||k))try{g=await W.generateCacheKey(v,u?d:e)}catch(a){console.error("Failed to generate cache key for",d)}let Y=B.nextFetchId??1;B.nextFetchId=Y+1;let Z=()=>{},$=async(b,c)=>{let i=["cache","credentials","headers","integrity","keepalive","method","mode","redirect","referrer","referrerPolicy","window","duplex",...b?[]:["signal"]];if(u){let a=d,b={body:a._ogBody||a.body};for(let c of i)b[c]=a[c];d=new Request(a.url,b)}else if(e){let{_ogBody:a,body:c,signal:d,...f}=e;e={...f,body:a||c,signal:b?void 0:d}}let j={...e,next:{...null==e?void 0:e.next,fetchType:"origin",fetchIdx:Y}};return a(d,j).then(async a=>{if(!b&&A&&r(B,{start:A,url:v,cacheReason:c||L,cacheStatus:0===o||c?"skip":"miss",cacheWarning:f,status:a.status,method:j.method||"GET"}),200===a.status&&W&&g&&(V||k)){let b=o>=h.INFINITE_CACHE?h.CACHE_ONE_YEAR:o,c=V?{fetchCache:!0,fetchUrl:v,fetchIdx:Y,tags:G,isImplicitBuildTimeCache:U}:void 0;switch(null==C?void 0:C.type){case"prerender":case"prerender-client":case"prerender-runtime":return s(a,g,c,W,b,Z);case"request":case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":case void 0:return t(B,a,g,c,W,k,b,d,Z)}}return await Z(),a}).catch(a=>{throw Z(),a})},_=!1,aa=!1;if(g&&W){let a;if(X&&k&&(a=k.get(g),aa=!0),V&&!a){Z=await W.lock(g);let b=B.isOnDemandRevalidate?null:await W.get(g,{kind:m.IncrementalCacheKind.FETCH,revalidate:o,fetchUrl:v,fetchIdx:Y,tags:G,softTags:null==H?void 0:H.tags});if(S&&C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":await (w||(w=new Promise(a=>{setTimeout(()=>{w=null,a()},0)})),w)}if(b?await Z():l="cache-control: no-cache (hard refresh)",(null==b?void 0:b.value)&&b.value.kind===m.CachedRouteKind.FETCH)if(B.isStaticGeneration&&b.isStale)_=!0;else{if(b.isStale&&(B.pendingRevalidates??={},!B.pendingRevalidates[g])){let a=$(!0).then(async a=>({body:await a.arrayBuffer(),headers:a.headers,status:a.status,statusText:a.statusText})).finally(()=>{B.pendingRevalidates??={},delete B.pendingRevalidates[g||""]});a.catch(console.error),B.pendingRevalidates[g]=a}a=b.value.data}}if(a){A&&r(B,{start:A,url:v,cacheReason:L,cacheStatus:aa?"hmr":"hit",cacheWarning:f,status:a.status||200,method:(null==e?void 0:e.method)||"GET"});let b=new Response(Buffer.from(a.body,"base64"),{headers:a.headers,status:a.status});return Object.defineProperty(b,"url",{value:a.url}),b}}if(B.isStaticGeneration&&e&&"object"==typeof e){let{cache:a}=e;if("no-store"===a){if(C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":return D&&(D.endRead(),D=null),(0,j.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}(0,i.markCurrentScopeAsDynamic)(B,C,`no-store fetch ${d} ${B.route}`)}let b="next"in e,{next:f={}}=e;if("number"==typeof f.revalidate&&c&&f.revalidate<c.revalidate){if(0===f.revalidate){if(C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":return(0,j.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}(0,i.markCurrentScopeAsDynamic)(B,C,`revalidate: 0 fetch ${d} ${B.route}`)}B.forceStatic&&0===f.revalidate||(c.revalidate=f.revalidate)}b&&delete e.next}if(!g||!_)return $(!1,l);{let a=g;B.pendingRevalidates??={};let b=B.pendingRevalidates[a];if(b){let a=await b;return new Response(a.body,{headers:a.headers,status:a.status,statusText:a.statusText})}let c=$(!0,l).then(n.cloneResponse);return(b=c.then(async a=>{let b=a[0];return{body:await b.arrayBuffer(),headers:b.headers,status:b.status,statusText:b.statusText}}).finally(()=>{var b;(null==(b=B.pendingRevalidates)?void 0:b[a])&&delete B.pendingRevalidates[a]})).catch(()=>{}),B.pendingRevalidates[a]=b,c.then(a=>a[1])}});if(D)try{return await E}finally{D&&D.endRead()}return E};return d.__nextPatched=!0,d.__nextGetStaticStore=()=>b,d._nextOriginalFetch=a,globalThis[o]=!0,Object.defineProperty(d,"name",{value:"fetch",writable:!1}),d}function v(a){if(!0===globalThis[o])return;let b=(0,k.createDedupeFetch)(globalThis.fetch);globalThis.fetch=u(b,a)}let w=null},71632,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unstable_cache",{enumerable:!0,get:function(){return k}});let d=a.r(99870),e=a.r(26095),f=a.r(56704),g=a.r(32319),h=a.r(24653),i=0;async function j(a,b,c,e,f,g,i){await b.set(c,{kind:h.CachedRouteKind.FETCH,data:{headers:{},body:JSON.stringify(a),status:200,url:""},revalidate:"number"!=typeof f?d.CACHE_ONE_YEAR:f},{fetchCache:!0,tags:e,fetchIdx:g,fetchUrl:i})}function k(a,b,c={}){if(0===c.revalidate)throw Object.defineProperty(Error(`Invariant revalidate: 0 can not be passed to unstable_cache(), must be "false" or "> 0" ${a.toString()}`),"__NEXT_ERROR_CODE",{value:"E57",enumerable:!1,configurable:!0});let d=c.tags?(0,e.validateTags)(c.tags,`unstable_cache ${a.toString()}`):[];(0,e.validateRevalidate)(c.revalidate,`unstable_cache ${a.name||a.toString()}`);let l=`${a.toString()}-${Array.isArray(b)&&b.join(",")}`;return async(...b)=>{let e=f.workAsyncStorage.getStore(),k=g.workUnitAsyncStorage.getStore(),m=(null==e?void 0:e.incrementalCache)||globalThis.__incrementalCache;if(!m)throw Object.defineProperty(Error(`Invariant: incrementalCache missing in unstable_cache ${a.toString()}`),"__NEXT_ERROR_CODE",{value:"E469",enumerable:!1,configurable:!0});let n=k?(0,g.getCacheSignal)(k):null;n&&n.beginRead();try{let f=e&&k?function(a,b){switch(b.type){case"request":let c=b.url.pathname,d=new URLSearchParams(b.url.search),e=[...d.keys()].sort((a,b)=>a.localeCompare(b)).map(a=>`${a}=${d.get(a)}`).join("&");return`${c}${e.length?"?":""}${e}`;case"prerender":case"prerender-client":case"prerender-runtime":case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return a.route;default:return b}}(e,k):"",n=`${l}-${JSON.stringify(b)}`,o=await m.generateCacheKey(n),p=`unstable_cache ${f} ${a.name?` ${a.name}`:o}`,q=(e?e.nextFetchId:i)??1,r=null==k?void 0:k.implicitTags,s={type:"unstable-cache",phase:"render",implicitTags:r,draftMode:k&&e&&(0,g.getDraftModeProviderForCacheScope)(e,k)};if(e){e.nextFetchId=q+1;let f=!1;if(k)switch(k.type){case"cache":case"private-cache":case"prerender":case"prerender-runtime":case"prerender-ppr":case"prerender-legacy":"number"==typeof c.revalidate&&(k.revalidate<c.revalidate||(k.revalidate=c.revalidate));let i=k.tags;if(null===i)k.tags=d.slice();else for(let a of d)i.includes(a)||i.push(a);break;case"unstable-cache":f=!0}if(!f&&"force-no-store"!==e.fetchCache&&!e.isOnDemandRevalidate&&!m.isOnDemandRevalidate&&!e.isDraftMode){let f=await m.get(o,{kind:h.IncrementalCacheKind.FETCH,revalidate:c.revalidate,tags:d,softTags:null==r?void 0:r.tags,fetchIdx:q,fetchUrl:p});if(f&&f.value)if(f.value.kind!==h.CachedRouteKind.FETCH)console.error(`Invariant invalid cacheEntry returned for ${n}`);else{let h=void 0!==f.value.data.body?JSON.parse(f.value.data.body):void 0;if(f.isStale){if(e.pendingRevalidates||(e.pendingRevalidates={}),!e.pendingRevalidates[n]){let f=g.workUnitAsyncStorage.run(s,a,...b).then(async a=>(await j(a,m,o,d,c.revalidate,q,p),a)).catch(a=>(console.error(`revalidating cache with key: ${n}`,a),h));e.isStaticGeneration&&f.catch(()=>{}),e.pendingRevalidates[n]=f}if(e.isStaticGeneration)return e.pendingRevalidates[n]}return h}}let l=await g.workUnitAsyncStorage.run(s,a,...b);return e.isDraftMode||(e.pendingRevalidates||(e.pendingRevalidates={}),e.pendingRevalidates[n]=j(l,m,o,d,c.revalidate,q,p)),l}{if(i+=1,!m.isOnDemandRevalidate){let a=await m.get(o,{kind:h.IncrementalCacheKind.FETCH,revalidate:c.revalidate,tags:d,fetchIdx:q,fetchUrl:p,softTags:null==r?void 0:r.tags});if(a&&a.value){if(a.value.kind!==h.CachedRouteKind.FETCH)console.error(`Invariant invalid cacheEntry returned for ${n}`);else if(!a.isStale)return void 0!==a.value.data.body?JSON.parse(a.value.data.body):void 0}}let e=await g.workUnitAsyncStorage.run(s,a,...b);return await j(e,m,o,d,c.revalidate,q,p),e}}finally{n&&n.endRead()}}}},46043,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={getSortedRouteObjects:function(){return h},getSortedRoutes:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});class f{insert(a){this._insert(a.split("/").filter(Boolean),[],!1)}smoosh(){return this._smoosh()}_smoosh(a="/"){let b=[...this.children.keys()].sort();null!==this.slugName&&b.splice(b.indexOf("[]"),1),null!==this.restSlugName&&b.splice(b.indexOf("[...]"),1),null!==this.optionalRestSlugName&&b.splice(b.indexOf("[[...]]"),1);let c=b.map(b=>this.children.get(b)._smoosh(`${a}${b}/`)).reduce((a,b)=>[...a,...b],[]);if(null!==this.slugName&&c.push(...this.children.get("[]")._smoosh(`${a}[${this.slugName}]/`)),!this.placeholder){let b="/"===a?"/":a.slice(0,-1);if(null!=this.optionalRestSlugName)throw Object.defineProperty(Error(`You cannot define a route with the same specificity as a optional catch-all route ("${b}" and "${b}[[...${this.optionalRestSlugName}]]").`),"__NEXT_ERROR_CODE",{value:"E458",enumerable:!1,configurable:!0});c.unshift(b)}return null!==this.restSlugName&&c.push(...this.children.get("[...]")._smoosh(`${a}[...${this.restSlugName}]/`)),null!==this.optionalRestSlugName&&c.push(...this.children.get("[[...]]")._smoosh(`${a}[[...${this.optionalRestSlugName}]]/`)),c}_insert(a,b,c){if(0===a.length){this.placeholder=!1;return}if(c)throw Object.defineProperty(Error("Catch-all must be the last part of the URL."),"__NEXT_ERROR_CODE",{value:"E392",enumerable:!1,configurable:!0});let d=a[0];if(d.startsWith("[")&&d.endsWith("]")){let f=d.slice(1,-1),g=!1;if(f.startsWith("[")&&f.endsWith("]")&&(f=f.slice(1,-1),g=!0),f.startsWith("…"))throw Object.defineProperty(Error(`Detected a three-dot character ('…') at ('${f}'). Did you mean ('...')?`),"__NEXT_ERROR_CODE",{value:"E147",enumerable:!1,configurable:!0});if(f.startsWith("...")&&(f=f.substring(3),c=!0),f.startsWith("[")||f.endsWith("]"))throw Object.defineProperty(Error(`Segment names may not start or end with extra brackets ('${f}').`),"__NEXT_ERROR_CODE",{value:"E421",enumerable:!1,configurable:!0});if(f.startsWith("."))throw Object.defineProperty(Error(`Segment names may not start with erroneous periods ('${f}').`),"__NEXT_ERROR_CODE",{value:"E288",enumerable:!1,configurable:!0});function e(a,c){if(null!==a&&a!==c)throw Object.defineProperty(Error(`You cannot use different slug names for the same dynamic path ('${a}' !== '${c}').`),"__NEXT_ERROR_CODE",{value:"E337",enumerable:!1,configurable:!0});b.forEach(a=>{if(a===c)throw Object.defineProperty(Error(`You cannot have the same slug name "${c}" repeat within a single dynamic path`),"__NEXT_ERROR_CODE",{value:"E247",enumerable:!1,configurable:!0});if(a.replace(/\W/g,"")===d.replace(/\W/g,""))throw Object.defineProperty(Error(`You cannot have the slug names "${a}" and "${c}" differ only by non-word symbols within a single dynamic path`),"__NEXT_ERROR_CODE",{value:"E499",enumerable:!1,configurable:!0})}),b.push(c)}if(c)if(g){if(null!=this.restSlugName)throw Object.defineProperty(Error(`You cannot use both an required and optional catch-all route at the same level ("[...${this.restSlugName}]" and "${a[0]}" ).`),"__NEXT_ERROR_CODE",{value:"E299",enumerable:!1,configurable:!0});e(this.optionalRestSlugName,f),this.optionalRestSlugName=f,d="[[...]]"}else{if(null!=this.optionalRestSlugName)throw Object.defineProperty(Error(`You cannot use both an optional and required catch-all route at the same level ("[[...${this.optionalRestSlugName}]]" and "${a[0]}").`),"__NEXT_ERROR_CODE",{value:"E300",enumerable:!1,configurable:!0});e(this.restSlugName,f),this.restSlugName=f,d="[...]"}else{if(g)throw Object.defineProperty(Error(`Optional route parameters are not yet supported ("${a[0]}").`),"__NEXT_ERROR_CODE",{value:"E435",enumerable:!1,configurable:!0});e(this.slugName,f),this.slugName=f,d="[]"}}this.children.has(d)||this.children.set(d,new f),this.children.get(d)._insert(a.slice(1),b,c)}constructor(){this.placeholder=!0,this.children=new Map,this.slugName=null,this.restSlugName=null,this.optionalRestSlugName=null}}function g(a){let b=new f;return a.forEach(a=>b.insert(a)),b.smoosh()}function h(a,b){let c={},d=[];for(let e=0;e<a.length;e++){let f=b(a[e]);c[f]=e,d[e]=f}return g(d).map(b=>a[c[b]])}},82966,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isDynamicRoute",{enumerable:!0,get:function(){return g}});let d=a.r(97908),e=/\/[^/]*\[[^/]+\][^/]*(?=\/|$)/,f=/\/\[[^/]+\](?=\/|$)/;function g(a,b=!0){return((0,d.isInterceptionRouteAppPath)(a)&&(a=(0,d.extractInterceptionRouteInformation)(a).interceptedRoute),b)?f.test(a):e.test(a)}},19228,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={getSortedRouteObjects:function(){return f.getSortedRouteObjects},getSortedRoutes:function(){return f.getSortedRoutes},isDynamicRoute:function(){return g.isDynamicRoute}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(46043),g=a.r(82966)},4712,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ActionDidNotRevalidate:function(){return f},ActionDidRevalidateDynamicOnly:function(){return h},ActionDidRevalidateStaticAndDynamic:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=0,g=1,h=2},65819,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={refresh:function(){return p},revalidatePath:function(){return q},revalidateTag:function(){return n},updateTag:function(){return o}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(60384),g=a.r(19228),h=a.r(99870),i=a.r(56704),j=a.r(32319),k=a.r(96556),l=a.r(50640),m=a.r(4712);function n(a,b){return b||console.warn('"revalidateTag" without the second argument is now deprecated, add second argument of "max" or use "updateTag". See more info here: https://nextjs.org/docs/messages/revalidate-tag-single-arg'),r([a],`revalidateTag ${a}`,b)}function o(a){let b=i.workAsyncStorage.getStore();if(!b||b.page.endsWith("/route"))throw Object.defineProperty(Error("updateTag can only be called from within a Server Action. To invalidate cache tags in Route Handlers or other contexts, use revalidateTag instead. See more info here: https://nextjs.org/docs/app/api-reference/functions/updateTag"),"__NEXT_ERROR_CODE",{value:"E872",enumerable:!1,configurable:!0});return r([a],`updateTag ${a}`,void 0)}function p(){let a=i.workAsyncStorage.getStore(),b=j.workUnitAsyncStorage.getStore();if(!a||a.page.endsWith("/route")||(null==b?void 0:b.phase)!=="action")throw Object.defineProperty(Error("refresh can only be called from within a Server Action. See more info here: https://nextjs.org/docs/app/api-reference/functions/refresh"),"__NEXT_ERROR_CODE",{value:"E870",enumerable:!1,configurable:!0});a&&(a.pathWasRevalidated=m.ActionDidRevalidateDynamicOnly)}function q(a,b){if(a.length>h.NEXT_CACHE_SOFT_TAG_MAX_LENGTH)return void console.warn(`Warning: revalidatePath received "${a}" which exceeded max length of ${h.NEXT_CACHE_SOFT_TAG_MAX_LENGTH}. See more info here https://nextjs.org/docs/app/api-reference/functions/revalidatePath`);let c=`${h.NEXT_CACHE_IMPLICIT_TAG_ID}${a||"/"}`;b?c+=`${c.endsWith("/")?"":"/"}${b}`:(0,g.isDynamicRoute)(a)&&console.warn(`Warning: a dynamic page path "${a}" was passed to "revalidatePath", but the "type" parameter is missing. This has no effect by default, see more info here https://nextjs.org/docs/app/api-reference/functions/revalidatePath`);let d=[c];return c===`${h.NEXT_CACHE_IMPLICIT_TAG_ID}/`?d.push(`${h.NEXT_CACHE_IMPLICIT_TAG_ID}/index`):c===`${h.NEXT_CACHE_IMPLICIT_TAG_ID}/index`&&d.push(`${h.NEXT_CACHE_IMPLICIT_TAG_ID}/`),r(d,`revalidatePath ${a}`)}function r(a,b,c){var d;let e=i.workAsyncStorage.getStore();if(!e||!e.incrementalCache)throw Object.defineProperty(Error(`Invariant: static generation store missing in ${b}`),"__NEXT_ERROR_CODE",{value:"E263",enumerable:!1,configurable:!0});let g=j.workUnitAsyncStorage.getStore();if(g){if("render"===g.phase)throw Object.defineProperty(Error(`Route ${e.route} used "${b}" during render which is unsupported. To ensure revalidation is performed consistently it must always happen outside of renders and cached functions. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E7",enumerable:!1,configurable:!0});switch(g.type){case"cache":case"private-cache":throw Object.defineProperty(Error(`Route ${e.route} used "${b}" inside a "use cache" which is unsupported. To ensure revalidation is performed consistently it must always happen outside of renders and cached functions. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E181",enumerable:!1,configurable:!0});case"unstable-cache":throw Object.defineProperty(Error(`Route ${e.route} used "${b}" inside a function cached with "unstable_cache(...)" which is unsupported. To ensure revalidation is performed consistently it must always happen outside of renders and cached functions. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E306",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":let a=Object.defineProperty(Error(`Route ${e.route} used ${b} without first calling \`await connection()\`.`),"__NEXT_ERROR_CODE",{value:"E406",enumerable:!1,configurable:!0});return(0,f.abortAndThrowOnSynchronousRequestDataAccess)(e.route,b,a,g);case"prerender-client":throw Object.defineProperty(new l.InvariantError(`${b} must not be used within a client component. Next.js should be preventing ${b} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E693",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,f.postponeWithTracking)(e.route,b,g.dynamicTracking);case"prerender-legacy":g.revalidate=0;let c=Object.defineProperty(new k.DynamicServerError(`Route ${e.route} couldn't be rendered statically because it used \`${b}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw e.dynamicUsageDescription=b,e.dynamicUsageStack=c.stack,c}}for(let b of(e.pendingRevalidatedTags||(e.pendingRevalidatedTags=[]),a))-1===e.pendingRevalidatedTags.findIndex(a=>a.tag===b&&("string"==typeof a.profile&&"string"==typeof c?a.profile===c:"object"==typeof a.profile&&"object"==typeof c?JSON.stringify(a.profile)===JSON.stringify(c):a.profile===c))&&e.pendingRevalidatedTags.push({tag:b,profile:c});let h=c&&"object"==typeof c?c:c&&"string"==typeof c&&(null==e||null==(d=e.cacheLifeProfiles)?void 0:d[c])?e.cacheLifeProfiles[c]:void 0;c&&(null==h?void 0:h.expire)!==0||(e.pathWasRevalidated=m.ActionDidRevalidateStaticAndDynamic)}},1247,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unstable_noStore",{enumerable:!0,get:function(){return g}});let d=a.r(56704),e=a.r(32319),f=a.r(60384);function g(){let a=d.workAsyncStorage.getStore(),b=e.workUnitAsyncStorage.getStore();if(a){if(!a.forceStatic){if(a.isUnstableNoStore=!0,b)switch(b.type){case"prerender":case"prerender-client":case"prerender-runtime":return}(0,f.markCurrentScopeAsDynamic)(a,b,"unstable_noStore()")}}}},32621,(a,b,c)=>{"use strict";function d(a){throw Object.defineProperty(Error("`cacheLife()` is only available with the `cacheComponents` config."),"__NEXT_ERROR_CODE",{value:"E887",enumerable:!1,configurable:!0})}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"cacheLife",{enumerable:!0,get:function(){return d}}),a.r(50640),a.r(56704),a.r(32319)},72835,(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`cacheTag()` is only available with the `cacheComponents` config."),"__NEXT_ERROR_CODE",{value:"E886",enumerable:!1,configurable:!0})}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"cacheTag",{enumerable:!0,get:function(){return d}}),a.r(32319),a.r(26095)},18558,(a,b,c)=>{let d={unstable_cache:a.r(71632).unstable_cache,updateTag:a.r(65819).updateTag,revalidateTag:a.r(65819).revalidateTag,revalidatePath:a.r(65819).revalidatePath,refresh:a.r(65819).refresh,unstable_noStore:a.r(1247).unstable_noStore,cacheLife:a.r(32621).cacheLife,cacheTag:a.r(72835).cacheTag},e=!1,f=!1;d.unstable_cacheLife=function(){return e||(e=!0,console.error(Error("`unstable_cacheLife` was recently stabilized and should be imported as `cacheLife`. The `unstable` prefixed form will be removed in a future version of Next.js."))),d.cacheLife.apply(this,arguments)},d.unstable_cacheTag=function(){return f||(f=!0,console.error(Error("`unstable_cacheTag` was recently stabilized and should be imported as `cacheTag`. The `unstable` prefixed form will be removed in a future version of Next.js."))),d.cacheTag.apply(this,arguments)},b.exports=d,c.unstable_cache=d.unstable_cache,c.revalidatePath=d.revalidatePath,c.revalidateTag=d.revalidateTag,c.updateTag=d.updateTag,c.unstable_noStore=d.unstable_noStore,c.cacheLife=d.cacheLife,c.unstable_cacheLife=d.unstable_cacheLife,c.cacheTag=d.cacheTag,c.unstable_cacheTag=d.unstable_cacheTag,c.refresh=d.refresh}];
19
+ `)}}},63681,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={RequestCookies:function(){return f.RequestCookies},ResponseCookies:function(){return f.ResponseCookies},stringifyCookie:function(){return f.stringifyCookie}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(36226)},88491,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={INTERNALS:function(){return j},NextRequest:function(){return k}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(22670),g=a.r(92273),h=a.r(89753),i=a.r(63681),j=Symbol("internal request");class k extends Request{constructor(a,b={}){const c="string"!=typeof a&&"url"in a?a.url:String(a);(0,g.validateURL)(c),b.body&&"half"!==b.duplex&&(b.duplex="half"),a instanceof Request?super(a,b):super(c,b);const d=new f.NextURL(c,{headers:(0,g.toNodeOutgoingHttpHeaders)(this.headers),nextConfig:b.nextConfig});this[j]={cookies:new i.RequestCookies(this.headers),nextUrl:d,url:d.toString()}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,nextUrl:this.nextUrl,url:this.url,bodyUsed:this.bodyUsed,cache:this.cache,credentials:this.credentials,destination:this.destination,headers:Object.fromEntries(this.headers),integrity:this.integrity,keepalive:this.keepalive,method:this.method,mode:this.mode,redirect:this.redirect,referrer:this.referrer,referrerPolicy:this.referrerPolicy,signal:this.signal}}get cookies(){return this[j].cookies}get nextUrl(){return this[j].nextUrl}get page(){throw new h.RemovedPageError}get ua(){throw new h.RemovedUAError}get url(){return this[j].url}}},50965,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={isNodeNextRequest:function(){return h},isNodeNextResponse:function(){return i},isWebNextRequest:function(){return f},isWebNextResponse:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a=>!1,g=a=>!1,h=a=>!0,i=a=>!0},17498,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={NextRequestAdapter:function(){return n},ResponseAborted:function(){return k},ResponseAbortedName:function(){return j},createAbortController:function(){return l},signalFromNodeResponse:function(){return m}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(49697),g=a.r(92273),h=a.r(88491),i=a.r(50965),j="ResponseAborted";class k extends Error{constructor(...a){super(...a),this.name=j}}function l(a){let b=new AbortController;return a.once("close",()=>{a.writableFinished||b.abort(new k)}),b}function m(a){let{errored:b,destroyed:c}=a;if(b||c)return AbortSignal.abort(b??new k);let{signal:d}=l(a);return d}class n{static fromBaseNextRequest(a,b){if((0,i.isNodeNextRequest)(a))return n.fromNodeNextRequest(a,b);throw Object.defineProperty(Error("Invariant: Unsupported NextRequest type"),"__NEXT_ERROR_CODE",{value:"E345",enumerable:!1,configurable:!0})}static fromNodeNextRequest(a,b){let c,d=null;if("GET"!==a.method&&"HEAD"!==a.method&&a.body&&(d=a.body),a.url.startsWith("http"))c=new URL(a.url);else{let b=(0,f.getRequestMeta)(a,"initURL");c=b&&b.startsWith("http")?new URL(a.url,b):new URL(a.url,"http://n")}return new h.NextRequest(c,{method:a.method,headers:(0,g.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:b,...b.aborted?{}:{body:d}})}static fromWebNextRequest(a){let b=null;return"GET"!==a.method&&"HEAD"!==a.method&&(b=a.body),new h.NextRequest(a.url,{method:a.method,headers:(0,g.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:a.request.signal,...a.request.signal.aborted?{}:{body:b}})}}},86131,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={getClientComponentLoaderMetrics:function(){return j},wrapClientComponentLoader:function(){return i}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=0,g=0,h=0;function i(a){return"performance"in globalThis?{require:(...b)=>{let c=performance.now();0===f&&(f=c);try{return h+=1,a.__next_app__.require(...b)}finally{g+=performance.now()-c}},loadChunk:(...b)=>{let c=performance.now(),d=a.__next_app__.loadChunk(...b);return d.finally(()=>{g+=performance.now()-c}),d}}:a.__next_app__}function j(a={}){let b=0===f?void 0:{clientComponentLoadStart:f,clientComponentLoadTimes:g,clientComponentLoadCount:h};return a.reset&&(f=0,g=0,h=0),b}},76178,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={isAbortError:function(){return k},pipeToNodeResponse:function(){return l}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(17498),g=a.r(96194),h=a.r(35842),i=a.r(76391),j=a.r(86131);function k(a){return(null==a?void 0:a.name)==="AbortError"||(null==a?void 0:a.name)===f.ResponseAbortedName}async function l(a,b,c){try{let{errored:d,destroyed:e}=b;if(d||e)return;let k=(0,f.createAbortController)(b),l=function(a,b){let c=!1,d=new g.DetachedPromise;function e(){d.resolve()}a.on("drain",e),a.once("close",()=>{a.off("drain",e),d.resolve()});let f=new g.DetachedPromise;return a.once("finish",()=>{f.resolve()}),new WritableStream({write:async b=>{if(!c){if(c=!0,"performance"in globalThis&&process.env.NEXT_OTEL_PERFORMANCE_PREFIX){let a=(0,j.getClientComponentLoaderMetrics)();a&&performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`,{start:a.clientComponentLoadStart,end:a.clientComponentLoadStart+a.clientComponentLoadTimes})}a.flushHeaders(),(0,h.getTracer)().trace(i.NextNodeServerSpan.startResponse,{spanName:"start response"},()=>void 0)}try{let c=a.write(b);"flush"in a&&"function"==typeof a.flush&&a.flush(),c||(await d.promise,d=new g.DetachedPromise)}catch(b){throw a.end(),Object.defineProperty(Error("failed to write chunk to response",{cause:b}),"__NEXT_ERROR_CODE",{value:"E321",enumerable:!1,configurable:!0})}},abort:b=>{a.writableFinished||a.destroy(b)},close:async()=>{if(b&&await b,!a.writableFinished)return a.end(),f.promise}})}(b,c);await a.pipeTo(l,{signal:k.signal})}catch(a){if(k(a))return;throw Object.defineProperty(Error("failed to pipe response",{cause:a}),"__NEXT_ERROR_CODE",{value:"E180",enumerable:!1,configurable:!0})}}},25393,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return g}});let d=a.r(75406),e=a.r(76178),f=a.r(50640);class g{static #a=this.EMPTY=new g(null,{metadata:{},contentType:null});static fromStatic(a,b){return new g(a,{metadata:{},contentType:b})}constructor(a,{contentType:b,waitUntil:c,metadata:d}){this.response=a,this.contentType=b,this.metadata=d,this.waitUntil=c}assignMetadata(a){Object.assign(this.metadata,a)}get isNull(){return null===this.response}get isDynamic(){return"string"!=typeof this.response}toUnchunkedString(a=!1){if(null===this.response)return"";if("string"!=typeof this.response){if(!a)throw Object.defineProperty(new f.InvariantError("dynamic responses cannot be unchunked. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E732",enumerable:!1,configurable:!0});return(0,d.streamToString)(this.readable)}return this.response}get readable(){return null===this.response?new ReadableStream({start(a){a.close()}}):"string"==typeof this.response?(0,d.streamFromString)(this.response):Buffer.isBuffer(this.response)?(0,d.streamFromBuffer)(this.response):Array.isArray(this.response)?(0,d.chainStreams)(...this.response):this.response}coerce(){return null===this.response?[]:"string"==typeof this.response?[(0,d.streamFromString)(this.response)]:Array.isArray(this.response)?this.response:Buffer.isBuffer(this.response)?[(0,d.streamFromBuffer)(this.response)]:[this.response]}unshift(a){this.response=this.coerce(),this.response.unshift(a)}push(a){this.response=this.coerce(),this.response.push(a)}async pipeTo(a){try{await this.readable.pipeTo(a,{preventClose:!0}),this.waitUntil&&await this.waitUntil,await a.close()}catch(b){if((0,e.isAbortError)(b))return void await a.abort(b);throw b}}async pipeToNodeResponse(a){await (0,e.pipeToNodeResponse)(this.readable,a,this.waitUntil)}}},29756,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"RouteKind",{enumerable:!0,get:function(){return e}});var d,e=((d={}).PAGES="PAGES",d.PAGES_API="PAGES_API",d.APP_PAGE="APP_PAGE",d.APP_ROUTE="APP_ROUTE",d.IMAGE="IMAGE",d)},41333,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d,e={fromResponseCacheEntry:function(){return k},routeKindToIncrementalCacheKind:function(){return m},toResponseCacheEntry:function(){return l}};for(var f in e)Object.defineProperty(c,f,{enumerable:!0,get:e[f]});let g=a.r(41733),h=(d=a.r(25393))&&d.__esModule?d:{default:d},i=a.r(29756),j=a.r(99870);async function k(a){var b,c;return{...a,value:(null==(b=a.value)?void 0:b.kind)===g.CachedRouteKind.PAGES?{kind:g.CachedRouteKind.PAGES,html:await a.value.html.toUnchunkedString(!0),pageData:a.value.pageData,headers:a.value.headers,status:a.value.status}:(null==(c=a.value)?void 0:c.kind)===g.CachedRouteKind.APP_PAGE?{kind:g.CachedRouteKind.APP_PAGE,html:await a.value.html.toUnchunkedString(!0),postponed:a.value.postponed,rscData:a.value.rscData,headers:a.value.headers,status:a.value.status,segmentData:a.value.segmentData}:a.value}}async function l(a){var b,c;return a?{isMiss:a.isMiss,isStale:a.isStale,cacheControl:a.cacheControl,value:(null==(b=a.value)?void 0:b.kind)===g.CachedRouteKind.PAGES?{kind:g.CachedRouteKind.PAGES,html:h.default.fromStatic(a.value.html,j.HTML_CONTENT_TYPE_HEADER),pageData:a.value.pageData,headers:a.value.headers,status:a.value.status}:(null==(c=a.value)?void 0:c.kind)===g.CachedRouteKind.APP_PAGE?{kind:g.CachedRouteKind.APP_PAGE,html:h.default.fromStatic(a.value.html,j.HTML_CONTENT_TYPE_HEADER),rscData:a.value.rscData,headers:a.value.headers,status:a.value.status,postponed:a.value.postponed,segmentData:a.value.segmentData}:a.value}:null}function m(a){switch(a){case i.RouteKind.PAGES:return g.IncrementalCacheKind.PAGES;case i.RouteKind.APP_PAGE:return g.IncrementalCacheKind.APP_PAGE;case i.RouteKind.IMAGE:return g.IncrementalCacheKind.IMAGE;case i.RouteKind.APP_ROUTE:return g.IncrementalCacheKind.APP_ROUTE;case i.RouteKind.PAGES_API:throw Object.defineProperty(Error(`Unexpected route kind ${a}`),"__NEXT_ERROR_CODE",{value:"E64",enumerable:!1,configurable:!0});default:return a}}},24653,(a,b,c)=>{"use strict";var d,e;Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return p}});let f=a.r(88690),g=a.r(10184),h=a.r(51402),i=a.r(61933),j=a.r(41333);function k(a,b){if(!a)return b;let c=parseInt(a,10);return Number.isFinite(c)&&c>0?c:b}d=a.r(41733),e=c,Object.keys(d).forEach(function(a){"default"===a||Object.prototype.hasOwnProperty.call(e,a)||Object.defineProperty(e,a,{enumerable:!0,get:function(){return d[a]}})});let l=k(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL,1e4),m=k(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE,150),n="__ttl_sentinel__";function o(a,b){return`${a}\0${b??n}`}class p{constructor(a,b=m,c=l){this.getBatcher=f.Batcher.create({cacheKeyFn:({key:a,isOnDemandRevalidate:b})=>`${a}-${b?"1":"0"}`,schedulerFn:i.scheduleOnNextTick}),this.revalidateBatcher=f.Batcher.create({schedulerFn:i.scheduleOnNextTick}),this.evictedInvocationIDs=new Set,this.minimal_mode=a,this.maxSize=b,this.ttl=c,this.cache=new g.LRUCache(b,void 0,a=>{let b=function(a){let b=a.lastIndexOf("\0");if(-1===b)return;let c=a.slice(b+1);return c===n?void 0:c}(a);if(b){if(this.evictedInvocationIDs.size>=100){let a=this.evictedInvocationIDs.values().next().value;a&&this.evictedInvocationIDs.delete(a)}this.evictedInvocationIDs.add(b)}})}async get(a,b,c){if(!a)return b({hasResolved:!1,previousCacheEntry:null});if(this.minimal_mode){let b=o(a,c.invocationID),d=this.cache.get(b);if(d){if(void 0!==c.invocationID)return(0,j.toResponseCacheEntry)(d.entry);let a=Date.now();if(d.expiresAt>a)return(0,j.toResponseCacheEntry)(d.entry);this.cache.remove(b)}c.invocationID&&this.evictedInvocationIDs.has(c.invocationID)&&(0,h.warnOnce)(`Response cache entry was evicted for invocation ${c.invocationID}. Consider increasing NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE (current: ${this.maxSize}).`)}let{incrementalCache:d,isOnDemandRevalidate:e=!1,isFallback:f=!1,isRoutePPREnabled:g=!1,isPrefetch:i=!1,waitUntil:k,routeKind:l,invocationID:m}=c,n=await this.getBatcher.batch({key:a,isOnDemandRevalidate:e},({resolve:c})=>{let h=this.handleGet(a,b,{incrementalCache:d,isOnDemandRevalidate:e,isFallback:f,isRoutePPREnabled:g,isPrefetch:i,routeKind:l,invocationID:m},c);return k&&k(h),h});return(0,j.toResponseCacheEntry)(n)}async handleGet(a,b,c,d){let e=null,f=!1;try{if((e=this.minimal_mode?null:await c.incrementalCache.get(a,{kind:(0,j.routeKindToIncrementalCacheKind)(c.routeKind),isRoutePPREnabled:c.isRoutePPREnabled,isFallback:c.isFallback}))&&!c.isOnDemandRevalidate&&(d(e),f=!0,!e.isStale||c.isPrefetch))return e;let g=await this.revalidate(a,c.incrementalCache,c.isRoutePPREnabled,c.isFallback,b,e,null!==e&&!c.isOnDemandRevalidate,void 0,c.invocationID);if(!g){if(this.minimal_mode){let b=o(a,c.invocationID);this.cache.remove(b)}return null}return c.isOnDemandRevalidate,g}catch(a){if(f)return console.error(a),null;throw a}}async revalidate(a,b,c,d,e,f,g,h,i){return this.revalidateBatcher.batch(a,()=>{let j=this.handleRevalidate(a,b,c,d,e,f,g,i);return h&&h(j),j})}async handleRevalidate(a,b,c,d,e,f,g,h){try{let i=await e({hasResolved:g,previousCacheEntry:f,isRevalidating:!0});if(!i)return null;let k=await (0,j.fromResponseCacheEntry)({...i,isMiss:!f});if(k.cacheControl)if(this.minimal_mode){let b=o(a,h);this.cache.set(b,{entry:k,expiresAt:Date.now()+this.ttl})}else await b.set(a,k.value,{cacheControl:k.cacheControl,isRoutePPREnabled:c,isFallback:d});return k}catch(e){if(null==f?void 0:f.cacheControl){let e=Math.min(Math.max(f.cacheControl.revalidate||3,3),30),g=void 0===f.cacheControl.expire?void 0:Math.max(e+3,f.cacheControl.expire);await b.set(a,f.value,{cacheControl:{revalidate:e,expire:g},isRoutePPREnabled:c,isFallback:d})}throw e}}}},28340,(a,b,c)=>{"use strict";function d(){let a,b,c=new Promise((c,d)=>{a=c,b=d});return{resolve:a,reject:b,promise:c}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"createPromiseWithResolvers",{enumerable:!0,get:function(){return d}})},31382,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d,e={RenderStage:function(){return i},StagedRenderingController:function(){return j}};for(var f in e)Object.defineProperty(c,f,{enumerable:!0,get:e[f]});let g=a.r(50640),h=a.r(28340);var i=((d={})[d.Before=1]="Before",d[d.Static=2]="Static",d[d.Runtime=3]="Runtime",d[d.Dynamic=4]="Dynamic",d[d.Abandoned=5]="Abandoned",d);class j{constructor(a=null,b){this.abortSignal=a,this.hasRuntimePrefetch=b,this.currentStage=1,this.staticInterruptReason=null,this.runtimeInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.runtimeStagePromise=(0,h.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,h.createPromiseWithResolvers)(),this.mayAbandon=!1,a&&(a.addEventListener("abort",()=>{let{reason:b}=a;this.currentStage<3&&(this.runtimeStagePromise.promise.catch(k),this.runtimeStagePromise.reject(b)),(this.currentStage<4||5===this.currentStage)&&(this.dynamicStagePromise.promise.catch(k),this.dynamicStagePromise.reject(b))},{once:!0}),this.mayAbandon=!0)}onStage(a,b){if(this.currentStage>=a)b();else if(3===a)this.runtimeStageListeners.push(b);else if(4===a)this.dynamicStageListeners.push(b);else throw Object.defineProperty(new g.InvariantError(`Invalid render stage: ${a}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}canSyncInterrupt(){if(1===this.currentStage)return!1;let a=this.hasRuntimePrefetch?4:3;return this.currentStage<a}syncInterruptCurrentStageWithReason(a){if(1!==this.currentStage){if(this.mayAbandon)return this.abandonRenderImpl();switch(this.currentStage){case 2:this.staticInterruptReason=a,this.advanceStage(4);return;case 3:this.hasRuntimePrefetch&&(this.runtimeInterruptReason=a,this.advanceStage(4));return}}}getStaticInterruptReason(){return this.staticInterruptReason}getRuntimeInterruptReason(){return this.runtimeInterruptReason}getStaticStageEndTime(){return this.staticStageEndTime}getRuntimeStageEndTime(){return this.runtimeStageEndTime}abandonRender(){if(!this.mayAbandon)throw Object.defineProperty(new g.InvariantError("`abandonRender` called on a stage controller that cannot be abandoned."),"__NEXT_ERROR_CODE",{value:"E938",enumerable:!1,configurable:!0});this.abandonRenderImpl()}abandonRenderImpl(){let{currentStage:a}=this;switch(a){case 2:this.currentStage=5,this.resolveRuntimeStage();return;case 3:this.currentStage=5;return}}advanceStage(a){if(a<=this.currentStage)return;let b=this.currentStage;if(this.currentStage=a,b<3&&a>=3&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),b<4&&a>=4){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveRuntimeStage(){let a=this.runtimeStageListeners;for(let b=0;b<a.length;b++)a[b]();a.length=0,this.runtimeStagePromise.resolve()}resolveDynamicStage(){let a=this.dynamicStageListeners;for(let b=0;b<a.length;b++)a[b]();a.length=0,this.dynamicStagePromise.resolve()}getStagePromise(a){switch(a){case 3:return this.runtimeStagePromise.promise;case 4:return this.dynamicStagePromise.promise;default:throw Object.defineProperty(new g.InvariantError(`Invalid render stage: ${a}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}}waitForStage(a){return this.getStagePromise(a)}delayUntilStage(a,b,c){var d,e,f;let g,h=(d=this.getStagePromise(a),e=b,f=c,g=new Promise((a,b)=>{d.then(a.bind(null,f),b)}),void 0!==e&&(g.displayName=e),g);return this.abortSignal&&h.catch(k),h}}function k(){}},26095,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={NEXT_PATCH_SYMBOL:function(){return o},createPatchedFetcher:function(){return u},patchFetch:function(){return v},validateRevalidate:function(){return p},validateTags:function(){return q}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(76391),g=a.r(35842),h=a.r(99870),i=a.r(60384),j=a.r(13091),k=a.r(1786),l=a.r(32319),m=a.r(24653),n=a.r(5723);a.r(31382);let o=Symbol.for("next-patch");function p(a,b){try{let c;if(!1===a)c=h.INFINITE_CACHE;else if("number"==typeof a&&!isNaN(a)&&a>-1)c=a;else if(void 0!==a)throw Object.defineProperty(Error(`Invalid revalidate value "${a}" on "${b}", must be a non-negative number or false`),"__NEXT_ERROR_CODE",{value:"E179",enumerable:!1,configurable:!0});return c}catch(a){if(a instanceof Error&&a.message.includes("Invalid revalidate"))throw a;return}}function q(a,b){let c=[],d=[];for(let e=0;e<a.length;e++){let f=a[e];if("string"!=typeof f?d.push({tag:f,reason:"invalid type, must be a string"}):f.length>h.NEXT_CACHE_TAG_MAX_LENGTH?d.push({tag:f,reason:`exceeded max length of ${h.NEXT_CACHE_TAG_MAX_LENGTH}`}):c.push(f),c.length>h.NEXT_CACHE_TAG_MAX_ITEMS){console.warn(`Warning: exceeded max tag count for ${b}, dropped tags:`,a.slice(e).join(", "));break}}if(d.length>0)for(let{tag:a,reason:c}of(console.warn(`Warning: invalid tags passed to ${b}: `),d))console.log(`tag: "${a}" ${c}`);return c}function r(a,b){a.shouldTrackFetchMetrics&&(a.fetchMetrics??=[],a.fetchMetrics.push({...b,end:performance.timeOrigin+performance.now(),idx:a.nextFetchId||0}))}async function s(a,b,c,d,e,f){let g=await a.arrayBuffer(),h={headers:Object.fromEntries(a.headers.entries()),body:Buffer.from(g).toString("base64"),status:a.status,url:a.url};return c&&await d.set(b,{kind:m.CachedRouteKind.FETCH,data:h,revalidate:e},c),await f(),new Response(g,{headers:a.headers,status:a.status,statusText:a.statusText})}async function t(a,b,c,d,e,f,g,h,i){let[j,k]=(0,n.cloneResponse)(b),l=j.arrayBuffer().then(async a=>{let b=Buffer.from(a),h={headers:Object.fromEntries(j.headers.entries()),body:b.toString("base64"),status:j.status,url:j.url};null==f||f.set(c,h),d&&await e.set(c,{kind:m.CachedRouteKind.FETCH,data:h,revalidate:g},d)}).catch(a=>console.warn("Failed to set fetch cache",h,a)).finally(i),o=`cache-set-${c}`,p=a.pendingRevalidates??={},q=Promise.resolve();return o in p&&(q=p[o]),p[o]=q.then(()=>l).finally(()=>{(null==p?void 0:p[o])&&delete p[o]}),k}function u(a,{workAsyncStorage:b,workUnitAsyncStorage:c}){let d=async function(d,e){var k,o;let u;try{(u=new URL(d instanceof Request?d.url:d)).username="",u.password=""}catch{u=void 0}let v=(null==u?void 0:u.href)??"",x=(null==e||null==(k=e.method)?void 0:k.toUpperCase())||"GET",y=(null==e||null==(o=e.next)?void 0:o.internal)===!0,z="1"===process.env.NEXT_OTEL_FETCH_DISABLED,A=y?void 0:performance.timeOrigin+performance.now(),B=b.getStore(),C=c.getStore(),D=C?(0,l.getCacheSignal)(C):null;D&&D.beginRead();let E=(0,g.getTracer)().trace(y?f.NextNodeServerSpan.internalFetch:f.AppRenderSpan.fetch,{hideSpan:z,kind:g.SpanKind.CLIENT,spanName:["fetch",x,v].filter(Boolean).join(" "),attributes:{"http.url":v,"http.method":x,"net.peer.name":null==u?void 0:u.hostname,"net.peer.port":(null==u?void 0:u.port)||void 0}},async()=>{var b;let c,f,g,k,l,o;if(y||!B||B.isDraftMode)return a(d,e);let u=d&&"object"==typeof d&&"string"==typeof d.method,x=a=>(null==e?void 0:e[a])||(u?d[a]:null),z=a=>{var b,c,f;return void 0!==(null==e||null==(b=e.next)?void 0:b[a])?null==e||null==(c=e.next)?void 0:c[a]:u?null==(f=d.next)?void 0:f[a]:void 0},E=z("revalidate"),F=E,G=q(z("tags")||[],`fetch ${d.toString()}`);if(C)switch(C.type){case"prerender":case"prerender-runtime":case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":c=C}if(c&&Array.isArray(G)){let a=c.tags??(c.tags=[]);for(let b of G)a.includes(b)||a.push(b)}let H=null==C?void 0:C.implicitTags,I=B.fetchCache;C&&"unstable-cache"===C.type&&(I="force-no-store");let J=!!B.isUnstableNoStore,K=x("cache"),L="";"string"==typeof K&&void 0!==F&&("force-cache"===K&&0===F||"no-store"===K&&(F>0||!1===F))&&(f=`Specified "cache: ${K}" and "revalidate: ${F}", only one should be specified.`,K=void 0,F=void 0);let M="no-cache"===K||"no-store"===K||"force-no-store"===I||"only-no-store"===I,N=!I&&!K&&!F&&B.forceDynamic;"force-cache"===K&&void 0===F?F=!1:(M||N)&&(F=0),("no-cache"===K||"no-store"===K)&&(L=`cache: ${K}`),o=p(F,B.route);let O=x("headers"),P="function"==typeof(null==O?void 0:O.get)?O:new Headers(O||{}),Q=P.get("authorization")||P.get("cookie"),R=!["get","head"].includes((null==(b=x("method"))?void 0:b.toLowerCase())||"get"),S=void 0==I&&(void 0==K||"default"===K)&&void 0==F,T=!!((Q||R)&&(null==c?void 0:c.revalidate)===0),U=!1;if(!T&&S&&(B.isBuildTimePrerendering?U=!0:T=!0),S&&void 0!==C)switch(C.type){case"prerender":case"prerender-runtime":case"prerender-client":return D&&(D.endRead(),D=null),(0,j.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}switch(I){case"force-no-store":L="fetchCache = force-no-store";break;case"only-no-store":if("force-cache"===K||void 0!==o&&o>0)throw Object.defineProperty(Error(`cache: 'force-cache' used on fetch for ${v} with 'export const fetchCache = 'only-no-store'`),"__NEXT_ERROR_CODE",{value:"E448",enumerable:!1,configurable:!0});L="fetchCache = only-no-store";break;case"only-cache":if("no-store"===K)throw Object.defineProperty(Error(`cache: 'no-store' used on fetch for ${v} with 'export const fetchCache = 'only-cache'`),"__NEXT_ERROR_CODE",{value:"E521",enumerable:!1,configurable:!0});break;case"force-cache":(void 0===F||0===F)&&(L="fetchCache = force-cache",o=h.INFINITE_CACHE)}if(void 0===o?"default-cache"!==I||J?"default-no-store"===I?(o=0,L="fetchCache = default-no-store"):J?(o=0,L="noStore call"):T?(o=0,L="auto no cache"):(L="auto cache",o=c?c.revalidate:h.INFINITE_CACHE):(o=h.INFINITE_CACHE,L="fetchCache = default-cache"):L||(L=`revalidate: ${o}`),!(B.forceStatic&&0===o)&&!T&&c&&o<c.revalidate){if(0===o){if(C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":return D&&(D.endRead(),D=null),(0,j.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}(0,i.markCurrentScopeAsDynamic)(B,C,`revalidate: 0 fetch ${d} ${B.route}`)}c&&E===o&&(c.revalidate=o)}let V="number"==typeof o&&o>0,{incrementalCache:W}=B,X=!1;if(C)switch(C.type){case"request":case"cache":case"private-cache":X=C.isHmrRefresh??!1,k=C.serverComponentsHmrCache}if(W&&(V||k))try{g=await W.generateCacheKey(v,u?d:e)}catch(a){console.error("Failed to generate cache key for",d)}let Y=B.nextFetchId??1;B.nextFetchId=Y+1;let Z=()=>{},$=async(b,c)=>{let i=["cache","credentials","headers","integrity","keepalive","method","mode","redirect","referrer","referrerPolicy","window","duplex",...b?[]:["signal"]];if(u){let a=d,b={body:a._ogBody||a.body};for(let c of i)b[c]=a[c];d=new Request(a.url,b)}else if(e){let{_ogBody:a,body:c,signal:d,...f}=e;e={...f,body:a||c,signal:b?void 0:d}}let j={...e,next:{...null==e?void 0:e.next,fetchType:"origin",fetchIdx:Y}};return a(d,j).then(async a=>{if(!b&&A&&r(B,{start:A,url:v,cacheReason:c||L,cacheStatus:0===o||c?"skip":"miss",cacheWarning:f,status:a.status,method:j.method||"GET"}),200===a.status&&W&&g&&(V||k)){let b=o>=h.INFINITE_CACHE?h.CACHE_ONE_YEAR:o,c=V?{fetchCache:!0,fetchUrl:v,fetchIdx:Y,tags:G,isImplicitBuildTimeCache:U}:void 0;switch(null==C?void 0:C.type){case"prerender":case"prerender-client":case"prerender-runtime":return s(a,g,c,W,b,Z);case"request":case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":case void 0:return t(B,a,g,c,W,k,b,d,Z)}}return await Z(),a}).catch(a=>{throw Z(),a})},_=!1,aa=!1;if(g&&W){let a;if(X&&k&&(a=k.get(g),aa=!0),V&&!a){Z=await W.lock(g);let b=B.isOnDemandRevalidate?null:await W.get(g,{kind:m.IncrementalCacheKind.FETCH,revalidate:o,fetchUrl:v,fetchIdx:Y,tags:G,softTags:null==H?void 0:H.tags});if(S&&C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":await (w||(w=new Promise(a=>{setTimeout(()=>{w=null,a()},0)})),w)}if(b?await Z():l="cache-control: no-cache (hard refresh)",(null==b?void 0:b.value)&&b.value.kind===m.CachedRouteKind.FETCH)if(B.isStaticGeneration&&b.isStale)_=!0;else{if(b.isStale&&(B.pendingRevalidates??={},!B.pendingRevalidates[g])){let a=$(!0).then(async a=>({body:await a.arrayBuffer(),headers:a.headers,status:a.status,statusText:a.statusText})).finally(()=>{B.pendingRevalidates??={},delete B.pendingRevalidates[g||""]});a.catch(console.error),B.pendingRevalidates[g]=a}a=b.value.data}}if(a){A&&r(B,{start:A,url:v,cacheReason:L,cacheStatus:aa?"hmr":"hit",cacheWarning:f,status:a.status||200,method:(null==e?void 0:e.method)||"GET"});let b=new Response(Buffer.from(a.body,"base64"),{headers:a.headers,status:a.status});return Object.defineProperty(b,"url",{value:a.url}),b}}if(B.isStaticGeneration&&e&&"object"==typeof e){let{cache:a}=e;if("no-store"===a){if(C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":return D&&(D.endRead(),D=null),(0,j.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}(0,i.markCurrentScopeAsDynamic)(B,C,`no-store fetch ${d} ${B.route}`)}let b="next"in e,{next:f={}}=e;if("number"==typeof f.revalidate&&c&&f.revalidate<c.revalidate){if(0===f.revalidate){if(C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":return(0,j.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}(0,i.markCurrentScopeAsDynamic)(B,C,`revalidate: 0 fetch ${d} ${B.route}`)}B.forceStatic&&0===f.revalidate||(c.revalidate=f.revalidate)}b&&delete e.next}if(!g||!_)return $(!1,l);{let a=g;B.pendingRevalidates??={};let b=B.pendingRevalidates[a];if(b){let a=await b;return new Response(a.body,{headers:a.headers,status:a.status,statusText:a.statusText})}let c=$(!0,l).then(n.cloneResponse);return(b=c.then(async a=>{let b=a[0];return{body:await b.arrayBuffer(),headers:b.headers,status:b.status,statusText:b.statusText}}).finally(()=>{var b;(null==(b=B.pendingRevalidates)?void 0:b[a])&&delete B.pendingRevalidates[a]})).catch(()=>{}),B.pendingRevalidates[a]=b,c.then(a=>a[1])}});if(D)try{return await E}finally{D&&D.endRead()}return E};return d.__nextPatched=!0,d.__nextGetStaticStore=()=>b,d._nextOriginalFetch=a,globalThis[o]=!0,Object.defineProperty(d,"name",{value:"fetch",writable:!1}),d}function v(a){if(!0===globalThis[o])return;let b=(0,k.createDedupeFetch)(globalThis.fetch);globalThis.fetch=u(b,a)}let w=null},71632,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unstable_cache",{enumerable:!0,get:function(){return k}});let d=a.r(99870),e=a.r(26095),f=a.r(56704),g=a.r(32319),h=a.r(24653),i=0;async function j(a,b,c,e,f,g,i){await b.set(c,{kind:h.CachedRouteKind.FETCH,data:{headers:{},body:JSON.stringify(a),status:200,url:""},revalidate:"number"!=typeof f?d.CACHE_ONE_YEAR:f},{fetchCache:!0,tags:e,fetchIdx:g,fetchUrl:i})}function k(a,b,c={}){if(0===c.revalidate)throw Object.defineProperty(Error(`Invariant revalidate: 0 can not be passed to unstable_cache(), must be "false" or "> 0" ${a.toString()}`),"__NEXT_ERROR_CODE",{value:"E57",enumerable:!1,configurable:!0});let d=c.tags?(0,e.validateTags)(c.tags,`unstable_cache ${a.toString()}`):[];(0,e.validateRevalidate)(c.revalidate,`unstable_cache ${a.name||a.toString()}`);let l=`${a.toString()}-${Array.isArray(b)&&b.join(",")}`;return async(...b)=>{let e=f.workAsyncStorage.getStore(),k=g.workUnitAsyncStorage.getStore(),m=(null==e?void 0:e.incrementalCache)||globalThis.__incrementalCache;if(!m)throw Object.defineProperty(Error(`Invariant: incrementalCache missing in unstable_cache ${a.toString()}`),"__NEXT_ERROR_CODE",{value:"E469",enumerable:!1,configurable:!0});let n=k?(0,g.getCacheSignal)(k):null;n&&n.beginRead();try{let f=e&&k?function(a,b){switch(b.type){case"request":let c=b.url.pathname,d=new URLSearchParams(b.url.search),e=[...d.keys()].sort((a,b)=>a.localeCompare(b)).map(a=>`${a}=${d.get(a)}`).join("&");return`${c}${e.length?"?":""}${e}`;case"prerender":case"prerender-client":case"prerender-runtime":case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return a.route;default:return b}}(e,k):"",n=`${l}-${JSON.stringify(b)}`,o=await m.generateCacheKey(n),p=`unstable_cache ${f} ${a.name?` ${a.name}`:o}`,q=(e?e.nextFetchId:i)??1,r=null==k?void 0:k.implicitTags,s={type:"unstable-cache",phase:"render",implicitTags:r,draftMode:k&&e&&(0,g.getDraftModeProviderForCacheScope)(e,k)};if(e){e.nextFetchId=q+1;let f=!1;if(k)switch(k.type){case"cache":case"private-cache":case"prerender":case"prerender-runtime":case"prerender-ppr":case"prerender-legacy":"number"==typeof c.revalidate&&(k.revalidate<c.revalidate||(k.revalidate=c.revalidate));let i=k.tags;if(null===i)k.tags=d.slice();else for(let a of d)i.includes(a)||i.push(a);break;case"unstable-cache":f=!0}if(!f&&"force-no-store"!==e.fetchCache&&!e.isOnDemandRevalidate&&!m.isOnDemandRevalidate&&!e.isDraftMode){let f=await m.get(o,{kind:h.IncrementalCacheKind.FETCH,revalidate:c.revalidate,tags:d,softTags:null==r?void 0:r.tags,fetchIdx:q,fetchUrl:p});if(f&&f.value)if(f.value.kind!==h.CachedRouteKind.FETCH)console.error(`Invariant invalid cacheEntry returned for ${n}`);else{let h=void 0!==f.value.data.body?JSON.parse(f.value.data.body):void 0;if(f.isStale){if(e.pendingRevalidates||(e.pendingRevalidates={}),!e.pendingRevalidates[n]){let f=g.workUnitAsyncStorage.run(s,a,...b).then(async a=>(await j(a,m,o,d,c.revalidate,q,p),a)).catch(a=>(console.error(`revalidating cache with key: ${n}`,a),h));e.isStaticGeneration&&f.catch(()=>{}),e.pendingRevalidates[n]=f}if(e.isStaticGeneration)return e.pendingRevalidates[n]}return h}}let l=await g.workUnitAsyncStorage.run(s,a,...b);return e.isDraftMode||(e.pendingRevalidates||(e.pendingRevalidates={}),e.pendingRevalidates[n]=j(l,m,o,d,c.revalidate,q,p)),l}{if(i+=1,!m.isOnDemandRevalidate){let a=await m.get(o,{kind:h.IncrementalCacheKind.FETCH,revalidate:c.revalidate,tags:d,fetchIdx:q,fetchUrl:p,softTags:null==r?void 0:r.tags});if(a&&a.value){if(a.value.kind!==h.CachedRouteKind.FETCH)console.error(`Invariant invalid cacheEntry returned for ${n}`);else if(!a.isStale)return void 0!==a.value.data.body?JSON.parse(a.value.data.body):void 0}}let e=await g.workUnitAsyncStorage.run(s,a,...b);return await j(e,m,o,d,c.revalidate,q,p),e}}finally{n&&n.endRead()}}}},46043,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={getSortedRouteObjects:function(){return h},getSortedRoutes:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});class f{insert(a){this._insert(a.split("/").filter(Boolean),[],!1)}smoosh(){return this._smoosh()}_smoosh(a="/"){let b=[...this.children.keys()].sort();null!==this.slugName&&b.splice(b.indexOf("[]"),1),null!==this.restSlugName&&b.splice(b.indexOf("[...]"),1),null!==this.optionalRestSlugName&&b.splice(b.indexOf("[[...]]"),1);let c=b.map(b=>this.children.get(b)._smoosh(`${a}${b}/`)).reduce((a,b)=>[...a,...b],[]);if(null!==this.slugName&&c.push(...this.children.get("[]")._smoosh(`${a}[${this.slugName}]/`)),!this.placeholder){let b="/"===a?"/":a.slice(0,-1);if(null!=this.optionalRestSlugName)throw Object.defineProperty(Error(`You cannot define a route with the same specificity as a optional catch-all route ("${b}" and "${b}[[...${this.optionalRestSlugName}]]").`),"__NEXT_ERROR_CODE",{value:"E458",enumerable:!1,configurable:!0});c.unshift(b)}return null!==this.restSlugName&&c.push(...this.children.get("[...]")._smoosh(`${a}[...${this.restSlugName}]/`)),null!==this.optionalRestSlugName&&c.push(...this.children.get("[[...]]")._smoosh(`${a}[[...${this.optionalRestSlugName}]]/`)),c}_insert(a,b,c){if(0===a.length){this.placeholder=!1;return}if(c)throw Object.defineProperty(Error("Catch-all must be the last part of the URL."),"__NEXT_ERROR_CODE",{value:"E392",enumerable:!1,configurable:!0});let d=a[0];if(d.startsWith("[")&&d.endsWith("]")){let f=d.slice(1,-1),g=!1;if(f.startsWith("[")&&f.endsWith("]")&&(f=f.slice(1,-1),g=!0),f.startsWith("…"))throw Object.defineProperty(Error(`Detected a three-dot character ('…') at ('${f}'). Did you mean ('...')?`),"__NEXT_ERROR_CODE",{value:"E147",enumerable:!1,configurable:!0});if(f.startsWith("...")&&(f=f.substring(3),c=!0),f.startsWith("[")||f.endsWith("]"))throw Object.defineProperty(Error(`Segment names may not start or end with extra brackets ('${f}').`),"__NEXT_ERROR_CODE",{value:"E421",enumerable:!1,configurable:!0});if(f.startsWith("."))throw Object.defineProperty(Error(`Segment names may not start with erroneous periods ('${f}').`),"__NEXT_ERROR_CODE",{value:"E288",enumerable:!1,configurable:!0});function e(a,c){if(null!==a&&a!==c)throw Object.defineProperty(Error(`You cannot use different slug names for the same dynamic path ('${a}' !== '${c}').`),"__NEXT_ERROR_CODE",{value:"E337",enumerable:!1,configurable:!0});b.forEach(a=>{if(a===c)throw Object.defineProperty(Error(`You cannot have the same slug name "${c}" repeat within a single dynamic path`),"__NEXT_ERROR_CODE",{value:"E247",enumerable:!1,configurable:!0});if(a.replace(/\W/g,"")===d.replace(/\W/g,""))throw Object.defineProperty(Error(`You cannot have the slug names "${a}" and "${c}" differ only by non-word symbols within a single dynamic path`),"__NEXT_ERROR_CODE",{value:"E499",enumerable:!1,configurable:!0})}),b.push(c)}if(c)if(g){if(null!=this.restSlugName)throw Object.defineProperty(Error(`You cannot use both an required and optional catch-all route at the same level ("[...${this.restSlugName}]" and "${a[0]}" ).`),"__NEXT_ERROR_CODE",{value:"E299",enumerable:!1,configurable:!0});e(this.optionalRestSlugName,f),this.optionalRestSlugName=f,d="[[...]]"}else{if(null!=this.optionalRestSlugName)throw Object.defineProperty(Error(`You cannot use both an optional and required catch-all route at the same level ("[[...${this.optionalRestSlugName}]]" and "${a[0]}").`),"__NEXT_ERROR_CODE",{value:"E300",enumerable:!1,configurable:!0});e(this.restSlugName,f),this.restSlugName=f,d="[...]"}else{if(g)throw Object.defineProperty(Error(`Optional route parameters are not yet supported ("${a[0]}").`),"__NEXT_ERROR_CODE",{value:"E435",enumerable:!1,configurable:!0});e(this.slugName,f),this.slugName=f,d="[]"}}this.children.has(d)||this.children.set(d,new f),this.children.get(d)._insert(a.slice(1),b,c)}constructor(){this.placeholder=!0,this.children=new Map,this.slugName=null,this.restSlugName=null,this.optionalRestSlugName=null}}function g(a){let b=new f;return a.forEach(a=>b.insert(a)),b.smoosh()}function h(a,b){let c={},d=[];for(let e=0;e<a.length;e++){let f=b(a[e]);c[f]=e,d[e]=f}return g(d).map(b=>a[c[b]])}},82966,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isDynamicRoute",{enumerable:!0,get:function(){return g}});let d=a.r(97908),e=/\/[^/]*\[[^/]+\][^/]*(?=\/|$)/,f=/\/\[[^/]+\](?=\/|$)/;function g(a,b=!0){return((0,d.isInterceptionRouteAppPath)(a)&&(a=(0,d.extractInterceptionRouteInformation)(a).interceptedRoute),b)?f.test(a):e.test(a)}},19228,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={getSortedRouteObjects:function(){return f.getSortedRouteObjects},getSortedRoutes:function(){return f.getSortedRoutes},isDynamicRoute:function(){return g.isDynamicRoute}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(46043),g=a.r(82966)},4712,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ActionDidNotRevalidate:function(){return f},ActionDidRevalidateDynamicOnly:function(){return h},ActionDidRevalidateStaticAndDynamic:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=0,g=1,h=2},65819,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={refresh:function(){return p},revalidatePath:function(){return q},revalidateTag:function(){return n},updateTag:function(){return o}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(60384),g=a.r(19228),h=a.r(99870),i=a.r(56704),j=a.r(32319),k=a.r(96556),l=a.r(50640),m=a.r(4712);function n(a,b){return b||console.warn('"revalidateTag" without the second argument is now deprecated, add second argument of "max" or use "updateTag". See more info here: https://nextjs.org/docs/messages/revalidate-tag-single-arg'),r([a],`revalidateTag ${a}`,b)}function o(a){let b=i.workAsyncStorage.getStore();if(!b||b.page.endsWith("/route"))throw Object.defineProperty(Error("updateTag can only be called from within a Server Action. To invalidate cache tags in Route Handlers or other contexts, use revalidateTag instead. See more info here: https://nextjs.org/docs/app/api-reference/functions/updateTag"),"__NEXT_ERROR_CODE",{value:"E872",enumerable:!1,configurable:!0});return r([a],`updateTag ${a}`,void 0)}function p(){let a=i.workAsyncStorage.getStore(),b=j.workUnitAsyncStorage.getStore();if(!a||a.page.endsWith("/route")||(null==b?void 0:b.phase)!=="action")throw Object.defineProperty(Error("refresh can only be called from within a Server Action. See more info here: https://nextjs.org/docs/app/api-reference/functions/refresh"),"__NEXT_ERROR_CODE",{value:"E870",enumerable:!1,configurable:!0});a&&(a.pathWasRevalidated=m.ActionDidRevalidateDynamicOnly)}function q(a,b){if(a.length>h.NEXT_CACHE_SOFT_TAG_MAX_LENGTH)return void console.warn(`Warning: revalidatePath received "${a}" which exceeded max length of ${h.NEXT_CACHE_SOFT_TAG_MAX_LENGTH}. See more info here https://nextjs.org/docs/app/api-reference/functions/revalidatePath`);let c=`${h.NEXT_CACHE_IMPLICIT_TAG_ID}${a||"/"}`;b?c+=`${c.endsWith("/")?"":"/"}${b}`:(0,g.isDynamicRoute)(a)&&console.warn(`Warning: a dynamic page path "${a}" was passed to "revalidatePath", but the "type" parameter is missing. This has no effect by default, see more info here https://nextjs.org/docs/app/api-reference/functions/revalidatePath`);let d=[c];return c===`${h.NEXT_CACHE_IMPLICIT_TAG_ID}/`?d.push(`${h.NEXT_CACHE_IMPLICIT_TAG_ID}/index`):c===`${h.NEXT_CACHE_IMPLICIT_TAG_ID}/index`&&d.push(`${h.NEXT_CACHE_IMPLICIT_TAG_ID}/`),r(d,`revalidatePath ${a}`)}function r(a,b,c){var d;let e=i.workAsyncStorage.getStore();if(!e||!e.incrementalCache)throw Object.defineProperty(Error(`Invariant: static generation store missing in ${b}`),"__NEXT_ERROR_CODE",{value:"E263",enumerable:!1,configurable:!0});let g=j.workUnitAsyncStorage.getStore();if(g){if("render"===g.phase)throw Object.defineProperty(Error(`Route ${e.route} used "${b}" during render which is unsupported. To ensure revalidation is performed consistently it must always happen outside of renders and cached functions. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E7",enumerable:!1,configurable:!0});switch(g.type){case"cache":case"private-cache":throw Object.defineProperty(Error(`Route ${e.route} used "${b}" inside a "use cache" which is unsupported. To ensure revalidation is performed consistently it must always happen outside of renders and cached functions. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E181",enumerable:!1,configurable:!0});case"unstable-cache":throw Object.defineProperty(Error(`Route ${e.route} used "${b}" inside a function cached with "unstable_cache(...)" which is unsupported. To ensure revalidation is performed consistently it must always happen outside of renders and cached functions. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E306",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":let a=Object.defineProperty(Error(`Route ${e.route} used ${b} without first calling \`await connection()\`.`),"__NEXT_ERROR_CODE",{value:"E406",enumerable:!1,configurable:!0});return(0,f.abortAndThrowOnSynchronousRequestDataAccess)(e.route,b,a,g);case"prerender-client":throw Object.defineProperty(new l.InvariantError(`${b} must not be used within a client component. Next.js should be preventing ${b} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E693",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,f.postponeWithTracking)(e.route,b,g.dynamicTracking);case"prerender-legacy":g.revalidate=0;let c=Object.defineProperty(new k.DynamicServerError(`Route ${e.route} couldn't be rendered statically because it used \`${b}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw e.dynamicUsageDescription=b,e.dynamicUsageStack=c.stack,c}}for(let b of(e.pendingRevalidatedTags||(e.pendingRevalidatedTags=[]),a))-1===e.pendingRevalidatedTags.findIndex(a=>a.tag===b&&("string"==typeof a.profile&&"string"==typeof c?a.profile===c:"object"==typeof a.profile&&"object"==typeof c?JSON.stringify(a.profile)===JSON.stringify(c):a.profile===c))&&e.pendingRevalidatedTags.push({tag:b,profile:c});let h=c&&"object"==typeof c?c:c&&"string"==typeof c&&(null==e||null==(d=e.cacheLifeProfiles)?void 0:d[c])?e.cacheLifeProfiles[c]:void 0;c&&(null==h?void 0:h.expire)!==0||(e.pathWasRevalidated=m.ActionDidRevalidateStaticAndDynamic)}},1247,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"unstable_noStore",{enumerable:!0,get:function(){return g}});let d=a.r(56704),e=a.r(32319),f=a.r(60384);function g(){let a=d.workAsyncStorage.getStore(),b=e.workUnitAsyncStorage.getStore();if(a){if(!a.forceStatic){if(a.isUnstableNoStore=!0,b)switch(b.type){case"prerender":case"prerender-client":case"prerender-runtime":return}(0,f.markCurrentScopeAsDynamic)(a,b,"unstable_noStore()")}}}},32621,(a,b,c)=>{"use strict";function d(a){throw Object.defineProperty(Error("`cacheLife()` is only available with the `cacheComponents` config."),"__NEXT_ERROR_CODE",{value:"E887",enumerable:!1,configurable:!0})}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"cacheLife",{enumerable:!0,get:function(){return d}}),a.r(50640),a.r(56704),a.r(32319)},72835,(a,b,c)=>{"use strict";function d(){throw Object.defineProperty(Error("`cacheTag()` is only available with the `cacheComponents` config."),"__NEXT_ERROR_CODE",{value:"E886",enumerable:!1,configurable:!0})}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"cacheTag",{enumerable:!0,get:function(){return d}}),a.r(32319),a.r(26095)},18558,(a,b,c)=>{let d={unstable_cache:a.r(71632).unstable_cache,updateTag:a.r(65819).updateTag,revalidateTag:a.r(65819).revalidateTag,revalidatePath:a.r(65819).revalidatePath,refresh:a.r(65819).refresh,unstable_noStore:a.r(1247).unstable_noStore,cacheLife:a.r(32621).cacheLife,cacheTag:a.r(72835).cacheTag},e=!1,f=!1;d.unstable_cacheLife=function(){return e||(e=!0,console.error(Error("`unstable_cacheLife` was recently stabilized and should be imported as `cacheLife`. The `unstable` prefixed form will be removed in a future version of Next.js."))),d.cacheLife.apply(this,arguments)},d.unstable_cacheTag=function(){return f||(f=!0,console.error(Error("`unstable_cacheTag` was recently stabilized and should be imported as `cacheTag`. The `unstable` prefixed form will be removed in a future version of Next.js."))),d.cacheTag.apply(this,arguments)},b.exports=d,c.unstable_cache=d.unstable_cache,c.revalidatePath=d.revalidatePath,c.revalidateTag=d.revalidateTag,c.updateTag=d.updateTag,c.unstable_noStore=d.unstable_noStore,c.cacheLife=d.cacheLife,c.unstable_cacheLife=d.unstable_cacheLife,c.cacheTag=d.cacheTag,c.unstable_cacheTag=d.unstable_cacheTag,c.refresh=d.refresh},83643,a=>{"use strict";var b=a.i(74533);let c=(0,a.i(12057).promisify)(b.execFile);function d(a){return"string"==typeof a.stdout?a.stdout:a.stdout&&"object"==typeof a.stdout&&"toString"in a.stdout?String(a.stdout.toString()):""}function e(a,b){return"string"==typeof a.stderr?a.stderr:a.stderr&&"object"==typeof a.stderr&&"toString"in a.stderr?String(a.stderr.toString()):"string"==typeof a.message?a.message:String(b)}async function f(a){try{let b=await c("openclaw",a,{timeout:12e4,windowsHide:!0,maxBuffer:0xa00000});return{ok:!0,exitCode:0,stdout:String(b.stdout??""),stderr:String(b.stderr??"")}}catch(b){let a="number"==typeof b.code?b.code:1;return{ok:!1,exitCode:a,stdout:d(b),stderr:e(b,b)}}}async function g(a){if("cron"===a[0])return f(a);let b=function(){let a=globalThis.__clawkitchen_api;if(!a)throw Error("ClawKitchen: OpenClaw plugin API not available. (This should only happen if Kitchen is started outside the gateway process.)");return a}();try{let c=await b.runtime.system.runCommandWithTimeout(["openclaw",...a],{timeoutMs:12e4}),d=String(c.stdout??""),e=String(c.stderr??""),f="number"==typeof c.exitCode?c.exitCode:"number"==typeof c.code?c.code:"number"==typeof c.status?c.status:0;if(0!==f)return{ok:!1,exitCode:f,stdout:d,stderr:e};return{ok:!0,exitCode:0,stdout:d,stderr:e}}catch(b){let a="number"==typeof b.code?b.code:1;return{ok:!1,exitCode:a,stdout:d(b),stderr:e(b,b)}}}a.s(["runOpenClaw",()=>g],83643)}];
20
20
 
21
- //# sourceMappingURL=node_modules_next_10fb6ad9._.js.map
21
+ //# sourceMappingURL=_7f9e89d2._.js.map