wiki-viewer 1.12.0 → 1.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.handoffs/archive/handoff-20260612-113332.md +98 -0
- package/.next/standalone/.handoffs/archive/handoff-20260612-141032.md +73 -0
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-path-routes-manifest.json +7 -0
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/routes-manifest.json +44 -0
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/api/agent/activity/route.js +8 -7
- package/.next/standalone/.next/server/app/api/agent/activity/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/events/[...path]/route.js +6 -5
- package/.next/standalone/.next/server/app/api/agent/events/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/files/[...path]/route.js +9 -8
- package/.next/standalone/.next/server/app/api/agent/files/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/fs/file/[...path]/route.js +6 -5
- package/.next/standalone/.next/server/app/api/agent/fs/file/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/fs/ls/[[...path]]/route.js +8 -7
- package/.next/standalone/.next/server/app/api/agent/fs/ls/[[...path]]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/fs/move/route.js +5 -4
- package/.next/standalone/.next/server/app/api/agent/fs/move/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/fs/search/route.js +5 -4
- package/.next/standalone/.next/server/app/api/agent/fs/search/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/internal/span/route.js +6 -5
- package/.next/standalone/.next/server/app/api/agent/internal/span/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/settings/route.js +5 -4
- package/.next/standalone/.next/server/app/api/agent/settings/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent/sidecar/[...path]/route.js +7 -6
- package/.next/standalone/.next/server/app/api/agent/sidecar/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/app-proxy/[...path]/route.js +3 -3
- package/.next/standalone/.next/server/app/api/app-proxy/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/assets/[...path]/route.js +5 -4
- package/.next/standalone/.next/server/app/api/assets/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/share/[token]/route.js +3 -3
- package/.next/standalone/.next/server/app/api/share/[token]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/share/route.js +5 -4
- package/.next/standalone/.next/server/app/api/share/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/browse/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/clear-root/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/reveal/route.js +5 -4
- package/.next/standalone/.next/server/app/api/system/reveal/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/root-status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/set-root/route.js +5 -5
- package/.next/standalone/.next/server/app/api/system/set-root/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/workspaces/[id]/open/route.js +5 -5
- package/.next/standalone/.next/server/app/api/system/workspaces/[id]/open/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/workspaces/[id]/refresh/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/system/workspaces/[id]/refresh/route/build-manifest.json +9 -0
- package/.next/standalone/.next/server/app/api/system/workspaces/[id]/refresh/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/system/workspaces/[id]/refresh/route.js +14 -0
- package/.next/standalone/.next/server/app/api/system/workspaces/[id]/refresh/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/system/workspaces/[id]/refresh/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/system/workspaces/[id]/refresh/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/system/workspaces/[id]/route.js +5 -5
- package/.next/standalone/.next/server/app/api/system/workspaces/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/system/workspaces/route.js +5 -5
- package/.next/standalone/.next/server/app/api/system/workspaces/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/upload/[...path]/route.js +5 -4
- package/.next/standalone/.next/server/app/api/upload/[...path]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/app/route.js +3 -2
- package/.next/standalone/.next/server/app/api/wiki/app/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/content/route.js +7 -6
- package/.next/standalone/.next/server/app/api/wiki/content/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/download/route.js +5 -4
- package/.next/standalone/.next/server/app/api/wiki/download/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/file/route.js +5 -4
- package/.next/standalone/.next/server/app/api/wiki/file/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/folder/route.js +4 -3
- package/.next/standalone/.next/server/app/api/wiki/folder/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/git-branches/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/wiki/git-branches/route/build-manifest.json +9 -0
- package/.next/standalone/.next/server/app/api/wiki/git-branches/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/wiki/git-branches/route.js +15 -0
- package/.next/standalone/.next/server/app/api/wiki/git-branches/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/wiki/git-branches/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/wiki/git-branches/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/wiki/git-checkout/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/wiki/git-checkout/route/build-manifest.json +9 -0
- package/.next/standalone/.next/server/app/api/wiki/git-checkout/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/wiki/git-checkout/route.js +15 -0
- package/.next/standalone/.next/server/app/api/wiki/git-checkout/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/wiki/git-checkout/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/wiki/git-checkout/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/wiki/git-diff/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/wiki/git-diff/route/build-manifest.json +9 -0
- package/.next/standalone/.next/server/app/api/wiki/git-diff/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/wiki/git-diff/route.js +15 -0
- package/.next/standalone/.next/server/app/api/wiki/git-diff/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/wiki/git-diff/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/wiki/git-diff/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/wiki/git-file-info/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/wiki/git-file-info/route/build-manifest.json +9 -0
- package/.next/standalone/.next/server/app/api/wiki/git-file-info/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/wiki/git-file-info/route.js +15 -0
- package/.next/standalone/.next/server/app/api/wiki/git-file-info/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/wiki/git-file-info/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/wiki/git-file-info/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/wiki/git-history/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/wiki/git-history/route/build-manifest.json +9 -0
- package/.next/standalone/.next/server/app/api/wiki/git-history/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/wiki/git-history/route.js +15 -0
- package/.next/standalone/.next/server/app/api/wiki/git-history/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/wiki/git-history/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/wiki/git-history/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/wiki/git-pull/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/wiki/git-pull/route/build-manifest.json +9 -0
- package/.next/standalone/.next/server/app/api/wiki/git-pull/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/wiki/git-pull/route.js +15 -0
- package/.next/standalone/.next/server/app/api/wiki/git-pull/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/wiki/git-pull/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/wiki/git-pull/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/wiki/move/route.js +7 -6
- package/.next/standalone/.next/server/app/api/wiki/move/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/new-file/route.js +5 -4
- package/.next/standalone/.next/server/app/api/wiki/new-file/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/page/route.js +5 -4
- package/.next/standalone/.next/server/app/api/wiki/page/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/presence/route.js +4 -3
- package/.next/standalone/.next/server/app/api/wiki/presence/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/route.js +5 -4
- package/.next/standalone/.next/server/app/api/wiki/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/search/route.js +7 -6
- package/.next/standalone/.next/server/app/api/wiki/search/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/slugs/route.js +5 -4
- package/.next/standalone/.next/server/app/api/wiki/slugs/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/upload/route.js +5 -4
- package/.next/standalone/.next/server/app/api/wiki/upload/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/wiki/watch/route.js +4 -3
- package/.next/standalone/.next/server/app/api/wiki/watch/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +3 -3
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/s/[token]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/signin/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +7 -0
- package/.next/standalone/.next/server/chunks/0p91_next_dist_esm_build_templates_app-route_0d2jbo5.js +1 -1
- package/.next/standalone/.next/server/chunks/0p91_next_dist_esm_build_templates_app-route_0ytral2.js +1 -1
- package/.next/standalone/.next/server/chunks/0zjb_server_app_api_system_workspaces_[id]_refresh_route_actions_0hkhk63.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-.y6im._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-3_t2y._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-kjkzt._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-puax4._.js +4 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0329ktu._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__03_xj4r._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__05398dt._.js +4 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__06lfvxh._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__070_p2a._.js +4 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__07tq6o4._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0905hi1._.js +21 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0aa63~j._.js +5 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0avcplk._.js +4 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0b8_kyo._.js +16 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0bticq1._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0bwevvu._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0c__k3q._.js +4 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cp~z4x._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fmdv9h._.js +20 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__09s9qkd._.js → [root-of-the-server]__0gurz9a._.js} +12 -12
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0h0qbwr._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0jk~oyi._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ndq77b._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0nvgpuk._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ocvng2._.js +3 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__12y5z5j._.js → [root-of-the-server]__0oruwos._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ps4h~.._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0q7jqwp._.js +12 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qew~6p._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0s_9f-a._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0uv7b8u._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0uv8.9i._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0vfe2io._.js +4 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0w11kjy._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wc-.e4._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ymovmp._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0~c6ouv._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0~rhs0u._.js +16 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__10h9tid._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__10yk-u1._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__11105ew._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__13420tt._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__13h~pdf._.js +3 -0
- package/.next/standalone/.next/server/chunks/_0dr1r1g._.js +1 -1
- package/.next/standalone/.next/server/chunks/_101exke._.js +1 -1
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_system_workspaces_[id]_open_route_actions_1087xu7.js +1 -1
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_wiki_git-branches_route_actions_05b396c.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_wiki_git-checkout_route_actions_089u9p9.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_wiki_git-diff_route_actions_0iy8l24.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_wiki_git-file-info_route_actions_0x60n1-.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_wiki_git-history_route_actions_0tkpmp_.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_wiki_git-pull_route_actions_0g4vacp.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{0~w0_katex_dist_katex_mjs_13chgf0._.js → 0~w0_katex_dist_katex_mjs_0qx2j07._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0i~n9pv._.js → [root-of-the-server]__0h4wd53._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0yevh-d._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0~a9dyk._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0n1.j2i._.js → node_modules__pnpm_01kc--z._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0xp183v._.js → node_modules__pnpm_03cm2zh._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0oibo.w._.js → node_modules__pnpm_04hxlb_._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_12q.b2f._.js → node_modules__pnpm_0820yu1._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0w9n5vj._.js → node_modules__pnpm_08c9lfr._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0nll2aq._.js → node_modules__pnpm_0_.fyaw._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0_oavke._.js → node_modules__pnpm_0_xt~7t._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules__pnpm_0a4su30._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0rzput-._.js → node_modules__pnpm_0aitjy1._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0qfk1f1._.js → node_modules__pnpm_0ayirr4._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0m58haa._.js → node_modules__pnpm_0czi-y7._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0kr6hmt._.js → node_modules__pnpm_0ejdhkw._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0lzlkeq._.js → node_modules__pnpm_0e~azys._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0mfii1i._.js → node_modules__pnpm_0gc.tst._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0xbcqhl._.js → node_modules__pnpm_0h2_y0t._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0gl18q1._.js → node_modules__pnpm_0i.tyr0._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_08gkil-._.js → node_modules__pnpm_0qqam_2._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_11nai6s._.js → node_modules__pnpm_0rikhgz._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0bb1d87._.js → node_modules__pnpm_0smyw3~._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0c0u-lf._.js → node_modules__pnpm_0sxgjbs._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_122wqoe._.js → node_modules__pnpm_0u9e~t-._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0t5tgdj._.js → node_modules__pnpm_0v9nm7z._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0m-flj.._.js → node_modules__pnpm_0vw2lox._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_06feu_5._.js → node_modules__pnpm_0wepk.3._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_11vksmi._.js → node_modules__pnpm_12~uc4r._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0fiq.d~._.js → node_modules__pnpm_1391bd5._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0y8u~8e._.js → node_modules__pnpm_13dxxs2._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{node_modules__pnpm_0o4821k._.js → node_modules__pnpm_13zhbe4._.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_app_page_tsx_0ss2.w7._.js +3 -3
- package/.next/standalone/.next/server/functions-config-manifest.json +1 -0
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/middleware-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/static/chunks/0.9~g4nvqt9if.css +5 -0
- package/.next/standalone/.next/static/chunks/0qiiie0s9~eqg.js +17 -0
- package/.next/standalone/.next/static/chunks/{0_cyfljw-guxi.js → 0rmw2y5~zh8p4.js} +2 -2
- package/.next/standalone/.next/static/chunks/{0l494q_1hjc2y.js → 132w2~-ghm05e.js} +2 -2
- package/.next/standalone/AGENTS.md +13 -3
- package/.next/standalone/README.md +109 -11
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/src/app/api/agent/events/[...path]/route.ts +1 -1
- package/.next/standalone/src/app/api/agent/files/[...path]/route.ts +1 -1
- package/.next/standalone/src/app/api/agent/fs/file/[...path]/route.ts +2 -2
- package/.next/standalone/src/app/api/agent/fs/move/route.ts +1 -1
- package/.next/standalone/src/app/api/agent/internal/span/route.ts +1 -1
- package/.next/standalone/src/app/api/system/workspaces/[id]/refresh/route.ts +32 -0
- package/.next/standalone/src/app/api/system/workspaces/[id]/route.ts +5 -1
- package/.next/standalone/src/app/api/system/workspaces/route.ts +56 -4
- package/.next/standalone/src/app/api/upload/[...path]/route.ts +1 -1
- package/.next/standalone/src/app/api/wiki/app/route.ts +2 -2
- package/.next/standalone/src/app/api/wiki/content/route.ts +1 -1
- package/.next/standalone/src/app/api/wiki/folder/route.ts +1 -1
- package/.next/standalone/src/app/api/wiki/git-branches/route.ts +32 -0
- package/.next/standalone/src/app/api/wiki/git-checkout/route.ts +45 -0
- package/.next/standalone/src/app/api/wiki/git-diff/route.ts +33 -0
- package/.next/standalone/src/app/api/wiki/git-file-info/route.ts +27 -0
- package/.next/standalone/src/app/api/wiki/git-history/route.ts +27 -0
- package/.next/standalone/src/app/api/wiki/git-pull/route.ts +48 -0
- package/.next/standalone/src/app/api/wiki/move/route.ts +1 -1
- package/.next/standalone/src/app/api/wiki/new-file/route.ts +1 -1
- package/.next/standalone/src/app/api/wiki/page/route.ts +1 -1
- package/.next/standalone/src/app/api/wiki/route.ts +22 -16
- package/.next/standalone/src/app/api/wiki/upload/route.ts +1 -1
- package/.next/standalone/src/app/page.tsx +376 -5
- package/.next/standalone/src/components/dir-picker.tsx +219 -8
- package/.next/standalone/src/components/editor/document-outline.tsx +1 -1
- package/.next/standalone/src/lib/config.ts +26 -0
- package/.next/standalone/src/lib/git-secrets.ts +65 -0
- package/.next/standalone/src/lib/git.ts +503 -0
- package/.next/standalone/src/lib/workspace-context.ts +20 -2
- package/.next/standalone/src/lib/workspaces.ts +205 -1
- package/.next/standalone/src/tests/proof/git-branches-checkout.test.ts +136 -0
- package/.next/standalone/src/tests/proof/git-read-features.test.ts +473 -0
- package/.next/standalone/src/tests/proof/git-secrets.test.ts +138 -0
- package/.next/standalone/src/tests/proof/git-sparse.test.ts +257 -0
- package/.next/standalone/src/tests/proof/git-workspace.test.ts +135 -0
- package/.next/standalone/src/tests/proof/git.test.ts +243 -0
- package/.next/standalone/src/tests/proof/readonly-enforcement.test.ts +161 -0
- package/.next/standalone/tsconfig.tsbuildinfo +1 -1
- package/README.md +109 -11
- package/package.json +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__00lep-u._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__01hp8ax._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__02scxiu._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__036mhjp._.js +0 -5
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__05t~v6l._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__07nnfjx._.js +0 -16
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__09cqzem._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_0_601._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ae3dk6._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0d7x3e1._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e7vs98._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fxzg4v._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0hu~q20._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0l-8clq._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0n3i3vu._.js +0 -16
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ncjv3e._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0otb8ra._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0p0-p__._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0piofm3._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0s6_lzw._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0s8ovh5._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0sh13v5._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ta~flu._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0v4im4p._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0vdb2nr._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0yzle76._.js +0 -20
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0z.pwwj._.js +0 -20
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0zgb.q2._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0zq0rlw._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__123._fe._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1377.79._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1378-ox._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__13hp4tw._.js +0 -12
- package/.next/standalone/.next/static/chunks/0g3kmqqu.d0cc.css +0 -5
- package/.next/standalone/.next/static/chunks/0qtn1qu_g8qia.js +0 -17
- /package/.next/standalone/.next/static/{hYuHIYrZPBlI82UnWPCoY → ucX5u3D8Ca9KdVyeRk_D_}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{hYuHIYrZPBlI82UnWPCoY → ucX5u3D8Ca9KdVyeRk_D_}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{hYuHIYrZPBlI82UnWPCoY → ucX5u3D8Ca9KdVyeRk_D_}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Handoff: Git-backed read-only workspaces (feature complete + perf optimization shipped)
|
|
2
|
+
|
|
3
|
+
- **Written:** 2026-06-12 11:33:32 UTC
|
|
4
|
+
- **From session:** unknown (pi agent, not Claude Code CLI; no .jsonl pointer)
|
|
5
|
+
- **Working dir:** /home/sil/wiki-viewer
|
|
6
|
+
- **Resume raw transcript (fallback only):** n/a (pi session, no --resume id captured)
|
|
7
|
+
|
|
8
|
+
## Goal
|
|
9
|
+
|
|
10
|
+
Let teams browse docs that live in a remote git repo (GitHub/GitLab/Bitbucket/Gitea/GHE)
|
|
11
|
+
with the full wiki-viewer UI, instead of reading raw files on the host. Scope was locked
|
|
12
|
+
early: **read-only**, **private repos via HTTPS PAT**, **manual refresh** (no webhook/cron).
|
|
13
|
+
"Done" = admin pastes a repo URL, server clones it, it shows up as a normal workspace that
|
|
14
|
+
is read-only, with a Refresh button. Plus a perf path for repos whose docs sit in a subdir.
|
|
15
|
+
|
|
16
|
+
This work is **shipped and complete**. Both commits pushed to origin/main. There is no
|
|
17
|
+
pending task. This handoff exists to orient a fresh agent if the feature is extended.
|
|
18
|
+
|
|
19
|
+
## Current state
|
|
20
|
+
|
|
21
|
+
DONE and pushed. Two commits on `main`:
|
|
22
|
+
|
|
23
|
+
- `750f1e6` feat: git-backed read-only workspaces (backend spine + UI + tests)
|
|
24
|
+
- `52edf40` perf(git): optional subpath via sparse checkout
|
|
25
|
+
|
|
26
|
+
Working tree clean. `pnpm test` = 371 pass / 0 fail. `pnpm exec tsc --noEmit` clean.
|
|
27
|
+
`pnpm build` succeeds (only the unrelated Better Auth base-URL warning, expected without env).
|
|
28
|
+
|
|
29
|
+
What works end-to-end:
|
|
30
|
+
|
|
31
|
+
- Add a git workspace via the directory picker "From Git" tab (URL, branch, subdir, username, token, name).
|
|
32
|
+
- Server clones to `~/.wiki-viewer/repos/<wsId>/`, registers a `readOnly: true` workspace.
|
|
33
|
+
- Optional subdir does a blobless partial clone + cone sparse-checkout; rootDir points at the subdir.
|
|
34
|
+
- Every fs-mutating route rejects writes on a read-only workspace with 403 WORKSPACE_READ_ONLY.
|
|
35
|
+
- Manual Refresh button in the switcher runs `git pull --ff-only`, shows synced time + last error.
|
|
36
|
+
- PAT stored 0600 in `~/.wiki-viewer/git-secrets.json`, never in config.json, never logged, never in any API response.
|
|
37
|
+
|
|
38
|
+
Nothing is half-built or untested in this feature.
|
|
39
|
+
|
|
40
|
+
## Next action (do this first)
|
|
41
|
+
|
|
42
|
+
Nothing pending. If asked to extend, the most likely next features (all explicitly deferred,
|
|
43
|
+
not bugs) are listed under "Open questions". Start by reading the two key lib files below to
|
|
44
|
+
rebuild the mental model, then `pnpm test` to confirm green baseline before any change.
|
|
45
|
+
|
|
46
|
+
## Then
|
|
47
|
+
|
|
48
|
+
Only if extending. Each item is a fresh mini-feature, use `/feature`:
|
|
49
|
+
|
|
50
|
+
1. Config UI for `git.allowedHosts` / `git.allowInsecureHttp` (currently config.json only, no UI). Verify: admin can restrict clone hosts from settings.
|
|
51
|
+
2. Write-back (commit + push or PR flow). This is the big scope cliff deliberately not built. Would require lifting read-only on a write path + conflict/precondition handling. Verify: edit in a git workspace reaches upstream.
|
|
52
|
+
3. Auto-refresh (webhook or cron). Deferred by design; manual-only shipped. Verify: clone updates without a manual click.
|
|
53
|
+
|
|
54
|
+
## Key files
|
|
55
|
+
|
|
56
|
+
- `src/lib/git.ts` — git binary wrapper. `cloneRepo` (askpass auth so token never in argv/.git/config), `validateRemoteUrl` (https-only scheme gate + host allowlist + metachar reject), `validateSubpath`, `pullRepo` (ff-only), `headSha`, `currentBranch`, `assertGitAvailable`. Clone args: whole-repo `["clone","--depth","1","--single-branch","--no-tags",url,dest]`; subpath adds `--filter=blob:none --sparse` then `sparse-checkout set --cone <subpath>`.
|
|
57
|
+
- `src/lib/git-secrets.ts` — PAT store, 0600 file, genTokenRef/setToken/getToken/deleteToken. Frozen, do not modify.
|
|
58
|
+
- `src/lib/workspaces.ts` — `Workspace.readOnly` + `git{remoteUrl,branch,tokenRef,username,subpath,cloneRoot,lastPulledAt,lastSha,lastError}`. `createGitWorkspace`, `refreshGitWorkspace`, `removeWorkspace` (deletes cloneRoot, path.relative guard), `sanitizeWorkspace` (strips tokenRef from all responses).
|
|
59
|
+
- `src/lib/workspace-context.ts` — `resolveWorkspaceForUser/Agent(req, intent)`. `intent:"write"` + `ws.readOnly` → 403 WORKSPACE_READ_ONLY. This is the single read-only chokepoint; every write route passes "write".
|
|
60
|
+
- `src/lib/config.ts` — `reposDir()`, `WorkspaceGitEntry` (mirror of WorkspaceGit), `git.allowedHosts`/`git.allowInsecureHttp` config keys.
|
|
61
|
+
- `src/app/api/system/workspaces/route.ts` — POST branches to createGitWorkspace when body.remoteUrl present; masks tokenRef.
|
|
62
|
+
- `src/app/api/system/workspaces/[id]/refresh/route.ts` — admin+CSRF, calls refreshGitWorkspace.
|
|
63
|
+
- `src/components/dir-picker.tsx` — "Local folder" / "From Git" mode toggle + the From Git form.
|
|
64
|
+
- `src/app/page.tsx` — workspace switcher: read-only badge, Refresh button (handleRefreshWorkspace ~line 862, switcher render ~line 2015), timeAgo helper (~line 107).
|
|
65
|
+
- `src/tests/proof/git.test.ts`, `git-secrets.test.ts`, `git-workspace.test.ts`, `readonly-enforcement.test.ts`, `git-sparse.test.ts` — full coverage.
|
|
66
|
+
|
|
67
|
+
## Decisions & rationale
|
|
68
|
+
|
|
69
|
+
- **Full clone, not API/lazy fetch.** Keeps reads as native fs (fast) and viewer/search/agent paths unchanged + provider-agnostic. API-based reads would be per-host and slow. See the read-perf discussion in session.
|
|
70
|
+
- **Read-only is a policy, not a tech limit.** The clone is a writable dir, but edits there would be silently lost on `git pull --ff-only` (divergence) and never reach upstream. Read-only protects the user from edits with nowhere to go. Lift it only when write-back exists.
|
|
71
|
+
- **Subpath uses sparse cone + blobless,** the only change that improves setup time without sacrificing read perf. `rootDir = cloneRoot/subpath` so `.git` sits outside rootDir (cleaner isolation). `cloneRoot` stored separately so refresh/remove target the real clone, not the subdir.
|
|
72
|
+
- **Generalized beyond GitHub** because read-only clone+pull is provider-agnostic; only auth differs and HTTPS-token auth is uniform. Cheap to support all hosts.
|
|
73
|
+
- **`--no-tags` on whole-repo, blobless only on subpath.** Depth-1 already fetches only tip blobs, so blobless adds negotiation cost for no gain on a full clone.
|
|
74
|
+
|
|
75
|
+
## Gotchas & landmines
|
|
76
|
+
|
|
77
|
+
- **`.git/` is already excluded** in indexer (SKIP_DIRS), fs/ls (SKIP_NAMES), and raw-fs (isDeniedRelPath). Do NOT re-add exclusions; subpath clones keep .git outside rootDir anyway.
|
|
78
|
+
- **Local-protocol clones (`file://` or local path) IGNORE `--filter`** (git prints "filtering not recognized by server, ignoring"). Tests use local fixtures so they assert END STATE (only subpath files in rootDir), not transfer savings. Real https hosts get the blobless benefit.
|
|
79
|
+
- **`agent-workspace-scope.test.ts` has a pre-existing flaky teardown race** (async agents.json write lands after the test's `rm`, ENOENT unhandledRejection). NOT caused by this feature; surfaced once under parallel load, then passed consistently. If the full suite flakes on exactly that file, it is this known race, not the git code.
|
|
80
|
+
- **Symlink subpath attack is blocked twice:** git's `sparse-checkout set --cone` refuses a non-directory, AND createGitWorkspace does lstat + realpath-under-cloneRoot. Test `git-sparse.test.ts` covers it. The error message can be either "not a directory" (git) or "not found" (our guard) so the test regex accepts both.
|
|
81
|
+
- **removeWorkspace delete guard** uses `path.relative(managed, cloneDir)` not raw `startsWith`, to stop a tampered config cloneRoot from deleting outside reposDir. Keep that if you touch cleanup.
|
|
82
|
+
- **pnpm only.** `kysely` pinned 0.28.5 via overrides, do not bump. No em-dashes in any copy/comments (user rule). No AI attribution in commits.
|
|
83
|
+
- Tests run from repo root: `pnpm exec tsx --import ./src/tests/proof/preload.ts --test src/tests/proof/<name>.test.ts`. preload.ts overrides HOME to a temp dir so tests never touch real ~/.wiki-viewer.
|
|
84
|
+
|
|
85
|
+
## Open questions / waiting on
|
|
86
|
+
|
|
87
|
+
None blocking. Deferred-by-design (not bugs): write-back/push, auto-refresh (webhook/cron),
|
|
88
|
+
GHE-host config UI. All would be net-new features needing `/feature`, not continuations.
|
|
89
|
+
|
|
90
|
+
## Mental model
|
|
91
|
+
|
|
92
|
+
A git-backed workspace IS a normal workspace whose `rootDir` happens to be a server-managed
|
|
93
|
+
clone. That single insight is why the feature is small: the entire read path (browser, editor
|
|
94
|
+
view, search, agent reads) is untouched, because it just sees files on disk. Only two things
|
|
95
|
+
are new: the clone/pull/secret orchestration (lib/git\*.ts + createGitWorkspace), and a
|
|
96
|
+
read-only write gate centralized in one place (workspace-context resolver `intent` param).
|
|
97
|
+
Everything else is wiring. When extending, ask "is this a read concern (already works) or a
|
|
98
|
+
write concern (must go through the read-only gate)?" before touching anything.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Handoff: Sub-folder git repo detection + branch badge + pull refresh
|
|
2
|
+
|
|
3
|
+
- **Written:** 2026-06-12 14:10:32 UTC
|
|
4
|
+
- **From session:** unknown (Pi agent, not Claude Code CLI)
|
|
5
|
+
- **Working dir:** /home/sil/wiki-viewer
|
|
6
|
+
- **Resume raw transcript (fallback only):** n/a (Pi session, no --resume id captured)
|
|
7
|
+
|
|
8
|
+
## Goal
|
|
9
|
+
|
|
10
|
+
Let users see git status for sub-folder git repos inside a normal workspace. When expanding a directory in the file tree sidebar, auto-detect any subdirectory that is a git repo root, show branch name + dirty indicator as an inline badge next to the folder name, and provide a pull-to-refresh button.
|
|
11
|
+
|
|
12
|
+
"Done" = expand a folder in the sidebar, see `main` or `master` next to repo folders, click the refresh icon and see it pull latest + reload tree.
|
|
13
|
+
|
|
14
|
+
## Current state
|
|
15
|
+
|
|
16
|
+
Shipped and committed at `310cb72`. Working tree clean. `pnpm test` = 371 pass / 0 fail. `pnpm exec tsc --noEmit` clean.
|
|
17
|
+
|
|
18
|
+
What works end-to-end:
|
|
19
|
+
|
|
20
|
+
- `GET /api/wiki?dir=...` returns `git: {branch, dirty}` for each subdirectory that is a git repo root.
|
|
21
|
+
- File tree sidebar shows `GitBranch icon branch [* if dirty] [↩ button]` inline.
|
|
22
|
+
- Clicking ↩ calls `POST /api/wiki/git-pull` with `{path}`, runs `git pull --ff-only`, shows toast on success/fail, refreshes parent listing.
|
|
23
|
+
- Reuses `detectGitRepo` in both listing and pull endpoint for consistent validation.
|
|
24
|
+
- Pull endpoint uses `resolveWorkspaceForUser(request, "write")` — blocked on read-only workspaces.
|
|
25
|
+
- Node-app entries also get git detection (review fix).
|
|
26
|
+
- Follows existing patterns: CSRF, safeWorkspacePath, wsFetch, showError/showSuccess.
|
|
27
|
+
|
|
28
|
+
## Next action (do this first)
|
|
29
|
+
|
|
30
|
+
Nothing pending. If asked to extend, read the four changed files below to rebuild mental model, then `pnpm test` to confirm green baseline.
|
|
31
|
+
|
|
32
|
+
## Then
|
|
33
|
+
|
|
34
|
+
Possible extensions (all net-new, not continuations):
|
|
35
|
+
|
|
36
|
+
1. **`.gitignore`-aware file listing** — hide ignored files from the tree. Requires running `git ls-files` in the sub-repo and filtering against `fetchDir` results.
|
|
37
|
+
2. **Modification badges in tree** — `M`/`?`/`D` next to files when inside a detected git repo. Requires `git status --porcelain` on the sub-repo.
|
|
38
|
+
3. **Git log / history panel** — show recent commits when clicking the branch badge.
|
|
39
|
+
4. **Write-back (commit + push)** — big scope cliff. Would lift read-only and add commit UI.
|
|
40
|
+
|
|
41
|
+
## Key files
|
|
42
|
+
|
|
43
|
+
- `src/lib/git.ts` — added `detectGitRepo(dirPath)` at end of file. Returns `{branch, dirty}` or `null`. Uses `stat(.git)` then `rev-parse --show-toplevel` to confirm repo root, then `currentBranch()` + `status --porcelain`. Also added `GitRepoInfo` interface.
|
|
44
|
+
- `src/app/api/wiki/route.ts` — GET handler extended to call `detectGitRepo` for each directory entry. Also restructured to apply git detection uniformly for all directory types (dir, app, node-app).
|
|
45
|
+
- `src/app/api/wiki/git-pull/route.ts` — NEW file, POST endpoint. CSRF-protected, uses `resolveWorkspaceForUser(request, "write")`, validates path via `safeWorkspacePath`, reuses `detectGitRepo` for repo validation, runs `pullRepo` then returns `{branch, sha}`.
|
|
46
|
+
- `src/app/page.tsx` — `TreeNode.git?` field; `fetchDir` passes through git from API; `pullingRepo` state + `handleGitPull` callback (after reloadDir definition); git badge + refresh button in `renderNodes` between node name and agent presence dot.
|
|
47
|
+
|
|
48
|
+
## Decisions & rationale
|
|
49
|
+
|
|
50
|
+
- **Auto-detect, not opt-in.** Scanning for `.git` on directory expand is cheap (one stat per subdirectory). Extra git commands only run for directories WITH `.git`. Zero config burden.
|
|
51
|
+
- **Inline badge in tree row**, not status bar or tooltip. Always visible, no extra clicks. Same pattern as VSCode explorer.
|
|
52
|
+
- **Reuse `detectGitRepo` in pull endpoint.** Ensures same validation (toplevel check, not just `.git` existence) prevents pulling on non-root repos or submodules.
|
|
53
|
+
- **Pull on read-only workspaces blocked.** `resolveWorkspaceForUser(request, "write")` in git-pull endpoint prevents mutating a read-only git-backed workspace by pulling inside it.
|
|
54
|
+
- **Node-app entries included.** Review flagged the early-return gap; restructured to detect git before type-specific branching. Node-app folders that are also git repos get the badge.
|
|
55
|
+
- **Parent directory reloaded after pull.** Simpler and more accurate than trying to predict new dirty state.
|
|
56
|
+
- **No rate limiting.** Frontend guard prevents concurrent pulls per path. Server-side throttle deferred until abuse surfaces.
|
|
57
|
+
|
|
58
|
+
## Gotchas & landmines
|
|
59
|
+
|
|
60
|
+
- **`reloadDir` defined before `handleGitPull`** in page.tsx. The callback depends on `reloadDir` being declared first. If you move callbacks around, keep this ordering.
|
|
61
|
+
- **Submodules**: `.git` is a file (not dir) in submodule checkouts. `detectGitRepo` handles this because `stat()` works on both files and dirs. The `rev-parse --show-toplevel` check also handles this correctly.
|
|
62
|
+
- **Symlink `.git`**: `stat` follows symlinks by default, so detection works. But `rev-parse --show-toplevel` resolves realpath, so comparison against symlinked dirPath would fail. This is acceptable — symlinked `.git` pointing outside the workspace is an unusual case.
|
|
63
|
+
- **Nested git repos**: If a git repo has submodules, the submodule dirs are git repos too but `rev-parse --show-toplevel` returns the submodule root, not the superproject root. They each get their own badge, which is correct.
|
|
64
|
+
- **pnpm only.** `kysely` pinned 0.28.5 via overrides, do not bump. No em-dashes in copy/comments (user rule). No AI attribution in commits.
|
|
65
|
+
- **Tests run from repo root.** `pnpm exec tsx --import ./src/tests/proof/preload.ts --test src/tests/proof/<name>.test.ts`. preload.ts overrides HOME to temp dir.
|
|
66
|
+
|
|
67
|
+
## Open questions / waiting on
|
|
68
|
+
|
|
69
|
+
None. Feature is complete and committed.
|
|
70
|
+
|
|
71
|
+
## Mental model
|
|
72
|
+
|
|
73
|
+
A sub-folder git repo inside a workspace is just a normal directory with a `.git` file/dir. The whole feature is three layers: (1) detection — one stat + a couple git commands per directory on expand, (2) display — branch badge inline in the existing tree row, (3) refresh — pull endpoint reusing existing `pullRepo` from the git-backed workspace feature. The detection and pull share the same validation helper. No new auth concepts, no new workspace types, no new state management patterns. When extending, focus on "is this a read concern (already works) or a write concern (must gate through workspace read-only policy)?"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
ucX5u3D8Ca9KdVyeRk_D_
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
"/api/system/set-root/route": "/api/system/set-root",
|
|
41
41
|
"/api/system/users/route": "/api/system/users",
|
|
42
42
|
"/api/system/workspaces/[id]/open/route": "/api/system/workspaces/[id]/open",
|
|
43
|
+
"/api/system/workspaces/[id]/refresh/route": "/api/system/workspaces/[id]/refresh",
|
|
43
44
|
"/api/system/workspaces/[id]/route": "/api/system/workspaces/[id]",
|
|
44
45
|
"/api/system/workspaces/route": "/api/system/workspaces",
|
|
45
46
|
"/api/upload/[...path]/route": "/api/upload/[...path]",
|
|
@@ -48,6 +49,12 @@
|
|
|
48
49
|
"/api/wiki/download/route": "/api/wiki/download",
|
|
49
50
|
"/api/wiki/file/route": "/api/wiki/file",
|
|
50
51
|
"/api/wiki/folder/route": "/api/wiki/folder",
|
|
52
|
+
"/api/wiki/git-branches/route": "/api/wiki/git-branches",
|
|
53
|
+
"/api/wiki/git-checkout/route": "/api/wiki/git-checkout",
|
|
54
|
+
"/api/wiki/git-diff/route": "/api/wiki/git-diff",
|
|
55
|
+
"/api/wiki/git-file-info/route": "/api/wiki/git-file-info",
|
|
56
|
+
"/api/wiki/git-history/route": "/api/wiki/git-history",
|
|
57
|
+
"/api/wiki/git-pull/route": "/api/wiki/git-pull",
|
|
51
58
|
"/api/wiki/move/route": "/api/wiki/move",
|
|
52
59
|
"/api/wiki/new-file/route": "/api/wiki/new-file",
|
|
53
60
|
"/api/wiki/page/route": "/api/wiki/page",
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
"static/chunks/03~yq9q893hmn.js"
|
|
8
8
|
],
|
|
9
9
|
"lowPriorityFiles": [
|
|
10
|
-
"static/
|
|
11
|
-
"static/
|
|
12
|
-
"static/
|
|
10
|
+
"static/ucX5u3D8Ca9KdVyeRk_D_/_buildManifest.js",
|
|
11
|
+
"static/ucX5u3D8Ca9KdVyeRk_D_/_ssgManifest.js",
|
|
12
|
+
"static/ucX5u3D8Ca9KdVyeRk_D_/_clientMiddlewareManifest.js"
|
|
13
13
|
],
|
|
14
14
|
"rootMainFiles": [
|
|
15
15
|
"static/chunks/0ocp.6r7w_saw.js",
|
|
@@ -142,6 +142,14 @@
|
|
|
142
142
|
},
|
|
143
143
|
"namedRegex": "^/api/system/workspaces/(?<nxtPid>[^/]+?)/open(?:/)?$"
|
|
144
144
|
},
|
|
145
|
+
{
|
|
146
|
+
"page": "/api/system/workspaces/[id]/refresh",
|
|
147
|
+
"regex": "^/api/system/workspaces/([^/]+?)/refresh(?:/)?$",
|
|
148
|
+
"routeKeys": {
|
|
149
|
+
"nxtPid": "nxtPid"
|
|
150
|
+
},
|
|
151
|
+
"namedRegex": "^/api/system/workspaces/(?<nxtPid>[^/]+?)/refresh(?:/)?$"
|
|
152
|
+
},
|
|
145
153
|
{
|
|
146
154
|
"page": "/api/upload/[...path]",
|
|
147
155
|
"regex": "^/api/upload/(.+?)(?:/)?$",
|
|
@@ -370,6 +378,42 @@
|
|
|
370
378
|
"routeKeys": {},
|
|
371
379
|
"namedRegex": "^/api/wiki/folder(?:/)?$"
|
|
372
380
|
},
|
|
381
|
+
{
|
|
382
|
+
"page": "/api/wiki/git-branches",
|
|
383
|
+
"regex": "^/api/wiki/git\\-branches(?:/)?$",
|
|
384
|
+
"routeKeys": {},
|
|
385
|
+
"namedRegex": "^/api/wiki/git\\-branches(?:/)?$"
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
"page": "/api/wiki/git-checkout",
|
|
389
|
+
"regex": "^/api/wiki/git\\-checkout(?:/)?$",
|
|
390
|
+
"routeKeys": {},
|
|
391
|
+
"namedRegex": "^/api/wiki/git\\-checkout(?:/)?$"
|
|
392
|
+
},
|
|
393
|
+
{
|
|
394
|
+
"page": "/api/wiki/git-diff",
|
|
395
|
+
"regex": "^/api/wiki/git\\-diff(?:/)?$",
|
|
396
|
+
"routeKeys": {},
|
|
397
|
+
"namedRegex": "^/api/wiki/git\\-diff(?:/)?$"
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
"page": "/api/wiki/git-file-info",
|
|
401
|
+
"regex": "^/api/wiki/git\\-file\\-info(?:/)?$",
|
|
402
|
+
"routeKeys": {},
|
|
403
|
+
"namedRegex": "^/api/wiki/git\\-file\\-info(?:/)?$"
|
|
404
|
+
},
|
|
405
|
+
{
|
|
406
|
+
"page": "/api/wiki/git-history",
|
|
407
|
+
"regex": "^/api/wiki/git\\-history(?:/)?$",
|
|
408
|
+
"routeKeys": {},
|
|
409
|
+
"namedRegex": "^/api/wiki/git\\-history(?:/)?$"
|
|
410
|
+
},
|
|
411
|
+
{
|
|
412
|
+
"page": "/api/wiki/git-pull",
|
|
413
|
+
"regex": "^/api/wiki/git\\-pull(?:/)?$",
|
|
414
|
+
"routeKeys": {},
|
|
415
|
+
"namedRegex": "^/api/wiki/git\\-pull(?:/)?$"
|
|
416
|
+
},
|
|
373
417
|
{
|
|
374
418
|
"page": "/api/wiki/move",
|
|
375
419
|
"regex": "^/api/wiki/move(?:/)?$",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0ocp.6r7w_saw.js"/><script src="/_next/static/chunks/0quh-cfcrp2ib.js" async=""></script><script src="/_next/static/chunks/0vp-ahhagxptc.js" async=""></script><script src="/_next/static/chunks/turbopack-12~z-mr7b9b50.js" async=""></script><script src="/_next/static/chunks/057umwogp53v_.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><link rel="manifest" href="/manifest.webmanifest"/><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/0ocp.6r7w_saw.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[902063,[\"/_next/static/chunks/057umwogp53v_.js\"],\"default\"]\n3:I[259666,[\"/_next/static/chunks/057umwogp53v_.js\"],\"default\"]\n4:I[62711,[\"/_next/static/chunks/057umwogp53v_.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[62711,[\"/_next/static/chunks/057umwogp53v_.js\"],\"ViewportBoundary\"]\na:I[62711,[\"/_next/static/chunks/057umwogp53v_.js\"],\"MetadataBoundary\"]\nc:I[514743,[\"/_next/static/chunks/057umwogp53v_.js\"],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"
|
|
1
|
+
<!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0ocp.6r7w_saw.js"/><script src="/_next/static/chunks/0quh-cfcrp2ib.js" async=""></script><script src="/_next/static/chunks/0vp-ahhagxptc.js" async=""></script><script src="/_next/static/chunks/turbopack-12~z-mr7b9b50.js" async=""></script><script src="/_next/static/chunks/057umwogp53v_.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><link rel="manifest" href="/manifest.webmanifest"/><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/0ocp.6r7w_saw.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[902063,[\"/_next/static/chunks/057umwogp53v_.js\"],\"default\"]\n3:I[259666,[\"/_next/static/chunks/057umwogp53v_.js\"],\"default\"]\n4:I[62711,[\"/_next/static/chunks/057umwogp53v_.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[62711,[\"/_next/static/chunks/057umwogp53v_.js\"],\"ViewportBoundary\"]\na:I[62711,[\"/_next/static/chunks/057umwogp53v_.js\"],\"MetadataBoundary\"]\nc:I[514743,[\"/_next/static/chunks/057umwogp53v_.js\"],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"ucX5u3D8Ca9KdVyeRk_D_\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[[\"$\",\"link\",\"0\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}]]\n"])</script></body></html>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
8:I[62711,["/_next/static/chunks/057umwogp53v_.js"],"ViewportBoundary"]
|
|
7
7
|
a:I[62711,["/_next/static/chunks/057umwogp53v_.js"],"MetadataBoundary"]
|
|
8
8
|
c:I[514743,["/_next/static/chunks/057umwogp53v_.js"],"default",1]
|
|
9
|
-
0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"
|
|
9
|
+
0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"ucX5u3D8Ca9KdVyeRk_D_"}
|
|
10
10
|
d:[]
|
|
11
11
|
7:"$Wd"
|
|
12
12
|
9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
2
|
2:I[62711,["/_next/static/chunks/057umwogp53v_.js"],"OutletBoundary"]
|
|
3
3
|
3:"$Sreact.suspense"
|
|
4
|
-
0:{"rsc":["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"
|
|
4
|
+
0:{"rsc":["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"ucX5u3D8Ca9KdVyeRk_D_"}
|
|
5
5
|
4:null
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
8:I[62711,["/_next/static/chunks/057umwogp53v_.js"],"ViewportBoundary"]
|
|
7
7
|
a:I[62711,["/_next/static/chunks/057umwogp53v_.js"],"MetadataBoundary"]
|
|
8
8
|
c:I[514743,["/_next/static/chunks/057umwogp53v_.js"],"default",1]
|
|
9
|
-
0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"
|
|
9
|
+
0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"ucX5u3D8Ca9KdVyeRk_D_"}
|
|
10
10
|
d:[]
|
|
11
11
|
7:"$Wd"
|
|
12
12
|
9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
2:I[62711,["/_next/static/chunks/057umwogp53v_.js"],"ViewportBoundary"]
|
|
3
3
|
3:I[62711,["/_next/static/chunks/057umwogp53v_.js"],"MetadataBoundary"]
|
|
4
4
|
4:"$Sreact.suspense"
|
|
5
|
-
0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","link","0",{"rel":"manifest","href":"/manifest.webmanifest"}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"
|
|
5
|
+
0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","link","0",{"rel":"manifest","href":"/manifest.webmanifest"}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"ucX5u3D8Ca9KdVyeRk_D_"}
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
2:I[902063,["/_next/static/chunks/057umwogp53v_.js"],"default"]
|
|
3
3
|
3:I[259666,["/_next/static/chunks/057umwogp53v_.js"],"default"]
|
|
4
4
|
4:[]
|
|
5
|
-
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"
|
|
5
|
+
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"ucX5u3D8Ca9KdVyeRk_D_"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0:{"tree":{"name":"","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"
|
|
1
|
+
0:{"tree":{"name":"","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"ucX5u3D8Ca9KdVyeRk_D_"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {};
|
|
2
|
-
globalThis.__RSC_MANIFEST["/_not-found/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/client/components/layout-router.js <module evaluation>":{"id":902063,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/client/components/layout-router.js":{"id":902063,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/client/components/render-from-template-context.js <module evaluation>":{"id":259666,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":259666,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/client/components/client-page.js <module evaluation>":{"id":687919,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/client/components/client-page.js":{"id":687919,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/client/components/client-segment.js <module evaluation>":{"id":767206,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/client/components/client-segment.js":{"id":767206,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js <module evaluation>":{"id":845990,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":845990,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/lib/framework/boundary-components.js <module evaluation>":{"id":62711,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":62711,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js <module evaluation>":{"id":319772,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":319772,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/sonner@2.0.7_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/sonner/dist/index.mjs <module evaluation>":{"id":187014,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/sonner@2.0.7_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/sonner/dist/index.mjs":{"id":187014,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/src/components/theme-provider.tsx <module evaluation>":{"id":427423,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/src/components/theme-provider.tsx":{"id":427423,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/client/components/builtin/global-error.js <module evaluation>":{"id":514743,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/client/components/builtin/global-error.js":{"id":514743,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false}},"ssrModuleMapping":{"902063":{"*":{"id":800569,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0a3bjyp._.js","server/chunks/ssr/0p91_next_dist_0cdz3_i._.js","server/chunks/ssr/node_modules__pnpm_0bt7d39._.js"],"async":false}},"259666":{"*":{"id":692096,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0a3bjyp._.js","server/chunks/ssr/0p91_next_dist_0cdz3_i._.js","server/chunks/ssr/node_modules__pnpm_0bt7d39._.js"],"async":false}},"687919":{"*":{"id":910705,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0a3bjyp._.js","server/chunks/ssr/0p91_next_dist_0cdz3_i._.js","server/chunks/ssr/node_modules__pnpm_0bt7d39._.js"],"async":false}},"767206":{"*":{"id":973597,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0a3bjyp._.js","server/chunks/ssr/0p91_next_dist_0cdz3_i._.js","server/chunks/ssr/node_modules__pnpm_0bt7d39._.js"],"async":false}},"845990":{"*":{"id":456088,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0a3bjyp._.js","server/chunks/ssr/0p91_next_dist_0cdz3_i._.js","server/chunks/ssr/node_modules__pnpm_0bt7d39._.js"],"async":false}},"62711":{"*":{"id":42369,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0a3bjyp._.js","server/chunks/ssr/0p91_next_dist_0cdz3_i._.js","server/chunks/ssr/node_modules__pnpm_0bt7d39._.js"],"async":false}},"319772":{"*":{"id":302990,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0a3bjyp._.js","server/chunks/ssr/0p91_next_dist_0cdz3_i._.js","server/chunks/ssr/node_modules__pnpm_0bt7d39._.js"],"async":false}},"187014":{"*":{"id":263265,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0a3bjyp._.js","server/chunks/ssr/0p91_next_dist_0cdz3_i._.js","server/chunks/ssr/node_modules__pnpm_0bt7d39._.js"],"async":false}},"427423":{"*":{"id":301148,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0a3bjyp._.js","server/chunks/ssr/0p91_next_dist_0cdz3_i._.js","server/chunks/ssr/node_modules__pnpm_0bt7d39._.js"],"async":false}},"514743":{"*":{"id":33695,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0a3bjyp._.js","server/chunks/ssr/0p91_next_dist_0cdz3_i._.js","server/chunks/ssr/node_modules__pnpm_0bt7d39._.js","server/chunks/ssr/node_modules__pnpm_0z5l~h-._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"902063":{"*":{"id":898685,"name":"*","chunks":[],"async":false}},"259666":{"*":{"id":595703,"name":"*","chunks":[],"async":false}},"687919":{"*":{"id":608475,"name":"*","chunks":[],"async":false}},"767206":{"*":{"id":701451,"name":"*","chunks":[],"async":false}},"845990":{"*":{"id":210941,"name":"*","chunks":[],"async":false}},"62711":{"*":{"id":335288,"name":"*","chunks":[],"async":false}},"319772":{"*":{"id":385836,"name":"*","chunks":[],"async":false}},"187014":{"*":{"id":508023,"name":"*","chunks":[],"async":false}},"427423":{"*":{"id":425790,"name":"*","chunks":[],"async":false}},"514743":{"*":{"id":316138,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/app/layout":[{"path":"static/chunks/0g3kmqqu.d0cc.css","inlined":false}],"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/client/components/builtin/global-error":[{"path":"static/chunks/0g3kmqqu.d0cc.css","inlined":false}]},"entryJSFiles":{"[project]/src/app/layout":["static/chunks/0umlolnxs~j3r.js","static/chunks/057umwogp53v_.js","static/chunks/0ky8fha87kp0_.js"],"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/0umlolnxs~j3r.js","static/chunks/057umwogp53v_.js","static/chunks/0ky8fha87kp0_.js"]}};
|
|
2
|
+
globalThis.__RSC_MANIFEST["/_not-found/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/client/components/layout-router.js <module evaluation>":{"id":902063,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/client/components/layout-router.js":{"id":902063,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/client/components/render-from-template-context.js <module evaluation>":{"id":259666,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":259666,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/client/components/client-page.js <module evaluation>":{"id":687919,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/client/components/client-page.js":{"id":687919,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/client/components/client-segment.js <module evaluation>":{"id":767206,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/client/components/client-segment.js":{"id":767206,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js <module evaluation>":{"id":845990,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":845990,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/lib/framework/boundary-components.js <module evaluation>":{"id":62711,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":62711,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js <module evaluation>":{"id":319772,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":319772,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/sonner@2.0.7_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/sonner/dist/index.mjs <module evaluation>":{"id":187014,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/sonner@2.0.7_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/sonner/dist/index.mjs":{"id":187014,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/src/components/theme-provider.tsx <module evaluation>":{"id":427423,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/src/components/theme-provider.tsx":{"id":427423,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/client/components/builtin/global-error.js <module evaluation>":{"id":514743,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false},"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/client/components/builtin/global-error.js":{"id":514743,"name":"*","chunks":["/_next/static/chunks/0umlolnxs~j3r.js","/_next/static/chunks/057umwogp53v_.js","/_next/static/chunks/0ky8fha87kp0_.js"],"async":false}},"ssrModuleMapping":{"902063":{"*":{"id":800569,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0a3bjyp._.js","server/chunks/ssr/0p91_next_dist_0cdz3_i._.js","server/chunks/ssr/node_modules__pnpm_0bt7d39._.js"],"async":false}},"259666":{"*":{"id":692096,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0a3bjyp._.js","server/chunks/ssr/0p91_next_dist_0cdz3_i._.js","server/chunks/ssr/node_modules__pnpm_0bt7d39._.js"],"async":false}},"687919":{"*":{"id":910705,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0a3bjyp._.js","server/chunks/ssr/0p91_next_dist_0cdz3_i._.js","server/chunks/ssr/node_modules__pnpm_0bt7d39._.js"],"async":false}},"767206":{"*":{"id":973597,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0a3bjyp._.js","server/chunks/ssr/0p91_next_dist_0cdz3_i._.js","server/chunks/ssr/node_modules__pnpm_0bt7d39._.js"],"async":false}},"845990":{"*":{"id":456088,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0a3bjyp._.js","server/chunks/ssr/0p91_next_dist_0cdz3_i._.js","server/chunks/ssr/node_modules__pnpm_0bt7d39._.js"],"async":false}},"62711":{"*":{"id":42369,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0a3bjyp._.js","server/chunks/ssr/0p91_next_dist_0cdz3_i._.js","server/chunks/ssr/node_modules__pnpm_0bt7d39._.js"],"async":false}},"319772":{"*":{"id":302990,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0a3bjyp._.js","server/chunks/ssr/0p91_next_dist_0cdz3_i._.js","server/chunks/ssr/node_modules__pnpm_0bt7d39._.js"],"async":false}},"187014":{"*":{"id":263265,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0a3bjyp._.js","server/chunks/ssr/0p91_next_dist_0cdz3_i._.js","server/chunks/ssr/node_modules__pnpm_0bt7d39._.js"],"async":false}},"427423":{"*":{"id":301148,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0a3bjyp._.js","server/chunks/ssr/0p91_next_dist_0cdz3_i._.js","server/chunks/ssr/node_modules__pnpm_0bt7d39._.js"],"async":false}},"514743":{"*":{"id":33695,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__0a3bjyp._.js","server/chunks/ssr/0p91_next_dist_0cdz3_i._.js","server/chunks/ssr/node_modules__pnpm_0bt7d39._.js","server/chunks/ssr/node_modules__pnpm_0z5l~h-._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"902063":{"*":{"id":898685,"name":"*","chunks":[],"async":false}},"259666":{"*":{"id":595703,"name":"*","chunks":[],"async":false}},"687919":{"*":{"id":608475,"name":"*","chunks":[],"async":false}},"767206":{"*":{"id":701451,"name":"*","chunks":[],"async":false}},"845990":{"*":{"id":210941,"name":"*","chunks":[],"async":false}},"62711":{"*":{"id":335288,"name":"*","chunks":[],"async":false}},"319772":{"*":{"id":385836,"name":"*","chunks":[],"async":false}},"187014":{"*":{"id":508023,"name":"*","chunks":[],"async":false}},"427423":{"*":{"id":425790,"name":"*","chunks":[],"async":false}},"514743":{"*":{"id":316138,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/src/app/layout":[{"path":"static/chunks/0.9~g4nvqt9if.css","inlined":false}],"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/client/components/builtin/global-error":[{"path":"static/chunks/0.9~g4nvqt9if.css","inlined":false}]},"entryJSFiles":{"[project]/src/app/layout":["static/chunks/0umlolnxs~j3r.js","static/chunks/057umwogp53v_.js","static/chunks/0ky8fha87kp0_.js"],"[project]/node_modules/.pnpm/next@16.2.4_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/next/dist/client/components/builtin/global-error":["static/chunks/0umlolnxs~j3r.js","static/chunks/057umwogp53v_.js","static/chunks/0ky8fha87kp0_.js"]}};
|
|
3
3
|
|