@infinitedusky/indusk-mcp 1.31.8 → 1.31.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/admin/.next/BUILD_ID +1 -1
  2. package/admin/.next/build-manifest.json +3 -3
  3. package/admin/.next/fallback-build-manifest.json +3 -3
  4. package/admin/.next/server/app/_global-error.html +1 -1
  5. package/admin/.next/server/app/_global-error.rsc +1 -1
  6. package/admin/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/admin/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/admin/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  9. package/admin/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  10. package/admin/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/admin/.next/server/middleware-build-manifest.js +3 -3
  12. package/admin/.next/server/pages/500.html +1 -1
  13. package/admin/.next/trace +1 -1
  14. package/admin/.next/trace-build +1 -1
  15. package/dist/bin/cli.js +17 -0
  16. package/dist/bin/commands/prune.d.ts +20 -0
  17. package/dist/bin/commands/prune.js +121 -0
  18. package/dist/lib/eval/persistent-evaluator.js +9 -2
  19. package/dist/lib/prune/measure.d.ts +68 -0
  20. package/dist/lib/prune/measure.js +179 -0
  21. package/extensions/worktree/scripts/wt.sh +56 -9
  22. package/hooks/_hook-paths.js +65 -6
  23. package/package.json +1 -1
  24. package/skills/retrospective.md +32 -0
  25. /package/admin/.next/static/{rBO82tgC1ec6duziqb0_O → V1Q5UoD4oB6LEf_Sjt3D5}/_buildManifest.js +0 -0
  26. /package/admin/.next/static/{rBO82tgC1ec6duziqb0_O → V1Q5UoD4oB6LEf_Sjt3D5}/_clientMiddlewareManifest.js +0 -0
  27. /package/admin/.next/static/{rBO82tgC1ec6duziqb0_O → V1Q5UoD4oB6LEf_Sjt3D5}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- rBO82tgC1ec6duziqb0_O
1
+ V1Q5UoD4oB6LEf_Sjt3D5
@@ -7,9 +7,9 @@
7
7
  "static/chunks/03~yq9q893hmn.js"
8
8
  ],
9
9
  "lowPriorityFiles": [
10
- "static/rBO82tgC1ec6duziqb0_O/_buildManifest.js",
11
- "static/rBO82tgC1ec6duziqb0_O/_ssgManifest.js",
12
- "static/rBO82tgC1ec6duziqb0_O/_clientMiddlewareManifest.js"
10
+ "static/V1Q5UoD4oB6LEf_Sjt3D5/_buildManifest.js",
11
+ "static/V1Q5UoD4oB6LEf_Sjt3D5/_ssgManifest.js",
12
+ "static/V1Q5UoD4oB6LEf_Sjt3D5/_clientMiddlewareManifest.js"
13
13
  ],
14
14
  "rootMainFiles": [
15
15
  "static/chunks/0_yzfo7pu205m.js",
@@ -5,9 +5,9 @@
5
5
  "devFiles": [],
6
6
  "polyfillFiles": [],
7
7
  "lowPriorityFiles": [
8
- "static/rBO82tgC1ec6duziqb0_O/_buildManifest.js",
9
- "static/rBO82tgC1ec6duziqb0_O/_ssgManifest.js",
10
- "static/rBO82tgC1ec6duziqb0_O/_clientMiddlewareManifest.js"
8
+ "static/V1Q5UoD4oB6LEf_Sjt3D5/_buildManifest.js",
9
+ "static/V1Q5UoD4oB6LEf_Sjt3D5/_ssgManifest.js",
10
+ "static/V1Q5UoD4oB6LEf_Sjt3D5/_clientMiddlewareManifest.js"
11
11
  ],
12
12
  "rootMainFiles": []
13
13
  }
@@ -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/0_yzfo7pu205m.js"/><script src="/_next/static/chunks/0_r.3~d-5z8~_.js" async=""></script><script src="/_next/static/chunks/0u1lny1.4-f8c.js" async=""></script><script src="/_next/static/chunks/036h9~rhidv.e.js" async=""></script><script src="/_next/static/chunks/turbopack-129yl57l2cd7_.js" async=""></script><script src="/_next/static/chunks/0.v8w524wvk94.js" async=""></script><script src="/_next/static/chunks/0z9652tpun_.d.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><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,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;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/0_yzfo7pu205m.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[85530,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"default\"]\n3:I[50571,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"default\"]\n4:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"ViewportBoundary\"]\na:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"MetadataBoundary\"]\nc:I[59179,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.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\":\"rBO82tgC1ec6duziqb0_O\"}\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,"e:I[61299,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"link\",\"0\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Le\",\"1\",{}]]\n"])</script></body></html>
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/0_yzfo7pu205m.js"/><script src="/_next/static/chunks/0_r.3~d-5z8~_.js" async=""></script><script src="/_next/static/chunks/0u1lny1.4-f8c.js" async=""></script><script src="/_next/static/chunks/036h9~rhidv.e.js" async=""></script><script src="/_next/static/chunks/turbopack-129yl57l2cd7_.js" async=""></script><script src="/_next/static/chunks/0.v8w524wvk94.js" async=""></script><script src="/_next/static/chunks/0z9652tpun_.d.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><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,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;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/0_yzfo7pu205m.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[85530,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"default\"]\n3:I[50571,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"default\"]\n4:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"ViewportBoundary\"]\na:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"MetadataBoundary\"]\nc:I[59179,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.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\":\"V1Q5UoD4oB6LEf_Sjt3D5\"}\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,"e:I[61299,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"link\",\"0\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Le\",\"1\",{}]]\n"])</script></body></html>
@@ -6,7 +6,7 @@
6
6
  8:I[76614,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0z9652tpun_.d.js"],"ViewportBoundary"]
7
7
  a:I[76614,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0z9652tpun_.d.js"],"MetadataBoundary"]
8
8
  c:I[59179,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0z9652tpun_.d.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":"rBO82tgC1ec6duziqb0_O"}
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":"V1Q5UoD4oB6LEf_Sjt3D5"}
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[76614,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0z9652tpun_.d.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":"rBO82tgC1ec6duziqb0_O"}
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":"V1Q5UoD4oB6LEf_Sjt3D5"}
5
5
  4:null
@@ -6,7 +6,7 @@
6
6
  8:I[76614,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0z9652tpun_.d.js"],"ViewportBoundary"]
7
7
  a:I[76614,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0z9652tpun_.d.js"],"MetadataBoundary"]
8
8
  c:I[59179,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0z9652tpun_.d.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":"rBO82tgC1ec6duziqb0_O"}
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":"V1Q5UoD4oB6LEf_Sjt3D5"}
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"}]]
@@ -3,4 +3,4 @@
3
3
  3:I[76614,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0z9652tpun_.d.js"],"MetadataBoundary"]
4
4
  4:"$Sreact.suspense"
5
5
  5:I[61299,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0z9652tpun_.d.js"],"IconMark"]
6
- 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":"icon","href":"/favicon.ico?favicon.0x3dzn~oxb6tn.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L5","1",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"rBO82tgC1ec6duziqb0_O"}
6
+ 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":"icon","href":"/favicon.ico?favicon.0x3dzn~oxb6tn.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L5","1",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"V1Q5UoD4oB6LEf_Sjt3D5"}
@@ -2,4 +2,4 @@
2
2
  2:I[85530,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0z9652tpun_.d.js"],"default"]
3
3
  3:I[50571,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0z9652tpun_.d.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":"rBO82tgC1ec6duziqb0_O"}
5
+ 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"V1Q5UoD4oB6LEf_Sjt3D5"}
@@ -1 +1 @@
1
- 0:{"tree":{"name":"","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"rBO82tgC1ec6duziqb0_O"}
1
+ 0:{"tree":{"name":"","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"V1Q5UoD4oB6LEf_Sjt3D5"}
@@ -7,9 +7,9 @@ globalThis.__BUILD_MANIFEST = {
7
7
  "static/chunks/03~yq9q893hmn.js"
8
8
  ],
9
9
  "lowPriorityFiles": [
10
- "static/rBO82tgC1ec6duziqb0_O/_buildManifest.js",
11
- "static/rBO82tgC1ec6duziqb0_O/_ssgManifest.js",
12
- "static/rBO82tgC1ec6duziqb0_O/_clientMiddlewareManifest.js"
10
+ "static/V1Q5UoD4oB6LEf_Sjt3D5/_buildManifest.js",
11
+ "static/V1Q5UoD4oB6LEf_Sjt3D5/_ssgManifest.js",
12
+ "static/V1Q5UoD4oB6LEf_Sjt3D5/_clientMiddlewareManifest.js"
13
13
  ],
14
14
  "rootMainFiles": [
15
15
  "static/chunks/0_yzfo7pu205m.js",
@@ -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/0_yzfo7pu205m.js"/><script src="/_next/static/chunks/0_r.3~d-5z8~_.js" async=""></script><script src="/_next/static/chunks/0u1lny1.4-f8c.js" async=""></script><script src="/_next/static/chunks/036h9~rhidv.e.js" async=""></script><script src="/_next/static/chunks/turbopack-129yl57l2cd7_.js" async=""></script><script src="/_next/static/chunks/0.v8w524wvk94.js" async=""></script><script src="/_next/static/chunks/0z9652tpun_.d.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><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,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;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/0_yzfo7pu205m.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[85530,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"default\"]\n3:I[50571,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"default\"]\n4:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"ViewportBoundary\"]\na:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"MetadataBoundary\"]\nc:I[59179,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.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\":\"rBO82tgC1ec6duziqb0_O\"}\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,"e:I[61299,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"link\",\"0\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Le\",\"1\",{}]]\n"])</script></body></html>
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/0_yzfo7pu205m.js"/><script src="/_next/static/chunks/0_r.3~d-5z8~_.js" async=""></script><script src="/_next/static/chunks/0u1lny1.4-f8c.js" async=""></script><script src="/_next/static/chunks/036h9~rhidv.e.js" async=""></script><script src="/_next/static/chunks/turbopack-129yl57l2cd7_.js" async=""></script><script src="/_next/static/chunks/0.v8w524wvk94.js" async=""></script><script src="/_next/static/chunks/0z9652tpun_.d.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><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,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;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/0_yzfo7pu205m.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[85530,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"default\"]\n3:I[50571,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"default\"]\n4:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"ViewportBoundary\"]\na:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"MetadataBoundary\"]\nc:I[59179,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.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\":\"V1Q5UoD4oB6LEf_Sjt3D5\"}\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,"e:I[61299,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"link\",\"0\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Le\",\"1\",{}]]\n"])</script></body></html>
package/admin/.next/trace CHANGED
@@ -1 +1 @@
1
- [{"name":"generate-buildid","duration":130,"timestamp":1834582928227,"id":4,"parentId":1,"tags":{},"startTime":1782675081336,"traceId":"d8ade23c73ee4ab9"},{"name":"load-custom-routes","duration":229,"timestamp":1834582928420,"id":5,"parentId":1,"tags":{},"startTime":1782675081336,"traceId":"d8ade23c73ee4ab9"},{"name":"create-dist-dir","duration":125,"timestamp":1834582928664,"id":6,"parentId":1,"tags":{},"startTime":1782675081337,"traceId":"d8ade23c73ee4ab9"},{"name":"clean","duration":38952,"timestamp":1834582929255,"id":7,"parentId":1,"tags":{},"startTime":1782675081337,"traceId":"d8ade23c73ee4ab9"},{"name":"discover-routes","duration":4223,"timestamp":1834582973791,"id":8,"parentId":1,"tags":{},"startTime":1782675081382,"traceId":"d8ade23c73ee4ab9"},{"name":"create-root-mapping","duration":30,"timestamp":1834582978042,"id":9,"parentId":1,"tags":{},"startTime":1782675081386,"traceId":"d8ade23c73ee4ab9"},{"name":"generate-route-types","duration":13989,"timestamp":1834582978833,"id":10,"parentId":1,"tags":{},"startTime":1782675081387,"traceId":"d8ade23c73ee4ab9"},{"name":"public-dir-conflict-check","duration":39,"timestamp":1834582992869,"id":11,"parentId":1,"tags":{},"startTime":1782675081401,"traceId":"d8ade23c73ee4ab9"},{"name":"generate-routes-manifest","duration":1049,"timestamp":1834582992946,"id":12,"parentId":1,"tags":{},"startTime":1782675081401,"traceId":"d8ade23c73ee4ab9"},{"name":"run-turbopack","duration":3157037,"timestamp":1834582995877,"id":14,"parentId":1,"tags":{},"startTime":1782675081404,"traceId":"d8ade23c73ee4ab9"},{"name":"turbopack-build-events","duration":56,"timestamp":1834583179797,"id":15,"parentId":1,"tags":{},"startTime":1782675081588,"traceId":"d8ade23c73ee4ab9"},{"name":"run-typescript","duration":3126898,"timestamp":1834586193720,"id":16,"parentId":1,"tags":{},"startTime":1782675084602,"traceId":"d8ade23c73ee4ab9"},{"name":"generate-required-server-files","duration":936,"timestamp":1834589322216,"id":18,"parentId":1,"tags":{},"startTime":1782675087730,"traceId":"d8ade23c73ee4ab9"},{"name":"check-static-error-page","duration":4556,"timestamp":1834589345329,"id":20,"parentId":19,"tags":{},"startTime":1782675087753,"traceId":"d8ade23c73ee4ab9"},{"name":"is-page-static","duration":306829,"timestamp":1834589360335,"id":30,"parentId":22,"tags":{},"startTime":1782675087768,"traceId":"d8ade23c73ee4ab9"},{"name":"check-page","duration":318908,"timestamp":1834589348376,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1782675087756,"traceId":"d8ade23c73ee4ab9"},{"name":"is-page-static","duration":368254,"timestamp":1834589360362,"id":31,"parentId":23,"tags":{},"startTime":1782675087768,"traceId":"d8ade23c73ee4ab9"},{"name":"check-page","duration":379845,"timestamp":1834589348841,"id":23,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1782675087757,"traceId":"d8ade23c73ee4ab9"},{"name":"is-page-static","duration":376528,"timestamp":1834589369928,"id":36,"parentId":27,"tags":{},"startTime":1782675087778,"traceId":"d8ade23c73ee4ab9"},{"name":"check-page","duration":396753,"timestamp":1834589349767,"id":27,"parentId":19,"tags":{"page":"/p/[project]/scorecards"},"startTime":1782675087758,"traceId":"d8ade23c73ee4ab9"},{"name":"is-page-static","duration":398362,"timestamp":1834589360184,"id":29,"parentId":21,"tags":{},"startTime":1782675087768,"traceId":"d8ade23c73ee4ab9"},{"name":"check-page","duration":412835,"timestamp":1834589345847,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1782675087754,"traceId":"d8ade23c73ee4ab9"},{"name":"is-page-static","duration":397452,"timestamp":1834589369276,"id":32,"parentId":28,"tags":{},"startTime":1782675087777,"traceId":"d8ade23c73ee4ab9"},{"name":"check-page","duration":416939,"timestamp":1834589349827,"id":28,"parentId":19,"tags":{"page":"/"},"startTime":1782675087758,"traceId":"d8ade23c73ee4ab9"},{"name":"is-page-static","duration":397454,"timestamp":1834589369380,"id":33,"parentId":24,"tags":{},"startTime":1782675087777,"traceId":"d8ade23c73ee4ab9"},{"name":"check-page","duration":417339,"timestamp":1834589349519,"id":24,"parentId":19,"tags":{"page":"/p/[project]"},"startTime":1782675087757,"traceId":"d8ade23c73ee4ab9"},{"name":"is-page-static","duration":400818,"timestamp":1834589369445,"id":35,"parentId":26,"tags":{},"startTime":1782675087777,"traceId":"d8ade23c73ee4ab9"},{"name":"check-page","duration":420593,"timestamp":1834589349711,"id":26,"parentId":19,"tags":{"page":"/p/[project]/research/[slug]"},"startTime":1782675087758,"traceId":"d8ade23c73ee4ab9"},{"name":"is-page-static","duration":413665,"timestamp":1834589369417,"id":34,"parentId":25,"tags":{},"startTime":1782675087777,"traceId":"d8ade23c73ee4ab9"},{"name":"check-page","duration":433509,"timestamp":1834589349648,"id":25,"parentId":19,"tags":{"page":"/p/[project]/plan/[name]"},"startTime":1782675087758,"traceId":"d8ade23c73ee4ab9"},{"name":"static-check","duration":438220,"timestamp":1834589344981,"id":19,"parentId":1,"tags":{},"startTime":1782675087753,"traceId":"d8ade23c73ee4ab9"},{"name":"write-routes-manifest","duration":825,"timestamp":1834589784780,"id":38,"parentId":1,"tags":{},"startTime":1782675088193,"traceId":"d8ade23c73ee4ab9"},{"name":"load-dotenv","duration":25,"timestamp":1834589794486,"id":41,"parentId":40,"tags":{},"startTime":1782675088202,"traceId":"d8ade23c73ee4ab9"},{"name":"run-export-path-map","duration":237,"timestamp":1834589796051,"id":42,"parentId":40,"tags":{},"startTime":1782675088204,"traceId":"d8ade23c73ee4ab9"},{"name":"next-export","duration":231718,"timestamp":1834589793916,"id":40,"parentId":1,"tags":{},"startTime":1782675088202,"traceId":"d8ade23c73ee4ab9"},{"name":"move-exported-app-global-error-","duration":418,"timestamp":1834590026262,"id":43,"parentId":39,"tags":{},"startTime":1782675088434,"traceId":"d8ade23c73ee4ab9"},{"name":"static-generation","duration":239874,"timestamp":1834589787994,"id":39,"parentId":1,"tags":{},"startTime":1782675088196,"traceId":"d8ade23c73ee4ab9"},{"name":"write-routes-manifest","duration":275,"timestamp":1834590028002,"id":44,"parentId":1,"tags":{},"startTime":1782675088436,"traceId":"d8ade23c73ee4ab9"},{"name":"print-tree-view","duration":2110,"timestamp":1834590038251,"id":45,"parentId":1,"tags":{},"startTime":1782675088446,"traceId":"d8ade23c73ee4ab9"},{"name":"write-route-bundle-stats","duration":5359,"timestamp":1834590040376,"id":46,"parentId":1,"tags":{},"startTime":1782675088448,"traceId":"d8ade23c73ee4ab9"},{"name":"telemetry-flush","duration":484736,"timestamp":1834590045770,"id":47,"parentId":1,"tags":{},"startTime":1782675088454,"traceId":"d8ade23c73ee4ab9"},{"name":"next-build","duration":7714549,"timestamp":1834582815991,"id":1,"tags":{"buildMode":"default","version":"16.2.4","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1782675081224,"traceId":"d8ade23c73ee4ab9"}]
1
+ [{"name":"generate-buildid","duration":115,"timestamp":1901826913649,"id":4,"parentId":1,"tags":{},"startTime":1782742325292,"traceId":"565ab8c2e433cc4b"},{"name":"load-custom-routes","duration":271,"timestamp":1901826913831,"id":5,"parentId":1,"tags":{},"startTime":1782742325292,"traceId":"565ab8c2e433cc4b"},{"name":"create-dist-dir","duration":88,"timestamp":1901826914118,"id":6,"parentId":1,"tags":{},"startTime":1782742325293,"traceId":"565ab8c2e433cc4b"},{"name":"clean","duration":54771,"timestamp":1901826914974,"id":7,"parentId":1,"tags":{},"startTime":1782742325294,"traceId":"565ab8c2e433cc4b"},{"name":"discover-routes","duration":7442,"timestamp":1901826976535,"id":8,"parentId":1,"tags":{},"startTime":1782742325355,"traceId":"565ab8c2e433cc4b"},{"name":"create-root-mapping","duration":40,"timestamp":1901826984019,"id":9,"parentId":1,"tags":{},"startTime":1782742325363,"traceId":"565ab8c2e433cc4b"},{"name":"generate-route-types","duration":10862,"timestamp":1901826984718,"id":10,"parentId":1,"tags":{},"startTime":1782742325363,"traceId":"565ab8c2e433cc4b"},{"name":"public-dir-conflict-check","duration":60,"timestamp":1901826995644,"id":11,"parentId":1,"tags":{},"startTime":1782742325374,"traceId":"565ab8c2e433cc4b"},{"name":"generate-routes-manifest","duration":1363,"timestamp":1901826995770,"id":12,"parentId":1,"tags":{},"startTime":1782742325374,"traceId":"565ab8c2e433cc4b"},{"name":"run-turbopack","duration":2422058,"timestamp":1901827001790,"id":14,"parentId":1,"tags":{},"startTime":1782742325380,"traceId":"565ab8c2e433cc4b"},{"name":"turbopack-build-events","duration":43,"timestamp":1901827155604,"id":15,"parentId":1,"tags":{},"startTime":1782742325534,"traceId":"565ab8c2e433cc4b"},{"name":"run-typescript","duration":2244021,"timestamp":1901829452158,"id":16,"parentId":1,"tags":{},"startTime":1782742327831,"traceId":"565ab8c2e433cc4b"},{"name":"generate-required-server-files","duration":603,"timestamp":1901831697084,"id":18,"parentId":1,"tags":{},"startTime":1782742330076,"traceId":"565ab8c2e433cc4b"},{"name":"check-static-error-page","duration":1972,"timestamp":1901831719182,"id":20,"parentId":19,"tags":{},"startTime":1782742330098,"traceId":"565ab8c2e433cc4b"},{"name":"is-page-static","duration":235906,"timestamp":1901831728005,"id":30,"parentId":22,"tags":{},"startTime":1782742330107,"traceId":"565ab8c2e433cc4b"},{"name":"check-page","duration":243460,"timestamp":1901831720536,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1782742330099,"traceId":"565ab8c2e433cc4b"},{"name":"is-page-static","duration":248735,"timestamp":1901831728037,"id":31,"parentId":23,"tags":{},"startTime":1782742330107,"traceId":"565ab8c2e433cc4b"},{"name":"check-page","duration":256073,"timestamp":1901831720734,"id":23,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1782742330099,"traceId":"565ab8c2e433cc4b"},{"name":"is-page-static","duration":252902,"timestamp":1901831727848,"id":29,"parentId":21,"tags":{},"startTime":1782742330106,"traceId":"565ab8c2e433cc4b"},{"name":"check-page","duration":261188,"timestamp":1901831719666,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1782742330098,"traceId":"565ab8c2e433cc4b"},{"name":"is-page-static","duration":248795,"timestamp":1901831736822,"id":32,"parentId":28,"tags":{},"startTime":1782742330115,"traceId":"565ab8c2e433cc4b"},{"name":"check-page","duration":264536,"timestamp":1901831721112,"id":28,"parentId":19,"tags":{"page":"/"},"startTime":1782742330100,"traceId":"565ab8c2e433cc4b"},{"name":"is-page-static","duration":259461,"timestamp":1901831736906,"id":33,"parentId":24,"tags":{},"startTime":1782742330116,"traceId":"565ab8c2e433cc4b"},{"name":"check-page","duration":275480,"timestamp":1901831720947,"id":24,"parentId":19,"tags":{"page":"/p/[project]"},"startTime":1782742330100,"traceId":"565ab8c2e433cc4b"},{"name":"is-page-static","duration":265716,"timestamp":1901831736934,"id":34,"parentId":25,"tags":{},"startTime":1782742330116,"traceId":"565ab8c2e433cc4b"},{"name":"check-page","duration":281734,"timestamp":1901831720987,"id":25,"parentId":19,"tags":{"page":"/p/[project]/plan/[name]"},"startTime":1782742330100,"traceId":"565ab8c2e433cc4b"},{"name":"is-page-static","duration":266855,"timestamp":1901831736965,"id":35,"parentId":26,"tags":{},"startTime":1782742330116,"traceId":"565ab8c2e433cc4b"},{"name":"check-page","duration":282812,"timestamp":1901831721029,"id":26,"parentId":19,"tags":{"page":"/p/[project]/research/[slug]"},"startTime":1782742330100,"traceId":"565ab8c2e433cc4b"},{"name":"is-page-static","duration":280219,"timestamp":1901831736995,"id":36,"parentId":27,"tags":{},"startTime":1782742330116,"traceId":"565ab8c2e433cc4b"},{"name":"check-page","duration":296188,"timestamp":1901831721064,"id":27,"parentId":19,"tags":{"page":"/p/[project]/scorecards"},"startTime":1782742330100,"traceId":"565ab8c2e433cc4b"},{"name":"static-check","duration":298454,"timestamp":1901831718814,"id":19,"parentId":1,"tags":{},"startTime":1782742330097,"traceId":"565ab8c2e433cc4b"},{"name":"write-routes-manifest","duration":368,"timestamp":1901832018290,"id":38,"parentId":1,"tags":{},"startTime":1782742330397,"traceId":"565ab8c2e433cc4b"},{"name":"load-dotenv","duration":18,"timestamp":1901832024830,"id":41,"parentId":40,"tags":{},"startTime":1782742330403,"traceId":"565ab8c2e433cc4b"},{"name":"run-export-path-map","duration":200,"timestamp":1901832026271,"id":42,"parentId":40,"tags":{},"startTime":1782742330405,"traceId":"565ab8c2e433cc4b"},{"name":"next-export","duration":205503,"timestamp":1901832024271,"id":40,"parentId":1,"tags":{},"startTime":1782742330403,"traceId":"565ab8c2e433cc4b"},{"name":"move-exported-app-global-error-","duration":449,"timestamp":1901832230429,"id":43,"parentId":39,"tags":{},"startTime":1782742330609,"traceId":"565ab8c2e433cc4b"},{"name":"static-generation","duration":211607,"timestamp":1901832020153,"id":39,"parentId":1,"tags":{},"startTime":1782742330399,"traceId":"565ab8c2e433cc4b"},{"name":"write-routes-manifest","duration":269,"timestamp":1901832231848,"id":44,"parentId":1,"tags":{},"startTime":1782742330610,"traceId":"565ab8c2e433cc4b"},{"name":"print-tree-view","duration":2540,"timestamp":1901832238760,"id":45,"parentId":1,"tags":{},"startTime":1782742330617,"traceId":"565ab8c2e433cc4b"},{"name":"write-route-bundle-stats","duration":6062,"timestamp":1901832241316,"id":46,"parentId":1,"tags":{},"startTime":1782742330620,"traceId":"565ab8c2e433cc4b"},{"name":"telemetry-flush","duration":486424,"timestamp":1901832247392,"id":47,"parentId":1,"tags":{},"startTime":1782742330626,"traceId":"565ab8c2e433cc4b"},{"name":"next-build","duration":5917601,"timestamp":1901826816285,"id":1,"tags":{"buildMode":"default","version":"16.2.4","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1782742325195,"traceId":"565ab8c2e433cc4b"}]
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":3157037,"timestamp":1834582995877,"id":14,"parentId":1,"tags":{},"startTime":1782675081404,"traceId":"d8ade23c73ee4ab9"},{"name":"turbopack-build-events","duration":56,"timestamp":1834583179797,"id":15,"parentId":1,"tags":{},"startTime":1782675081588,"traceId":"d8ade23c73ee4ab9"},{"name":"run-typescript","duration":3126898,"timestamp":1834586193720,"id":16,"parentId":1,"tags":{},"startTime":1782675084602,"traceId":"d8ade23c73ee4ab9"},{"name":"static-check","duration":438220,"timestamp":1834589344981,"id":19,"parentId":1,"tags":{},"startTime":1782675087753,"traceId":"d8ade23c73ee4ab9"},{"name":"static-generation","duration":239874,"timestamp":1834589787994,"id":39,"parentId":1,"tags":{},"startTime":1782675088196,"traceId":"d8ade23c73ee4ab9"},{"name":"telemetry-flush","duration":484736,"timestamp":1834590045770,"id":47,"parentId":1,"tags":{},"startTime":1782675088454,"traceId":"d8ade23c73ee4ab9"},{"name":"next-build","duration":7714549,"timestamp":1834582815991,"id":1,"tags":{"buildMode":"default","version":"16.2.4","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1782675081224,"traceId":"d8ade23c73ee4ab9"}]
1
+ [{"name":"run-turbopack","duration":2422058,"timestamp":1901827001790,"id":14,"parentId":1,"tags":{},"startTime":1782742325380,"traceId":"565ab8c2e433cc4b"},{"name":"turbopack-build-events","duration":43,"timestamp":1901827155604,"id":15,"parentId":1,"tags":{},"startTime":1782742325534,"traceId":"565ab8c2e433cc4b"},{"name":"run-typescript","duration":2244021,"timestamp":1901829452158,"id":16,"parentId":1,"tags":{},"startTime":1782742327831,"traceId":"565ab8c2e433cc4b"},{"name":"static-check","duration":298454,"timestamp":1901831718814,"id":19,"parentId":1,"tags":{},"startTime":1782742330097,"traceId":"565ab8c2e433cc4b"},{"name":"static-generation","duration":211607,"timestamp":1901832020153,"id":39,"parentId":1,"tags":{},"startTime":1782742330399,"traceId":"565ab8c2e433cc4b"},{"name":"telemetry-flush","duration":486424,"timestamp":1901832247392,"id":47,"parentId":1,"tags":{},"startTime":1782742330626,"traceId":"565ab8c2e433cc4b"},{"name":"next-build","duration":5917601,"timestamp":1901826816285,"id":1,"tags":{"buildMode":"default","version":"16.2.4","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1782742325195,"traceId":"565ab8c2e433cc4b"}]
package/dist/bin/cli.js CHANGED
@@ -69,6 +69,23 @@ program
69
69
  const { upgrade } = await import("./commands/upgrade.js");
70
70
  await upgrade({ force: opts.force === true });
71
71
  });
72
+ program
73
+ .command("prune")
74
+ .description("Audit auto-loaded context bloat (CLAUDE.md sections, lessons, current.md). --dry-run is the default and only mode in this version; no destructive action.")
75
+ .option("--dry-run", "Report only, no destructive action (default; only mode in this version)", true)
76
+ .option("--large-section-chars <n>", "Flag CLAUDE.md sections larger than this many chars (default 4000)", (v) => Number.parseInt(v, 10))
77
+ .option("--stale-lesson-days <n>", "Flag lessons untouched for more than this many days (default 180)", (v) => Number.parseInt(v, 10))
78
+ .option("--stale-section-days <n>", "Flag current.md per-agent sections whose lastUpdated is older than this (default 7)", (v) => Number.parseInt(v, 10))
79
+ .action(async function () {
80
+ const opts = this.opts();
81
+ const { prune } = await import("./commands/prune.js");
82
+ await prune(rootOrExit(), {
83
+ dryRun: opts.dryRun !== false,
84
+ largeSectionChars: opts.largeSectionChars,
85
+ staleLessonDays: opts.staleLessonDays,
86
+ staleSectionDays: opts.staleSectionDays,
87
+ });
88
+ });
72
89
  const ext = program
73
90
  .command("extensions")
74
91
  .description("Manage extensions (built-in and third-party)");
@@ -0,0 +1,20 @@
1
+ /**
2
+ * `indusk prune --dry-run` — context-budget measurement surface.
3
+ *
4
+ * Reports CLAUDE.md size by section, per-lesson ages, per-current-md-section
5
+ * ages, and total auto-loaded bytes. Recommends manual cleanup commands.
6
+ *
7
+ * `--dry-run` is the DEFAULT — no destructive action in v1. Auto-pruning
8
+ * (`--apply`) is intentionally deferred to a future architectural plan
9
+ * (Piece 3 of context-budget). v1 surfaces; operator decides.
10
+ *
11
+ * See `.indusk/planning/context-budget/` for full design.
12
+ */
13
+ interface PruneOptions {
14
+ dryRun?: boolean;
15
+ largeSectionChars?: number;
16
+ staleLessonDays?: number;
17
+ staleSectionDays?: number;
18
+ }
19
+ export declare function prune(projectRoot: string, opts?: PruneOptions): Promise<void>;
20
+ export {};
@@ -0,0 +1,121 @@
1
+ /**
2
+ * `indusk prune --dry-run` — context-budget measurement surface.
3
+ *
4
+ * Reports CLAUDE.md size by section, per-lesson ages, per-current-md-section
5
+ * ages, and total auto-loaded bytes. Recommends manual cleanup commands.
6
+ *
7
+ * `--dry-run` is the DEFAULT — no destructive action in v1. Auto-pruning
8
+ * (`--apply`) is intentionally deferred to a future architectural plan
9
+ * (Piece 3 of context-budget). v1 surfaces; operator decides.
10
+ *
11
+ * See `.indusk/planning/context-budget/` for full design.
12
+ */
13
+ import { measureProjectContext } from "../../lib/prune/measure.js";
14
+ export async function prune(projectRoot, opts = {}) {
15
+ // --dry-run is the default. v1 has no other mode.
16
+ if (opts.dryRun === false) {
17
+ console.error("Error: --dry-run is the only supported mode in this version. " +
18
+ "Auto-pruning (--apply) is intentionally deferred to a future architectural " +
19
+ "plan. See .indusk/planning/context-budget/ for the design.");
20
+ process.exit(2);
21
+ }
22
+ const thresholds = {};
23
+ if (opts.largeSectionChars !== undefined)
24
+ thresholds.large_section_chars = opts.largeSectionChars;
25
+ if (opts.staleLessonDays !== undefined)
26
+ thresholds.stale_lesson_days = opts.staleLessonDays;
27
+ if (opts.staleSectionDays !== undefined)
28
+ thresholds.stale_section_days = opts.staleSectionDays;
29
+ const report = measureProjectContext(projectRoot, thresholds);
30
+ printReport(projectRoot, report);
31
+ // Always exit 0 — this is informational, never an error.
32
+ process.exit(0);
33
+ }
34
+ function printReport(projectRoot, report) {
35
+ console.info(`\n[indusk prune --dry-run] context-budget audit for ${projectRoot}\n`);
36
+ if (report.notes.length > 0) {
37
+ for (const note of report.notes)
38
+ console.info(` note: ${note}`);
39
+ console.info("");
40
+ }
41
+ printClaudeMd(report);
42
+ printCurrentMd(report);
43
+ printLessons(report);
44
+ printSummary(report);
45
+ }
46
+ function printClaudeMd(report) {
47
+ console.info("CLAUDE.md sections:");
48
+ if (report.claudeMd.length === 0) {
49
+ console.info(" (no CLAUDE.md or no ## sections found)\n");
50
+ return;
51
+ }
52
+ for (const section of report.claudeMd) {
53
+ const marker = section.flagged ? " ⚠ " : " ";
54
+ console.info(`${marker}${section.title.padEnd(30)} ${formatBytes(section.sizeChars)}`);
55
+ if (section.recommendedAction) {
56
+ console.info(` → ${section.recommendedAction}`);
57
+ }
58
+ }
59
+ console.info("");
60
+ }
61
+ function printCurrentMd(report) {
62
+ console.info("current.md:");
63
+ if (!report.currentMd.exists) {
64
+ console.info(" (not found — run indusk init or check workbench root)\n");
65
+ return;
66
+ }
67
+ console.info(` total size: ${formatBytes(report.currentMd.totalSizeChars)}, ` +
68
+ `shared section: ${formatBytes(report.currentMd.sharedSectionSizeChars)}, ` +
69
+ `agent sections: ${report.currentMd.sectionCount}`);
70
+ if (report.currentMd.staleSections.length > 0) {
71
+ console.info(` ⚠ ${report.currentMd.staleSections.length} stale per-agent section(s):`);
72
+ for (const section of report.currentMd.staleSections) {
73
+ console.info(` session ${section.sessionShort} (${section.task}) — ${section.ageDays}d old, ${formatBytes(section.sizeChars)} body`);
74
+ }
75
+ console.info(" → Consider archiving stale sections from .indusk/current.md.");
76
+ console.info(" → Auto-archive will land in context-budget Piece 3; manual edit for now.");
77
+ }
78
+ console.info("");
79
+ }
80
+ function printLessons(report) {
81
+ console.info("Lessons (.claude/lessons/):");
82
+ if (report.lessons.length === 0) {
83
+ console.info(" (none found)\n");
84
+ return;
85
+ }
86
+ const flagged = report.lessons.filter((l) => l.flagged);
87
+ console.info(` total: ${report.lessons.length} lesson(s); ${flagged.length} stale`);
88
+ if (flagged.length > 0) {
89
+ console.info(" ⚠ Stale (consider reviewing or removing):");
90
+ for (const lesson of flagged) {
91
+ console.info(` ${lesson.name.padEnd(50)} ${lesson.ageDays}d old (${lesson.lastModified.slice(0, 10)})`);
92
+ }
93
+ console.info(" → Lessons referencing code/conventions that no longer exist are dead weight.");
94
+ console.info(" → Review each; `rm -i <path>` after confirming irrelevance.");
95
+ }
96
+ console.info("");
97
+ }
98
+ function printSummary(report) {
99
+ const flaggedClaudeMd = report.claudeMd.filter((s) => s.flagged).length;
100
+ const flaggedLessons = report.lessons.filter((l) => l.flagged).length;
101
+ const staleSections = report.currentMd.staleSections.length;
102
+ const totalFlagged = flaggedClaudeMd + flaggedLessons + staleSections;
103
+ console.info("Summary:");
104
+ console.info(` Estimated auto-loaded bytes per catchup: ${formatBytes(report.estimatedAutoLoadBytes)}`);
105
+ console.info(` Flagged: ${flaggedClaudeMd} CLAUDE.md section(s), ${flaggedLessons} lesson(s), ${staleSections} current.md section(s)`);
106
+ if (totalFlagged === 0) {
107
+ console.info(" ✓ No bloat detected at current thresholds.");
108
+ }
109
+ else {
110
+ console.info(" → No destructive action taken (this is --dry-run; v1 has no --apply mode).");
111
+ console.info(" → See .indusk/planning/context-budget/ for the distillation discipline.");
112
+ }
113
+ console.info("");
114
+ }
115
+ function formatBytes(n) {
116
+ if (n < 1024)
117
+ return `${n}B`;
118
+ if (n < 1024 * 1024)
119
+ return `${(n / 1024).toFixed(1)}KB`;
120
+ return `${(n / 1024 / 1024).toFixed(1)}MB`;
121
+ }
@@ -7,7 +7,7 @@
7
7
  * Session state stored in `.indusk/eval/evaluator-session.json`.
8
8
  */
9
9
  import { spawn } from "node:child_process";
10
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
10
+ import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
11
11
  import { dirname, join } from "node:path";
12
12
  import { getEvalModel, getProjectGroupId } from "../config.js";
13
13
  import { readUnprocessedHighlights } from "../highlights/highlights.js";
@@ -42,7 +42,14 @@ function writeSession(projectRoot, session) {
42
42
  function clearSession(projectRoot) {
43
43
  const path = getSessionPath(projectRoot);
44
44
  if (existsSync(path)) {
45
- const { unlinkSync } = require("node:fs");
45
+ // ESM-native unlinkSync never reintroduce CJS `require()` here.
46
+ // The runner is loaded via dynamic `import()` from a Node ESM context;
47
+ // any top-level or inline `require(...)` throws "require is not defined"
48
+ // at parse and the eval agent crashes silently. This was the bug-fix-
49
+ // eval-agent (1.19.1) pattern; it re-escaped here in persistent-
50
+ // evaluator.ts because the original regression test only scanned
51
+ // hooks/eval-trigger.js. Fixed in 1.31.10 by widening the regression
52
+ // scan to cover every file in src/lib/eval/.
46
53
  unlinkSync(path);
47
54
  }
48
55
  }
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Context-budget measurement library (1.31.11).
3
+ *
4
+ * Pure function `measureProjectContext(projectRoot, thresholds?)` returns a
5
+ * structured PruneReport describing what's accreted in the project's auto-
6
+ * loaded surfaces (CLAUDE.md sections, lessons, current.md sections). The
7
+ * `indusk prune --dry-run` CLI consumes this report and prints a human-
8
+ * readable surface with recommended manual cleanup commands.
9
+ *
10
+ * The library is read-only — no writes, no side effects. Auto-pruning is
11
+ * intentionally deferred to a future architectural plan (Piece 3 of the
12
+ * context-budget brief). v1 surfaces; operator decides.
13
+ *
14
+ * See `.indusk/planning/context-budget/` for full design.
15
+ */
16
+ export interface Thresholds {
17
+ /** Flag CLAUDE.md sections larger than this. */
18
+ large_section_chars: number;
19
+ /** Flag lessons whose mtime is older than this. */
20
+ stale_lesson_days: number;
21
+ /** Flag current.md per-agent sections whose lastUpdated is older than this. */
22
+ stale_section_days: number;
23
+ }
24
+ export interface ClaudeMdSection {
25
+ title: string;
26
+ sizeChars: number;
27
+ flagged: boolean;
28
+ recommendedAction?: string;
29
+ }
30
+ export interface LessonReport {
31
+ name: string;
32
+ path: string;
33
+ sizeChars: number;
34
+ lastModified: string;
35
+ ageDays: number;
36
+ flagged: boolean;
37
+ recommendedAction?: string;
38
+ }
39
+ export interface CurrentMdStaleSection {
40
+ sessionId: string;
41
+ sessionShort: string;
42
+ task: string;
43
+ lastUpdated: string;
44
+ ageDays: number;
45
+ sizeChars: number;
46
+ }
47
+ export interface CurrentMdReport {
48
+ exists: boolean;
49
+ totalSizeChars: number;
50
+ sharedSectionSizeChars: number;
51
+ sectionCount: number;
52
+ staleSections: CurrentMdStaleSection[];
53
+ }
54
+ export interface PruneReport {
55
+ claudeMd: ClaudeMdSection[];
56
+ lessons: LessonReport[];
57
+ currentMd: CurrentMdReport;
58
+ /** Approximate total bytes loaded into every conversation today. */
59
+ estimatedAutoLoadBytes: number;
60
+ /** Diagnostic notes about what was found / missing. */
61
+ notes: string[];
62
+ }
63
+ /**
64
+ * Measure the project's auto-loaded context surfaces. Pure-read, no side
65
+ * effects. Returns a structured report the CLI prints + future tooling can
66
+ * consume programmatically.
67
+ */
68
+ export declare function measureProjectContext(projectRoot: string, thresholds?: Partial<Thresholds>): PruneReport;
@@ -0,0 +1,179 @@
1
+ /**
2
+ * Context-budget measurement library (1.31.11).
3
+ *
4
+ * Pure function `measureProjectContext(projectRoot, thresholds?)` returns a
5
+ * structured PruneReport describing what's accreted in the project's auto-
6
+ * loaded surfaces (CLAUDE.md sections, lessons, current.md sections). The
7
+ * `indusk prune --dry-run` CLI consumes this report and prints a human-
8
+ * readable surface with recommended manual cleanup commands.
9
+ *
10
+ * The library is read-only — no writes, no side effects. Auto-pruning is
11
+ * intentionally deferred to a future architectural plan (Piece 3 of the
12
+ * context-budget brief). v1 surfaces; operator decides.
13
+ *
14
+ * See `.indusk/planning/context-budget/` for full design.
15
+ */
16
+ import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
17
+ import { join } from "node:path";
18
+ import { parseCurrentMd } from "../agents/current-md.js";
19
+ const DEFAULT_THRESHOLDS = {
20
+ large_section_chars: 4000,
21
+ stale_lesson_days: 180,
22
+ stale_section_days: 7,
23
+ };
24
+ const MS_PER_DAY = 24 * 60 * 60 * 1000;
25
+ /**
26
+ * Split CLAUDE.md body into sections by `^## ` headings. Returns the section
27
+ * title (without the `## ` prefix) and the body (everything until the next
28
+ * `## ` heading or EOF). Lines before the first `## ` are not returned (the
29
+ * `# H1` preamble is treated as overhead, not a section).
30
+ */
31
+ function splitClaudeMdSections(body) {
32
+ const lines = body.split("\n");
33
+ const sections = [];
34
+ let current = null;
35
+ for (const line of lines) {
36
+ const match = /^## (.+)$/.exec(line);
37
+ if (match) {
38
+ if (current) {
39
+ sections.push({ title: current.title, content: current.lines.join("\n") });
40
+ }
41
+ current = { title: match[1].trim(), lines: [] };
42
+ }
43
+ else if (current) {
44
+ current.lines.push(line);
45
+ }
46
+ }
47
+ if (current) {
48
+ sections.push({ title: current.title, content: current.lines.join("\n") });
49
+ }
50
+ return sections;
51
+ }
52
+ function readClaudeMd(projectRoot, thresholds) {
53
+ const claudeMdPath = join(projectRoot, "CLAUDE.md");
54
+ if (!existsSync(claudeMdPath))
55
+ return [];
56
+ const body = readFileSync(claudeMdPath, "utf-8");
57
+ const sections = splitClaudeMdSections(body);
58
+ return sections.map((s) => {
59
+ const sizeChars = s.content.length;
60
+ const flagged = sizeChars > thresholds.large_section_chars;
61
+ const out = { title: s.title, sizeChars, flagged };
62
+ if (flagged) {
63
+ out.recommendedAction = `Collapse "${s.title}" to one-line entries + links to archive. ${sizeChars} chars currently; target < ${thresholds.large_section_chars}. See .indusk/planning/context-budget/ for the distillation discipline.`;
64
+ }
65
+ return out;
66
+ });
67
+ }
68
+ function readLessons(projectRoot, thresholds) {
69
+ const lessonsDir = join(projectRoot, ".claude/lessons");
70
+ if (!existsSync(lessonsDir))
71
+ return [];
72
+ const now = Date.now();
73
+ const reports = [];
74
+ const entries = readdirSync(lessonsDir, { withFileTypes: true });
75
+ for (const entry of entries) {
76
+ if (!entry.isFile() || !entry.name.endsWith(".md"))
77
+ continue;
78
+ const path = join(lessonsDir, entry.name);
79
+ let stat;
80
+ try {
81
+ stat = statSync(path);
82
+ }
83
+ catch {
84
+ continue;
85
+ }
86
+ const ageDays = Math.floor((now - stat.mtimeMs) / MS_PER_DAY);
87
+ const flagged = ageDays > thresholds.stale_lesson_days;
88
+ const lastModified = new Date(stat.mtimeMs).toISOString();
89
+ const report = {
90
+ name: entry.name.replace(/\.md$/, ""),
91
+ path,
92
+ sizeChars: stat.size,
93
+ lastModified,
94
+ ageDays,
95
+ flagged,
96
+ };
97
+ if (flagged) {
98
+ report.recommendedAction = `Review and (if obsolete) rm -i "${path}". Untouched for ${ageDays} days; threshold is ${thresholds.stale_lesson_days}.`;
99
+ }
100
+ reports.push(report);
101
+ }
102
+ return reports.sort((a, b) => b.ageDays - a.ageDays);
103
+ }
104
+ function readCurrentMd(projectRoot, thresholds) {
105
+ const currentMdPath = join(projectRoot, ".indusk/current.md");
106
+ if (!existsSync(currentMdPath)) {
107
+ return {
108
+ exists: false,
109
+ totalSizeChars: 0,
110
+ sharedSectionSizeChars: 0,
111
+ sectionCount: 0,
112
+ staleSections: [],
113
+ };
114
+ }
115
+ const body = readFileSync(currentMdPath, "utf-8");
116
+ const parsed = parseCurrentMd(body);
117
+ const now = Date.now();
118
+ const stale = [];
119
+ for (const section of parsed.sections) {
120
+ const lastUpdatedMs = Date.parse(section.lastUpdated);
121
+ if (Number.isNaN(lastUpdatedMs))
122
+ continue;
123
+ const ageDays = Math.floor((now - lastUpdatedMs) / MS_PER_DAY);
124
+ if (ageDays <= thresholds.stale_section_days)
125
+ continue;
126
+ const sectionSize = section.inFlight.length + section.openQuestions.length + section.cursor.length;
127
+ stale.push({
128
+ sessionId: section.sessionId,
129
+ sessionShort: section.sessionShort,
130
+ task: section.task,
131
+ lastUpdated: section.lastUpdated,
132
+ ageDays,
133
+ sizeChars: sectionSize,
134
+ });
135
+ }
136
+ return {
137
+ exists: true,
138
+ totalSizeChars: body.length,
139
+ sharedSectionSizeChars: parsed.sharedSection.length,
140
+ sectionCount: parsed.sections.length,
141
+ staleSections: stale,
142
+ };
143
+ }
144
+ /**
145
+ * Measure the project's auto-loaded context surfaces. Pure-read, no side
146
+ * effects. Returns a structured report the CLI prints + future tooling can
147
+ * consume programmatically.
148
+ */
149
+ export function measureProjectContext(projectRoot, thresholds) {
150
+ const resolved = { ...DEFAULT_THRESHOLDS, ...thresholds };
151
+ const notes = [];
152
+ const induskDir = join(projectRoot, ".indusk");
153
+ if (!existsSync(induskDir)) {
154
+ notes.push(`no .indusk/ directory found at ${projectRoot} — not an InDusk project, or init not run`);
155
+ }
156
+ const claudeMd = readClaudeMd(projectRoot, resolved);
157
+ if (claudeMd.length === 0) {
158
+ notes.push("no CLAUDE.md found (or no ## sections)");
159
+ }
160
+ const lessons = readLessons(projectRoot, resolved);
161
+ if (lessons.length === 0) {
162
+ notes.push("no lessons found in .claude/lessons/");
163
+ }
164
+ const currentMd = readCurrentMd(projectRoot, resolved);
165
+ // Estimated auto-loaded bytes — approximate sum of what catchup loads.
166
+ const claudeMdBytes = claudeMd.reduce((sum, s) => sum + s.sizeChars, 0);
167
+ const lessonsBytes = lessons.reduce((sum, l) => sum + l.sizeChars, 0);
168
+ // Lessons are lazy-loaded as of 1.31.5; only titles + paths appear in
169
+ // list_lessons output. Estimate ~150 bytes per lesson for the summary.
170
+ const lessonsTitlesBytes = lessons.length * 150;
171
+ const estimatedAutoLoadBytes = claudeMdBytes + lessonsTitlesBytes + currentMd.totalSizeChars;
172
+ return {
173
+ claudeMd,
174
+ lessons,
175
+ currentMd,
176
+ estimatedAutoLoadBytes,
177
+ notes,
178
+ };
179
+ }
@@ -1,9 +1,10 @@
1
1
  #!/usr/bin/env bash
2
- # wt.sh — run a pnpm command inside a worktree or the trunk of a flat
2
+ # wt.sh — run a command inside a worktree or the trunk of a flat
3
3
  # single-repo workbench.
4
4
  #
5
5
  # Usage:
6
6
  # pnpm wt <slug>[:<app>] <command> [args...]
7
+ # pnpm wt <slug>[:<app>] -- <binary> [args...]
7
8
  #
8
9
  # Examples:
9
10
  # pnpm wt cancel-polish dev # cd <workbench>/cancel-polish/, run `pnpm dev`
@@ -12,6 +13,11 @@
12
13
  # pnpm wt cancel-polish ce dc:up local
13
14
  # # cd cancel-polish/, run `pnpm ce dc:up local`
14
15
  # # composable.env picks up the worktree's env
16
+ # pnpm wt solana-migration -- docker compose --env-file .env.local up -d
17
+ # # cd solana-migration/, exec `docker compose ...`
18
+ # # directly — no pnpm prefix. Use `--` to bypass
19
+ # # pnpm when args would otherwise be consumed by
20
+ # # pnpm's own flag parsing (e.g., --env-file).
15
21
  #
16
22
  # Resolution (single-pass, flat workbench shape):
17
23
  # - Look at subdirs/symlinks at workbench root
@@ -20,6 +26,15 @@
20
26
  # - Reserved names skipped: `.indusk`, `node_modules`, `dist`, `.git`
21
27
  # - Multiple matches → error with the candidates listed
22
28
  # - Zero matches → error with the available subdirs listed
29
+ #
30
+ # pnpm-prefix vs raw exec:
31
+ # - Default: prepends `pnpm` to the command (works for package.json scripts
32
+ # and pnpm-aware tools like `pnpm ce`).
33
+ # - With `--` as the first command arg: exec the remaining args directly,
34
+ # without prepending pnpm. Required when running external binaries whose
35
+ # flags conflict with pnpm's own flags (notably `--env-file`, which pnpm
36
+ # 9+ consumes as a global option). See `pnpm docker compose --env-file
37
+ # .env.local …` for the bug shape this fixes.
23
38
 
24
39
  set -euo pipefail
25
40
 
@@ -33,13 +48,19 @@ COMMAND=("$@")
33
48
 
34
49
  usage() {
35
50
  cat <<'EOF'
36
- Usage: pnpm wt <slug>[:<app>] <command> [args...]
51
+ Usage:
52
+ pnpm wt <slug>[:<app>] <command> [args...]
53
+ pnpm wt <slug>[:<app>] -- <binary> [args...]
37
54
 
38
55
  Examples:
39
56
  pnpm wt cancel-polish dev
40
57
  pnpm wt cancel-polish:web build
41
58
  pnpm wt <wrapped-repo> lint # the trunk
42
- pnpm wt cancel-polish ce dc:up local # ce composition
59
+ pnpm wt cancel-polish ce dc:up local # ce composition (pnpm-aware)
60
+ pnpm wt cancel-polish -- docker compose --env-file .env.local up -d
61
+ # raw exec, no pnpm prefix.
62
+ # Use when args conflict with
63
+ # pnpm flags (e.g., --env-file).
43
64
 
44
65
  EOF
45
66
  }
@@ -117,6 +138,20 @@ fi
117
138
  WORKTREE_PATH="${candidate_paths[0]}"
118
139
  WORKTREE_NAME="$(basename "$WORKTREE_PATH")"
119
140
 
141
+ # Raw-exec mode: if the first command token is `--`, run the rest directly
142
+ # without prepending `pnpm`. Required for commands whose flags conflict with
143
+ # pnpm's own flag parsing (e.g., `--env-file` is consumed by pnpm 9+).
144
+ RAW_EXEC=0
145
+ if [[ ${#COMMAND[@]} -gt 0 && "${COMMAND[0]}" == "--" ]]; then
146
+ RAW_EXEC=1
147
+ COMMAND=("${COMMAND[@]:1}")
148
+ if [[ ${#COMMAND[@]} -eq 0 ]]; then
149
+ echo "Error: '--' specified but no command followed" >&2
150
+ usage
151
+ exit 1
152
+ fi
153
+ fi
154
+
120
155
  if [[ -n "$APP" ]]; then
121
156
  APP_PATH="$WORKTREE_PATH/apps/$APP"
122
157
  if [[ ! -d "$APP_PATH" ]]; then
@@ -127,11 +162,23 @@ if [[ -n "$APP" ]]; then
127
162
  fi
128
163
  exit 1
129
164
  fi
130
- echo "[$WORKTREE_NAME/apps/$APP] pnpm ${COMMAND[*]}"
131
- cd "$APP_PATH"
132
- exec pnpm "${COMMAND[@]}"
165
+ if (( RAW_EXEC )); then
166
+ echo "[$WORKTREE_NAME/apps/$APP] ${COMMAND[*]}"
167
+ cd "$APP_PATH"
168
+ exec "${COMMAND[@]}"
169
+ else
170
+ echo "[$WORKTREE_NAME/apps/$APP] pnpm ${COMMAND[*]}"
171
+ cd "$APP_PATH"
172
+ exec pnpm "${COMMAND[@]}"
173
+ fi
133
174
  fi
134
175
 
135
- echo "[$WORKTREE_NAME] pnpm ${COMMAND[*]}"
136
- cd "$WORKTREE_PATH"
137
- exec pnpm "${COMMAND[@]}"
176
+ if (( RAW_EXEC )); then
177
+ echo "[$WORKTREE_NAME] ${COMMAND[*]}"
178
+ cd "$WORKTREE_PATH"
179
+ exec "${COMMAND[@]}"
180
+ else
181
+ echo "[$WORKTREE_NAME] pnpm ${COMMAND[*]}"
182
+ cd "$WORKTREE_PATH"
183
+ exec pnpm "${COMMAND[@]}"
184
+ fi
@@ -26,7 +26,7 @@
26
26
  */
27
27
 
28
28
  import { execFileSync } from "node:child_process";
29
- import { existsSync, realpathSync } from "node:fs";
29
+ import { existsSync, readFileSync, realpathSync } from "node:fs";
30
30
  import { dirname, resolve } from "node:path";
31
31
 
32
32
  /**
@@ -76,7 +76,7 @@ function findStatePath(startDir) {
76
76
  * @param {string} cwd
77
77
  * @returns {string | null}
78
78
  */
79
- function findGitPath(cwd) {
79
+ function findGitPathFromCwd(cwd) {
80
80
  try {
81
81
  const out = execFileSync("git", ["rev-parse", "--show-toplevel"], {
82
82
  cwd,
@@ -97,6 +97,56 @@ function findGitPath(cwd) {
97
97
  }
98
98
  }
99
99
 
100
+ /**
101
+ * Workbench-mode gitPath fallback (1.31.10 falsification finding). When
102
+ * `findGitPathFromCwd` returns null (cwd is not inside any git repo), check
103
+ * whether `statePath` is a workbench root and, if so, derive gitPath from
104
+ * the configured wrapped repo.
105
+ *
106
+ * This is the common case for hooks fired by Claude Code in workbench mode:
107
+ * the session's `event.cwd` is the workbench root (where Claude Code was
108
+ * launched), NOT the wrapped repo or a worktree. `event.cwd` is the session
109
+ * cwd, not the subprocess cwd that ran `git commit` — so `git rev-parse`
110
+ * against it fails even though the commit DID happen in a real git repo
111
+ * inside the workbench.
112
+ *
113
+ * The fallback reads `${statePath}/.indusk/config.json` for the
114
+ * `worktree.wrapped_repo` field. If present and the path exists, returns
115
+ * the realpath of `${statePath}/${wrapped_repo}`. Otherwise returns null
116
+ * (caller logs an actionable skip message naming `statePath`).
117
+ *
118
+ * Trade-off accepted: if the user committed in a SIBLING WORKTREE rather
119
+ * than the wrapped repo, this resolves `gitPath` to the wrapped repo
120
+ * (giving the eval agent the wrapped repo's HEAD, which may not be the
121
+ * commit just made). That's a known incompleteness — Phase N+1 work
122
+ * could read `tool_input.command` for a `cd <worktree>` prefix to
123
+ * disambiguate. Until then, the wrapped-repo fallback is strictly better
124
+ * than the pre-1.31.10 behavior of silently bailing every commit.
125
+ *
126
+ * @param {string | null} statePath
127
+ * @returns {string | null}
128
+ */
129
+ function findGitPathFromWorkbenchConfig(statePath) {
130
+ if (!statePath) return null;
131
+ const configPath = resolve(statePath, ".indusk/config.json");
132
+ if (!existsSync(configPath)) return null;
133
+ let config;
134
+ try {
135
+ config = JSON.parse(readFileSync(configPath, "utf-8"));
136
+ } catch {
137
+ return null;
138
+ }
139
+ const wrappedRepo = config?.worktree?.wrapped_repo;
140
+ if (!wrappedRepo || typeof wrappedRepo !== "string") return null;
141
+ const candidate = resolve(statePath, wrappedRepo);
142
+ if (!existsSync(candidate)) return null;
143
+ try {
144
+ return realpathSync(candidate);
145
+ } catch {
146
+ return candidate;
147
+ }
148
+ }
149
+
100
150
  /**
101
151
  * Resolve both the InDusk state path and the git path for a given cwd. Either
102
152
  * may be null:
@@ -112,8 +162,17 @@ function findGitPath(cwd) {
112
162
  * @returns {{ statePath: string | null, gitPath: string | null }}
113
163
  */
114
164
  export function resolveStateAndGitPaths(cwd) {
115
- return {
116
- statePath: findStatePath(cwd),
117
- gitPath: findGitPath(cwd),
118
- };
165
+ const statePath = findStatePath(cwd);
166
+ let gitPath = findGitPathFromCwd(cwd);
167
+ if (!gitPath) {
168
+ // Workbench-mode fallback (1.31.10). When event.cwd is the workbench
169
+ // root, `git rev-parse` against it fails because the workbench root
170
+ // isn't a git repo — but the wrapped repo IS, and its path is
171
+ // recoverable from the workbench's config. Without this fallback,
172
+ // Claude Code's PostToolUse hook bails on every commit when launched
173
+ // from the workbench root (the dominant operating model on Numero
174
+ // and any future FDE engagement).
175
+ gitPath = findGitPathFromWorkbenchConfig(statePath);
176
+ }
177
+ return { statePath, gitPath };
119
178
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infinitedusky/indusk-mcp",
3
- "version": "1.31.8",
3
+ "version": "1.31.11",
4
4
  "description": "InDusk development system — skills, MCP tools, and CLI for structured AI-assisted development",
5
5
  "type": "module",
6
6
  "files": [
@@ -189,6 +189,38 @@ Re-read CLAUDE.md in full. After the entire impl is done, verify:
189
189
 
190
190
  Fix any inaccuracies. The impl may have changed things that weren't anticipated in the per-phase context updates.
191
191
 
192
+ #### Current State entries are ONE LINE + link to archive (1.31.11)
193
+
194
+ When you add a Current State entry for a newly-completed plan, write it as **one line + a link to the archive**, not as a multi-paragraph prose entry. Every retrospective accretes Current State; over 20-30 plans, paragraph entries push CLAUDE.md past 30KB of always-loaded prose. The detail lives in the archived plan + the docs site decisions/lessons pages — the Current State entry is a pointer, not a duplicate.
195
+
196
+ **Use this shape:**
197
+
198
+ ```markdown
199
+ - **{plan-name} ({version})** — one-sentence summary of what shipped. See [archive](.indusk/planning/archive/{plan-name}/) for full detail.
200
+ ```
201
+
202
+ Example:
203
+
204
+ ```markdown
205
+ - **workbench-mode-rail-integrity (1.31.10)** — eval→Graphiti pipeline works on workbench-shaped projects; 4 hooks refactored, stray-state audit added, falsification surfaced 2 more bugs both fixed. See [archive](.indusk/planning/archive/workbench-mode-rail-integrity/) for full detail.
206
+ ```
207
+
208
+ **Counter-example — do NOT write this shape going forward**:
209
+
210
+ ```markdown
211
+ - **plan-name shipped in 1.X.Y (2026-XX-XX)** — three paragraphs of detail
212
+ about what the plan did, what shipped in each phase, what bugs were
213
+ found in falsification, what lessons were captured, what's deferred to
214
+ follow-up work, with embedded code references and file paths and...
215
+ [continues for ~500 chars]
216
+ ```
217
+
218
+ The counter-example is **token bloat on every catchup**, paid by every Claude Code session forever. The one-line shape preserves discoverability (the plan name + version + link is enough for the agent to know what to query) at a fraction of the cost.
219
+
220
+ Existing multi-paragraph entries (pre-1.31.11) can be collapsed via `indusk prune --dry-run` (which surfaces them) plus manual operator cleanup — they are not auto-migrated.
221
+
222
+ Why this matters: CLAUDE.md is auto-loaded into every Claude Code session. Every byte you add accrues to every prompt indefinitely. The discipline is "thinner navigation layer, queryable detail" — see [context-budget brief](../../.indusk/planning/context-budget/brief.md) for the full rationale.
223
+
192
224
  ### Step 8: Knowledge Handoff
193
225
 
194
226
  Distill planning artifacts into the docs site so the knowledge survives archival.