@infinitedusky/indusk-mcp 1.38.2 → 1.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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/commands/doppler.js +35 -1
  16. package/dist/bin/commands/extensions.js +4 -13
  17. package/dist/bin/commands/init-docs.js +31 -2
  18. package/dist/bin/commands/init.js +33 -7
  19. package/dist/lib/health.d.ts +49 -0
  20. package/dist/lib/health.js +70 -0
  21. package/dist/tools/system-tools.js +8 -11
  22. package/extensions/doppler/manifest.json +2 -2
  23. package/extensions/doppler/skill.md +4 -2
  24. package/package.json +1 -1
  25. /package/admin/.next/static/{St4Q0wjLo_FHVFVC6q7M0 → 5sMTAsYRTtlvmwfzNLI9T}/_buildManifest.js +0 -0
  26. /package/admin/.next/static/{St4Q0wjLo_FHVFVC6q7M0 → 5sMTAsYRTtlvmwfzNLI9T}/_clientMiddlewareManifest.js +0 -0
  27. /package/admin/.next/static/{St4Q0wjLo_FHVFVC6q7M0 → 5sMTAsYRTtlvmwfzNLI9T}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- St4Q0wjLo_FHVFVC6q7M0
1
+ 5sMTAsYRTtlvmwfzNLI9T
@@ -7,9 +7,9 @@
7
7
  "static/chunks/03~yq9q893hmn.js"
8
8
  ],
9
9
  "lowPriorityFiles": [
10
- "static/St4Q0wjLo_FHVFVC6q7M0/_buildManifest.js",
11
- "static/St4Q0wjLo_FHVFVC6q7M0/_ssgManifest.js",
12
- "static/St4Q0wjLo_FHVFVC6q7M0/_clientMiddlewareManifest.js"
10
+ "static/5sMTAsYRTtlvmwfzNLI9T/_buildManifest.js",
11
+ "static/5sMTAsYRTtlvmwfzNLI9T/_ssgManifest.js",
12
+ "static/5sMTAsYRTtlvmwfzNLI9T/_clientMiddlewareManifest.js"
13
13
  ],
14
14
  "rootMainFiles": [
15
15
  "static/chunks/15r3deq0oc~d..js",
@@ -5,9 +5,9 @@
5
5
  "devFiles": [],
6
6
  "polyfillFiles": [],
7
7
  "lowPriorityFiles": [
8
- "static/St4Q0wjLo_FHVFVC6q7M0/_buildManifest.js",
9
- "static/St4Q0wjLo_FHVFVC6q7M0/_ssgManifest.js",
10
- "static/St4Q0wjLo_FHVFVC6q7M0/_clientMiddlewareManifest.js"
8
+ "static/5sMTAsYRTtlvmwfzNLI9T/_buildManifest.js",
9
+ "static/5sMTAsYRTtlvmwfzNLI9T/_ssgManifest.js",
10
+ "static/5sMTAsYRTtlvmwfzNLI9T/_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/15r3deq0oc~d..js"/><script src="/_next/static/chunks/0_r.3~d-5z8~_.js" async=""></script><script src="/_next/static/chunks/02p8lah64~lvh.js" async=""></script><script src="/_next/static/chunks/0gomaooulfzoq.js" async=""></script><script src="/_next/static/chunks/turbopack-130jszne6su0h.js" async=""></script><script src="/_next/static/chunks/0.v8w524wvk94.js" async=""></script><script src="/_next/static/chunks/0yelgl0o38y_u.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/15r3deq0oc~d..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/0yelgl0o38y_u.js\"],\"default\"]\n3:I[50571,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0yelgl0o38y_u.js\"],\"default\"]\n4:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0yelgl0o38y_u.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0yelgl0o38y_u.js\"],\"ViewportBoundary\"]\na:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0yelgl0o38y_u.js\"],\"MetadataBoundary\"]\nc:I[59179,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0yelgl0o38y_u.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\":\"St4Q0wjLo_FHVFVC6q7M0\"}\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/0yelgl0o38y_u.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/15r3deq0oc~d..js"/><script src="/_next/static/chunks/0_r.3~d-5z8~_.js" async=""></script><script src="/_next/static/chunks/02p8lah64~lvh.js" async=""></script><script src="/_next/static/chunks/0gomaooulfzoq.js" async=""></script><script src="/_next/static/chunks/turbopack-130jszne6su0h.js" async=""></script><script src="/_next/static/chunks/0.v8w524wvk94.js" async=""></script><script src="/_next/static/chunks/0yelgl0o38y_u.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/15r3deq0oc~d..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/0yelgl0o38y_u.js\"],\"default\"]\n3:I[50571,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0yelgl0o38y_u.js\"],\"default\"]\n4:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0yelgl0o38y_u.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0yelgl0o38y_u.js\"],\"ViewportBoundary\"]\na:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0yelgl0o38y_u.js\"],\"MetadataBoundary\"]\nc:I[59179,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0yelgl0o38y_u.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\":\"5sMTAsYRTtlvmwfzNLI9T\"}\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/0yelgl0o38y_u.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/0yelgl0o38y_u.js"],"ViewportBoundary"]
7
7
  a:I[76614,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0yelgl0o38y_u.js"],"MetadataBoundary"]
8
8
  c:I[59179,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0yelgl0o38y_u.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":"St4Q0wjLo_FHVFVC6q7M0"}
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":"5sMTAsYRTtlvmwfzNLI9T"}
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/0yelgl0o38y_u.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":"St4Q0wjLo_FHVFVC6q7M0"}
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":"5sMTAsYRTtlvmwfzNLI9T"}
5
5
  4:null
@@ -6,7 +6,7 @@
6
6
  8:I[76614,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0yelgl0o38y_u.js"],"ViewportBoundary"]
7
7
  a:I[76614,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0yelgl0o38y_u.js"],"MetadataBoundary"]
8
8
  c:I[59179,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0yelgl0o38y_u.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":"St4Q0wjLo_FHVFVC6q7M0"}
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":"5sMTAsYRTtlvmwfzNLI9T"}
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/0yelgl0o38y_u.js"],"MetadataBoundary"]
4
4
  4:"$Sreact.suspense"
5
5
  5:I[61299,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0yelgl0o38y_u.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":"St4Q0wjLo_FHVFVC6q7M0"}
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":"5sMTAsYRTtlvmwfzNLI9T"}
@@ -2,4 +2,4 @@
2
2
  2:I[85530,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0yelgl0o38y_u.js"],"default"]
3
3
  3:I[50571,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0yelgl0o38y_u.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":"St4Q0wjLo_FHVFVC6q7M0"}
5
+ 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"5sMTAsYRTtlvmwfzNLI9T"}
@@ -1 +1 @@
1
- 0:{"tree":{"name":"","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"St4Q0wjLo_FHVFVC6q7M0"}
1
+ 0:{"tree":{"name":"","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"5sMTAsYRTtlvmwfzNLI9T"}
@@ -7,9 +7,9 @@ globalThis.__BUILD_MANIFEST = {
7
7
  "static/chunks/03~yq9q893hmn.js"
8
8
  ],
9
9
  "lowPriorityFiles": [
10
- "static/St4Q0wjLo_FHVFVC6q7M0/_buildManifest.js",
11
- "static/St4Q0wjLo_FHVFVC6q7M0/_ssgManifest.js",
12
- "static/St4Q0wjLo_FHVFVC6q7M0/_clientMiddlewareManifest.js"
10
+ "static/5sMTAsYRTtlvmwfzNLI9T/_buildManifest.js",
11
+ "static/5sMTAsYRTtlvmwfzNLI9T/_ssgManifest.js",
12
+ "static/5sMTAsYRTtlvmwfzNLI9T/_clientMiddlewareManifest.js"
13
13
  ],
14
14
  "rootMainFiles": [
15
15
  "static/chunks/15r3deq0oc~d..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/15r3deq0oc~d..js"/><script src="/_next/static/chunks/0_r.3~d-5z8~_.js" async=""></script><script src="/_next/static/chunks/02p8lah64~lvh.js" async=""></script><script src="/_next/static/chunks/0gomaooulfzoq.js" async=""></script><script src="/_next/static/chunks/turbopack-130jszne6su0h.js" async=""></script><script src="/_next/static/chunks/0.v8w524wvk94.js" async=""></script><script src="/_next/static/chunks/0yelgl0o38y_u.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/15r3deq0oc~d..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/0yelgl0o38y_u.js\"],\"default\"]\n3:I[50571,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0yelgl0o38y_u.js\"],\"default\"]\n4:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0yelgl0o38y_u.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0yelgl0o38y_u.js\"],\"ViewportBoundary\"]\na:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0yelgl0o38y_u.js\"],\"MetadataBoundary\"]\nc:I[59179,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0yelgl0o38y_u.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\":\"St4Q0wjLo_FHVFVC6q7M0\"}\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/0yelgl0o38y_u.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/15r3deq0oc~d..js"/><script src="/_next/static/chunks/0_r.3~d-5z8~_.js" async=""></script><script src="/_next/static/chunks/02p8lah64~lvh.js" async=""></script><script src="/_next/static/chunks/0gomaooulfzoq.js" async=""></script><script src="/_next/static/chunks/turbopack-130jszne6su0h.js" async=""></script><script src="/_next/static/chunks/0.v8w524wvk94.js" async=""></script><script src="/_next/static/chunks/0yelgl0o38y_u.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/15r3deq0oc~d..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/0yelgl0o38y_u.js\"],\"default\"]\n3:I[50571,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0yelgl0o38y_u.js\"],\"default\"]\n4:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0yelgl0o38y_u.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0yelgl0o38y_u.js\"],\"ViewportBoundary\"]\na:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0yelgl0o38y_u.js\"],\"MetadataBoundary\"]\nc:I[59179,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0yelgl0o38y_u.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\":\"5sMTAsYRTtlvmwfzNLI9T\"}\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/0yelgl0o38y_u.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":98,"timestamp":29946765431,"id":4,"parentId":1,"tags":{},"startTime":1787876676860,"traceId":"cbf8b0d7731c1a50"},{"name":"load-custom-routes","duration":203,"timestamp":29946765576,"id":5,"parentId":1,"tags":{},"startTime":1787876676860,"traceId":"cbf8b0d7731c1a50"},{"name":"create-dist-dir","duration":83,"timestamp":29946765792,"id":6,"parentId":1,"tags":{},"startTime":1787876676860,"traceId":"cbf8b0d7731c1a50"},{"name":"clean","duration":36558,"timestamp":29946766416,"id":7,"parentId":1,"tags":{},"startTime":1787876676861,"traceId":"cbf8b0d7731c1a50"},{"name":"discover-routes","duration":3943,"timestamp":29946808071,"id":8,"parentId":1,"tags":{},"startTime":1787876676902,"traceId":"cbf8b0d7731c1a50"},{"name":"create-root-mapping","duration":35,"timestamp":29946812045,"id":9,"parentId":1,"tags":{},"startTime":1787876676906,"traceId":"cbf8b0d7731c1a50"},{"name":"generate-route-types","duration":9773,"timestamp":29946812943,"id":10,"parentId":1,"tags":{},"startTime":1787876676907,"traceId":"cbf8b0d7731c1a50"},{"name":"public-dir-conflict-check","duration":59,"timestamp":29946822770,"id":11,"parentId":1,"tags":{},"startTime":1787876676917,"traceId":"cbf8b0d7731c1a50"},{"name":"generate-routes-manifest","duration":1325,"timestamp":29946822875,"id":12,"parentId":1,"tags":{},"startTime":1787876676917,"traceId":"cbf8b0d7731c1a50"},{"name":"run-turbopack","duration":5420083,"timestamp":29946828479,"id":14,"parentId":1,"tags":{},"startTime":1787876676923,"traceId":"cbf8b0d7731c1a50"},{"name":"turbopack-build-events","duration":44,"timestamp":29946977791,"id":15,"parentId":1,"tags":{},"startTime":1787876677072,"traceId":"cbf8b0d7731c1a50"},{"name":"run-typescript","duration":2836840,"timestamp":29952264214,"id":16,"parentId":1,"tags":{},"startTime":1787876682359,"traceId":"cbf8b0d7731c1a50"},{"name":"generate-required-server-files","duration":756,"timestamp":29955102336,"id":18,"parentId":1,"tags":{},"startTime":1787876685197,"traceId":"cbf8b0d7731c1a50"},{"name":"check-static-error-page","duration":2150,"timestamp":29955118038,"id":20,"parentId":19,"tags":{},"startTime":1787876685212,"traceId":"cbf8b0d7731c1a50"},{"name":"is-page-static","duration":158527,"timestamp":29955126220,"id":30,"parentId":22,"tags":{},"startTime":1787876685221,"traceId":"cbf8b0d7731c1a50"},{"name":"check-page","duration":165411,"timestamp":29955119403,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1787876685214,"traceId":"cbf8b0d7731c1a50"},{"name":"is-page-static","duration":194675,"timestamp":29955126449,"id":31,"parentId":23,"tags":{},"startTime":1787876685221,"traceId":"cbf8b0d7731c1a50"},{"name":"check-page","duration":201439,"timestamp":29955119725,"id":23,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1787876685214,"traceId":"cbf8b0d7731c1a50"},{"name":"is-page-static","duration":207821,"timestamp":29955125970,"id":29,"parentId":21,"tags":{},"startTime":1787876685220,"traceId":"cbf8b0d7731c1a50"},{"name":"check-page","duration":215209,"timestamp":29955118612,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1787876685213,"traceId":"cbf8b0d7731c1a50"},{"name":"is-page-static","duration":209825,"timestamp":29955129837,"id":32,"parentId":28,"tags":{},"startTime":1787876685224,"traceId":"cbf8b0d7731c1a50"},{"name":"check-page","duration":219554,"timestamp":29955120140,"id":28,"parentId":19,"tags":{"page":"/"},"startTime":1787876685215,"traceId":"cbf8b0d7731c1a50"},{"name":"is-page-static","duration":214906,"timestamp":29955129917,"id":33,"parentId":24,"tags":{},"startTime":1787876685224,"traceId":"cbf8b0d7731c1a50"},{"name":"check-page","duration":224948,"timestamp":29955119941,"id":24,"parentId":19,"tags":{"page":"/p/[project]"},"startTime":1787876685214,"traceId":"cbf8b0d7731c1a50"},{"name":"is-page-static","duration":217249,"timestamp":29955129953,"id":34,"parentId":25,"tags":{},"startTime":1787876685224,"traceId":"cbf8b0d7731c1a50"},{"name":"check-page","duration":227253,"timestamp":29955119990,"id":25,"parentId":19,"tags":{"page":"/p/[project]/plan/[name]"},"startTime":1787876685214,"traceId":"cbf8b0d7731c1a50"},{"name":"is-page-static","duration":223606,"timestamp":29955130006,"id":35,"parentId":26,"tags":{},"startTime":1787876685224,"traceId":"cbf8b0d7731c1a50"},{"name":"check-page","duration":233604,"timestamp":29955120044,"id":26,"parentId":19,"tags":{"page":"/p/[project]/research/[slug]"},"startTime":1787876685214,"traceId":"cbf8b0d7731c1a50"},{"name":"is-page-static","duration":225266,"timestamp":29955130044,"id":36,"parentId":27,"tags":{},"startTime":1787876685224,"traceId":"cbf8b0d7731c1a50"},{"name":"check-page","duration":235242,"timestamp":29955120091,"id":27,"parentId":19,"tags":{"page":"/p/[project]/scorecards"},"startTime":1787876685214,"traceId":"cbf8b0d7731c1a50"},{"name":"static-check","duration":238080,"timestamp":29955117282,"id":19,"parentId":1,"tags":{},"startTime":1787876685212,"traceId":"cbf8b0d7731c1a50"},{"name":"write-routes-manifest","duration":696,"timestamp":29955356753,"id":38,"parentId":1,"tags":{},"startTime":1787876685451,"traceId":"cbf8b0d7731c1a50"},{"name":"load-dotenv","duration":31,"timestamp":29955364895,"id":41,"parentId":40,"tags":{},"startTime":1787876685459,"traceId":"cbf8b0d7731c1a50"},{"name":"run-export-path-map","duration":194,"timestamp":29955366056,"id":42,"parentId":40,"tags":{},"startTime":1787876685460,"traceId":"cbf8b0d7731c1a50"},{"name":"next-export","duration":197093,"timestamp":29955364336,"id":40,"parentId":1,"tags":{},"startTime":1787876685459,"traceId":"cbf8b0d7731c1a50"},{"name":"move-exported-app-global-error-","duration":366,"timestamp":29955562020,"id":43,"parentId":39,"tags":{},"startTime":1787876685656,"traceId":"cbf8b0d7731c1a50"},{"name":"static-generation","duration":202781,"timestamp":29955360354,"id":39,"parentId":1,"tags":{},"startTime":1787876685455,"traceId":"cbf8b0d7731c1a50"},{"name":"write-routes-manifest","duration":174,"timestamp":29955563226,"id":44,"parentId":1,"tags":{},"startTime":1787876685658,"traceId":"cbf8b0d7731c1a50"},{"name":"print-tree-view","duration":1106,"timestamp":29955567788,"id":45,"parentId":1,"tags":{},"startTime":1787876685662,"traceId":"cbf8b0d7731c1a50"},{"name":"write-route-bundle-stats","duration":4848,"timestamp":29955568907,"id":46,"parentId":1,"tags":{},"startTime":1787876685663,"traceId":"cbf8b0d7731c1a50"},{"name":"telemetry-flush","duration":491373,"timestamp":29955573776,"id":47,"parentId":1,"tags":{},"startTime":1787876685668,"traceId":"cbf8b0d7731c1a50"},{"name":"next-build","duration":9392749,"timestamp":29946672425,"id":1,"tags":{"buildMode":"default","version":"16.2.4","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1787876676767,"traceId":"cbf8b0d7731c1a50"}]
1
+ [{"name":"generate-buildid","duration":125,"timestamp":104529691719,"id":4,"parentId":1,"tags":{},"startTime":1787951259754,"traceId":"6627f97f3773da4a"},{"name":"load-custom-routes","duration":214,"timestamp":104529691904,"id":5,"parentId":1,"tags":{},"startTime":1787951259754,"traceId":"6627f97f3773da4a"},{"name":"create-dist-dir","duration":92,"timestamp":104529692132,"id":6,"parentId":1,"tags":{},"startTime":1787951259754,"traceId":"6627f97f3773da4a"},{"name":"clean","duration":55163,"timestamp":104529692906,"id":7,"parentId":1,"tags":{},"startTime":1787951259755,"traceId":"6627f97f3773da4a"},{"name":"discover-routes","duration":5251,"timestamp":104529754418,"id":8,"parentId":1,"tags":{},"startTime":1787951259817,"traceId":"6627f97f3773da4a"},{"name":"create-root-mapping","duration":45,"timestamp":104529759706,"id":9,"parentId":1,"tags":{},"startTime":1787951259822,"traceId":"6627f97f3773da4a"},{"name":"generate-route-types","duration":10856,"timestamp":104529760629,"id":10,"parentId":1,"tags":{},"startTime":1787951259823,"traceId":"6627f97f3773da4a"},{"name":"public-dir-conflict-check","duration":49,"timestamp":104529771534,"id":11,"parentId":1,"tags":{},"startTime":1787951259834,"traceId":"6627f97f3773da4a"},{"name":"generate-routes-manifest","duration":1379,"timestamp":104529771630,"id":12,"parentId":1,"tags":{},"startTime":1787951259834,"traceId":"6627f97f3773da4a"},{"name":"run-turbopack","duration":6636270,"timestamp":104529777700,"id":14,"parentId":1,"tags":{},"startTime":1787951259840,"traceId":"6627f97f3773da4a"},{"name":"turbopack-build-events","duration":43,"timestamp":104529925379,"id":15,"parentId":1,"tags":{},"startTime":1787951259988,"traceId":"6627f97f3773da4a"},{"name":"run-typescript","duration":2688295,"timestamp":104536491763,"id":16,"parentId":1,"tags":{},"startTime":1787951266554,"traceId":"6627f97f3773da4a"},{"name":"generate-required-server-files","duration":3639,"timestamp":104539184531,"id":18,"parentId":1,"tags":{},"startTime":1787951269247,"traceId":"6627f97f3773da4a"},{"name":"check-static-error-page","duration":3833,"timestamp":104539211703,"id":20,"parentId":19,"tags":{},"startTime":1787951269274,"traceId":"6627f97f3773da4a"},{"name":"is-page-static","duration":718042,"timestamp":104539234645,"id":30,"parentId":22,"tags":{},"startTime":1787951269297,"traceId":"6627f97f3773da4a"},{"name":"check-page","duration":739705,"timestamp":104539213181,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1787951269275,"traceId":"6627f97f3773da4a"},{"name":"is-page-static","duration":772975,"timestamp":104539234673,"id":31,"parentId":23,"tags":{},"startTime":1787951269297,"traceId":"6627f97f3773da4a"},{"name":"check-page","duration":792703,"timestamp":104539214989,"id":23,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1787951269277,"traceId":"6627f97f3773da4a"},{"name":"is-page-static","duration":772453,"timestamp":104539246235,"id":33,"parentId":24,"tags":{},"startTime":1787951269308,"traceId":"6627f97f3773da4a"},{"name":"check-page","duration":806437,"timestamp":104539215289,"id":24,"parentId":19,"tags":{"page":"/p/[project]"},"startTime":1787951269277,"traceId":"6627f97f3773da4a"},{"name":"is-page-static","duration":787084,"timestamp":104539246335,"id":36,"parentId":27,"tags":{},"startTime":1787951269309,"traceId":"6627f97f3773da4a"},{"name":"check-page","duration":818060,"timestamp":104539215454,"id":27,"parentId":19,"tags":{"page":"/p/[project]/scorecards"},"startTime":1787951269278,"traceId":"6627f97f3773da4a"},{"name":"is-page-static","duration":805661,"timestamp":104539246269,"id":34,"parentId":25,"tags":{},"startTime":1787951269308,"traceId":"6627f97f3773da4a"},{"name":"check-page","duration":836623,"timestamp":104539215355,"id":25,"parentId":19,"tags":{"page":"/p/[project]/plan/[name]"},"startTime":1787951269278,"traceId":"6627f97f3773da4a"},{"name":"is-page-static","duration":807436,"timestamp":104539245266,"id":32,"parentId":28,"tags":{},"startTime":1787951269307,"traceId":"6627f97f3773da4a"},{"name":"check-page","duration":837295,"timestamp":104539215497,"id":28,"parentId":19,"tags":{"page":"/"},"startTime":1787951269278,"traceId":"6627f97f3773da4a"},{"name":"is-page-static","duration":818423,"timestamp":104539234500,"id":29,"parentId":21,"tags":{},"startTime":1787951269297,"traceId":"6627f97f3773da4a"},{"name":"check-page","duration":840767,"timestamp":104539212227,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1787951269274,"traceId":"6627f97f3773da4a"},{"name":"is-page-static","duration":848160,"timestamp":104539246302,"id":35,"parentId":26,"tags":{},"startTime":1787951269308,"traceId":"6627f97f3773da4a"},{"name":"check-page","duration":879100,"timestamp":104539215414,"id":26,"parentId":19,"tags":{"page":"/p/[project]/research/[slug]"},"startTime":1787951269278,"traceId":"6627f97f3773da4a"},{"name":"static-check","duration":883202,"timestamp":104539211331,"id":19,"parentId":1,"tags":{},"startTime":1787951269274,"traceId":"6627f97f3773da4a"},{"name":"write-routes-manifest","duration":644,"timestamp":104540096208,"id":38,"parentId":1,"tags":{},"startTime":1787951270158,"traceId":"6627f97f3773da4a"},{"name":"load-dotenv","duration":16,"timestamp":104540108480,"id":41,"parentId":40,"tags":{},"startTime":1787951270171,"traceId":"6627f97f3773da4a"},{"name":"run-export-path-map","duration":413,"timestamp":104540111372,"id":42,"parentId":40,"tags":{},"startTime":1787951270174,"traceId":"6627f97f3773da4a"},{"name":"next-export","duration":225657,"timestamp":104540107962,"id":40,"parentId":1,"tags":{},"startTime":1787951270170,"traceId":"6627f97f3773da4a"},{"name":"move-exported-app-global-error-","duration":537,"timestamp":104540334270,"id":43,"parentId":39,"tags":{},"startTime":1787951270396,"traceId":"6627f97f3773da4a"},{"name":"static-generation","duration":234005,"timestamp":104540102001,"id":39,"parentId":1,"tags":{},"startTime":1787951270164,"traceId":"6627f97f3773da4a"},{"name":"write-routes-manifest","duration":265,"timestamp":104540336140,"id":44,"parentId":1,"tags":{},"startTime":1787951270398,"traceId":"6627f97f3773da4a"},{"name":"print-tree-view","duration":1299,"timestamp":104540343871,"id":45,"parentId":1,"tags":{},"startTime":1787951270406,"traceId":"6627f97f3773da4a"},{"name":"write-route-bundle-stats","duration":4576,"timestamp":104540345185,"id":46,"parentId":1,"tags":{},"startTime":1787951270407,"traceId":"6627f97f3773da4a"},{"name":"telemetry-flush","duration":489342,"timestamp":104540349774,"id":47,"parentId":1,"tags":{},"startTime":1787951270412,"traceId":"6627f97f3773da4a"},{"name":"next-build","duration":11298306,"timestamp":104529540834,"id":1,"tags":{"buildMode":"default","version":"16.2.4","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1787951259603,"traceId":"6627f97f3773da4a"}]
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":5420083,"timestamp":29946828479,"id":14,"parentId":1,"tags":{},"startTime":1787876676923,"traceId":"cbf8b0d7731c1a50"},{"name":"turbopack-build-events","duration":44,"timestamp":29946977791,"id":15,"parentId":1,"tags":{},"startTime":1787876677072,"traceId":"cbf8b0d7731c1a50"},{"name":"run-typescript","duration":2836840,"timestamp":29952264214,"id":16,"parentId":1,"tags":{},"startTime":1787876682359,"traceId":"cbf8b0d7731c1a50"},{"name":"static-check","duration":238080,"timestamp":29955117282,"id":19,"parentId":1,"tags":{},"startTime":1787876685212,"traceId":"cbf8b0d7731c1a50"},{"name":"static-generation","duration":202781,"timestamp":29955360354,"id":39,"parentId":1,"tags":{},"startTime":1787876685455,"traceId":"cbf8b0d7731c1a50"},{"name":"telemetry-flush","duration":491373,"timestamp":29955573776,"id":47,"parentId":1,"tags":{},"startTime":1787876685668,"traceId":"cbf8b0d7731c1a50"},{"name":"next-build","duration":9392749,"timestamp":29946672425,"id":1,"tags":{"buildMode":"default","version":"16.2.4","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1787876676767,"traceId":"cbf8b0d7731c1a50"}]
1
+ [{"name":"run-turbopack","duration":6636270,"timestamp":104529777700,"id":14,"parentId":1,"tags":{},"startTime":1787951259840,"traceId":"6627f97f3773da4a"},{"name":"turbopack-build-events","duration":43,"timestamp":104529925379,"id":15,"parentId":1,"tags":{},"startTime":1787951259988,"traceId":"6627f97f3773da4a"},{"name":"run-typescript","duration":2688295,"timestamp":104536491763,"id":16,"parentId":1,"tags":{},"startTime":1787951266554,"traceId":"6627f97f3773da4a"},{"name":"static-check","duration":883202,"timestamp":104539211331,"id":19,"parentId":1,"tags":{},"startTime":1787951269274,"traceId":"6627f97f3773da4a"},{"name":"static-generation","duration":234005,"timestamp":104540102001,"id":39,"parentId":1,"tags":{},"startTime":1787951270164,"traceId":"6627f97f3773da4a"},{"name":"telemetry-flush","duration":489342,"timestamp":104540349774,"id":47,"parentId":1,"tags":{},"startTime":1787951270412,"traceId":"6627f97f3773da4a"},{"name":"next-build","duration":11298306,"timestamp":104529540834,"id":1,"tags":{"buildMode":"default","version":"16.2.4","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1787951259603,"traceId":"6627f97f3773da4a"}]
@@ -1,6 +1,7 @@
1
1
  import { spawnSync } from "node:child_process";
2
2
  import { existsSync, readdirSync, readFileSync, statSync, writeFileSync } from "node:fs";
3
3
  import { basename, join } from "node:path";
4
+ import { readReposRoot, readWorkbenchRepos, repoDir } from "../../lib/worktree/repos.js";
4
5
  /**
5
6
  * doppler extension — `env-pull` + worktree auto-provisioning.
6
7
  *
@@ -163,6 +164,15 @@ function runEnvPull(tokenRoot, appsRoot, profile, opts = {}) {
163
164
  console.info(` ${relDir} → ${relDir}/.env.${profile} (${leaf})`);
164
165
  written++;
165
166
  }
167
+ if (written === 0) {
168
+ // A success line over a no-op is the failure this fixes. The observed
169
+ // case: "auto-provisioned env for <slug>" printed while zero files were
170
+ // written, so a developer saw success and got a worktree with no env.
171
+ // A check must distinguish "nothing to do" from "did not run".
172
+ console.error(`env-pull (${profile}): wrote NO files. ${apps.length} target(s) configured, none produced a file.`);
173
+ console.error(` Check that each doppler.apps[].path exists relative to the app repo, and that the Doppler configs exist under project "${project}".`);
174
+ return -1;
175
+ }
166
176
  if (!opts.quiet) {
167
177
  console.info(`env-pull (${profile}): wrote ${written} file(s) from Doppler project "${project}".`);
168
178
  }
@@ -170,10 +180,34 @@ function runEnvPull(tokenRoot, appsRoot, profile, opts = {}) {
170
180
  }
171
181
  /** CLI entry: `indusk doppler env-pull <profile>` — token + apps both at projectRoot. */
172
182
  export function dopplerEnvPull(projectRoot, profile) {
173
- if (runEnvPull(projectRoot, projectRoot, profile, { manageGitignore: true }) < 0) {
183
+ // `path` is relative to the APPLICATION REPO, so it means one thing to both
184
+ // callers. Previously this passed the workbench root while worktree
185
+ // provisioning passed the worktree, so `path: "looper/backend"` made the
186
+ // manual pull work and every worktree silently get nothing — one value that
187
+ // could not be both.
188
+ if (runEnvPull(projectRoot, appRepoRoot(projectRoot), profile, { manageGitignore: true }) < 0) {
174
189
  process.exit(1);
175
190
  }
176
191
  }
192
+ /**
193
+ * Where the application code is, for resolving `doppler.apps[].path`.
194
+ *
195
+ * A workbench with one declared repo resolves to that repo. Several declared
196
+ * repos, or none, resolves to the project itself — the same behavior every
197
+ * non-workbench project already had.
198
+ */
199
+ function appRepoRoot(projectRoot) {
200
+ const repos = readWorkbenchRepos(projectRoot);
201
+ if (repos.length !== 1)
202
+ return projectRoot;
203
+ const declared = readReposRoot(projectRoot);
204
+ const base = !declared
205
+ ? join(projectRoot, "..")
206
+ : declared.startsWith("/") || declared.startsWith("~")
207
+ ? declared
208
+ : join(projectRoot, declared);
209
+ return join(base, repoDir(repos[0]));
210
+ }
177
211
  /**
178
212
  * Auto-provision a freshly-created worktree's env: token/config from the workbench
179
213
  * root, apps written into the worktree. Attempts when the doppler extension is enabled
@@ -4,6 +4,7 @@ import { dirname, join } from "node:path";
4
4
  import { fileURLToPath } from "node:url";
5
5
  import { globSync } from "glob";
6
6
  import { disabledDir, disableExtension, enableExtension, ensureExtensionsDirs, extensionConfigDir, extensionsDir, getEnabledExtensions, isEnabled, loadExtension, loadExtensions, resolveManifestPath, } from "../../lib/extension-loader.js";
7
+ import { runHealthCheck } from "../../lib/health.js";
7
8
  const __dirname = dirname(fileURLToPath(import.meta.url));
8
9
  const packageRoot = join(__dirname, "../../..");
9
10
  const builtinDir = join(packageRoot, "extensions");
@@ -47,19 +48,9 @@ export async function extensionsStatus(projectRoot) {
47
48
  const checks = ext.manifest.provides.health_checks ?? [];
48
49
  let healthStatus = "no health check";
49
50
  if (checks.length > 0) {
50
- const results = checks.map((check) => {
51
- try {
52
- execSync(check.command, {
53
- cwd: projectRoot,
54
- timeout: 10000,
55
- stdio: ["ignore", "pipe", "pipe"],
56
- });
57
- return { name: check.name, ok: true };
58
- }
59
- catch {
60
- return { name: check.name, ok: false };
61
- }
62
- });
51
+ // Once per declared repo — see lib/health.ts. In a workbench the code
52
+ // lives in the repos, not beside `.indusk/`.
53
+ const results = checks.map((check) => runHealthCheck(projectRoot, check));
63
54
  const allOk = results.every((r) => r.ok);
64
55
  healthStatus = allOk
65
56
  ? "healthy"
@@ -1,9 +1,38 @@
1
1
  import { execSync } from "node:child_process";
2
2
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
3
3
  import { basename, join } from "node:path";
4
+ import { readReposRoot, readWorkbenchRepos, repoDir } from "../../lib/worktree/repos.js";
5
+ /** `repos_root`, resolved — relative against the workbench, absolute as given. */
6
+ function reposRootFor(projectRoot) {
7
+ const declared = readReposRoot(projectRoot);
8
+ if (!declared)
9
+ return join(projectRoot, "..");
10
+ if (declared.startsWith("/") || declared.startsWith("~"))
11
+ return declared;
12
+ return join(projectRoot, declared);
13
+ }
4
14
  export async function initDocs(projectRoot) {
5
- const projectName = basename(projectRoot);
6
- const docsDir = join(projectRoot, `apps/${projectName}-docs`);
15
+ // Docs describe the APPLICATION and must travel with it. In a workbench,
16
+ // `projectRoot` is the wrapper — scaffolding there produces a site that is
17
+ // orphaned the moment the app is cloned standalone, and named after the
18
+ // wrapper besides (`looper-workbench-docs`, for looper's docs).
19
+ //
20
+ // A workbench with exactly one declared repo has an unambiguous target. With
21
+ // several it does not, so it refuses and asks rather than guessing which
22
+ // repo the docs belong to.
23
+ const repos = readWorkbenchRepos(projectRoot);
24
+ let target = projectRoot;
25
+ if (repos.length === 1) {
26
+ target = join(reposRootFor(projectRoot), repoDir(repos[0]));
27
+ console.info(`Workbench detected — scaffolding into the application repo: ${repos[0].name}\n`);
28
+ }
29
+ else if (repos.length > 1) {
30
+ console.error(`Error: this workbench declares ${repos.length} repos (${repos.map((r) => r.name).join(", ")}).`);
31
+ console.error(" Run `indusk init-docs` from inside the repo the docs belong to.");
32
+ process.exit(1);
33
+ }
34
+ const projectName = basename(target);
35
+ const docsDir = join(target, "apps/docs");
7
36
  if (existsSync(docsDir)) {
8
37
  console.info(`Docs app already exists at apps/${projectName}-docs/`);
9
38
  console.info("Run 'update' to sync templates.");
@@ -26,10 +26,21 @@ const GITIGNORE_ENTRIES = [
26
26
  { comment: "# Session-specific handoff (not project knowledge)", pattern: ".claude/handoff.md" },
27
27
  { comment: "# Semantic graph event log (large, local-only)", pattern: ".indusk/graph/" },
28
28
  { comment: "# Eval results (local-only)", pattern: ".indusk/eval/" },
29
+ // Manifests are CONFIGURATION and belong in version control. Ignoring the
30
+ // whole directory made every manifest untracked, so a project that patched
31
+ // one had no diff, no history, and got it replaced by `indusk update` with
32
+ // no message — a revert detectable only by re-running the check it affected.
33
+ // It also corrupted the repo record: a commit claiming to have scoped the
34
+ // otel health checks recorded only file deletions, because the manifest edit
35
+ // was invisible to `git add`.
36
+ //
37
+ // Only the secrets are ignored. That was always the legitimate half.
29
38
  {
30
- comment: "# Extension manifests are package-owned; env files contain secrets",
31
- pattern: ".indusk/extensions/",
39
+ comment: "# Extension secrets (manifests themselves are tracked configuration)",
40
+ pattern: ".indusk/extensions/*/.env",
32
41
  },
42
+ { comment: "", pattern: ".indusk/extensions/*/.env.*" },
43
+ { comment: "", pattern: "!.indusk/extensions/*/.env.example" },
33
44
  {
34
45
  comment: "# Multi-agent presence bulletin (per-session, machine-local)",
35
46
  pattern: ".indusk/agents/",
@@ -995,17 +1006,32 @@ export async function init(projectRoot, options = {}) {
995
1006
  const { writeConfig } = await import("../../lib/config.js");
996
1007
  const linterTool = "biome";
997
1008
  const linterConfig = local ? ".indusk/biome.json" : "biome.json";
998
- const testTool = detected.testRunner ?? "vitest";
999
- const testConfig = local
1000
- ? `.indusk/${testTool === "jest" ? "jest.config.js" : "vitest.config.ts"}`
1001
- : `${testTool}.config.${testTool === "jest" ? "js" : "ts"}`;
1009
+ // NOT `?? "vitest"`. Detection finding nothing means we do not know the
1010
+ // runner, and recording a guess is worse than recording nothing: `/verify`
1011
+ // acts on this field, so a wrong value makes it invoke a runner that is not
1012
+ // installed and report the failure as the project's. An absent value makes
1013
+ // verify skip a check it has no basis for, which is the honest outcome.
1014
+ //
1015
+ // Detection is also JS-only today — it looks for vitest and jest configs and
1016
+ // nothing else — so every Python project reached this line and was told it
1017
+ // used vitest.
1018
+ const testTool = detected.testRunner;
1019
+ if (!testTool) {
1020
+ console.warn("[verify] No test runner detected — `verify.testRunner` is unset, so `/verify` will skip the test step.");
1021
+ console.warn(" Detection currently looks for vitest and jest configs only. Set it by hand in .indusk/config.json if this project has one.");
1022
+ }
1023
+ const testConfig = testTool
1024
+ ? local
1025
+ ? `.indusk/${testTool === "jest" ? "jest.config.js" : "vitest.config.ts"}`
1026
+ : `${testTool}.config.${testTool === "jest" ? "js" : "ts"}`
1027
+ : undefined;
1002
1028
  // git is the only SCM as of 1.31.0 (git-only-substrate Phase 4) —
1003
1029
  // no SCM detection or scm field write needed.
1004
1030
  const config = {
1005
1031
  mode: local ? "local" : "full",
1006
1032
  verify: {
1007
1033
  linter: { tool: linterTool, config: linterConfig },
1008
- testRunner: { tool: testTool, config: testConfig },
1034
+ ...(testTool && testConfig ? { testRunner: { tool: testTool, config: testConfig } } : {}),
1009
1035
  ...(detected.typeCheck ? { typeCheck: "tsc" } : {}),
1010
1036
  },
1011
1037
  detected: {
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Where an extension's health checks should run.
3
+ *
4
+ * A check is a shell string in a manifest — `test -f instrumentation.py`,
5
+ * `python -c "import opentelemetry"`. It cannot call a TypeScript path helper,
6
+ * so a workbench-aware check would mean every extension author writing
7
+ * workbench-aware shell. They will not, and it would be fragile if they did.
8
+ *
9
+ * So the runner supplies the cwd instead: each check runs once per declared
10
+ * repo. The shell stays naive and becomes correct, and every manifest that has
11
+ * already shipped is fixed without being edited.
12
+ *
13
+ * Found in a real workbench, where `otel-instrumentation-exists` ran at the
14
+ * wrapper — which contains no code — and therefore **could never pass**, before
15
+ * the work or after it.
16
+ */
17
+ export interface HealthCheckSpec {
18
+ name: string;
19
+ command: string;
20
+ }
21
+ export interface HealthCheckResult {
22
+ name: string;
23
+ ok: boolean;
24
+ /** The root that satisfied it, when one did. */
25
+ satisfiedBy?: string;
26
+ /** Every root attempted — so a failure can say how hard it looked. */
27
+ triedRoots: string[];
28
+ output?: string;
29
+ }
30
+ /**
31
+ * The roots a check should be attempted in.
32
+ *
33
+ * A workbench returns its declared repos: that is where code lives, and the
34
+ * wrapper holds only `.indusk/`. Anything else returns itself, which is the
35
+ * behavior every non-workbench project already had.
36
+ */
37
+ export declare function resolveCheckRoots(projectRoot: string): string[];
38
+ /**
39
+ * Run one check, in every root, and report where it passed.
40
+ *
41
+ * Passes if ANY root satisfies it. These checks ask "is this configured?" and in
42
+ * a workbench the answer lives inside one of the repos; requiring every repo to
43
+ * satisfy every check would make any polyglot workbench permanently red, which
44
+ * is the failure mode that gets checks switched off.
45
+ *
46
+ * What this deliberately does NOT do is pass when nothing satisfies it anywhere.
47
+ * A scope fix that turns a check green immediately is a relaxation in disguise.
48
+ */
49
+ export declare function runHealthCheck(projectRoot: string, check: HealthCheckSpec, timeoutMs?: number): HealthCheckResult;
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Where an extension's health checks should run.
3
+ *
4
+ * A check is a shell string in a manifest — `test -f instrumentation.py`,
5
+ * `python -c "import opentelemetry"`. It cannot call a TypeScript path helper,
6
+ * so a workbench-aware check would mean every extension author writing
7
+ * workbench-aware shell. They will not, and it would be fragile if they did.
8
+ *
9
+ * So the runner supplies the cwd instead: each check runs once per declared
10
+ * repo. The shell stays naive and becomes correct, and every manifest that has
11
+ * already shipped is fixed without being edited.
12
+ *
13
+ * Found in a real workbench, where `otel-instrumentation-exists` ran at the
14
+ * wrapper — which contains no code — and therefore **could never pass**, before
15
+ * the work or after it.
16
+ */
17
+ import { execSync } from "node:child_process";
18
+ import { join } from "node:path";
19
+ import { readReposRoot, readWorkbenchRepos, repoDir } from "./worktree/repos.js";
20
+ /**
21
+ * The roots a check should be attempted in.
22
+ *
23
+ * A workbench returns its declared repos: that is where code lives, and the
24
+ * wrapper holds only `.indusk/`. Anything else returns itself, which is the
25
+ * behavior every non-workbench project already had.
26
+ */
27
+ export function resolveCheckRoots(projectRoot) {
28
+ const repos = readWorkbenchRepos(projectRoot);
29
+ if (repos.length === 0)
30
+ return [projectRoot];
31
+ // `repos_root` decides where repos live; `repoDir` decides each one's
32
+ // directory name. Both already have single definitions — this is a caller.
33
+ const declared = readReposRoot(projectRoot);
34
+ const base = !declared
35
+ ? join(projectRoot, "..")
36
+ : declared.startsWith("/") || declared.startsWith("~")
37
+ ? declared
38
+ : join(projectRoot, declared);
39
+ return repos.map((r) => join(base, repoDir(r)));
40
+ }
41
+ /**
42
+ * Run one check, in every root, and report where it passed.
43
+ *
44
+ * Passes if ANY root satisfies it. These checks ask "is this configured?" and in
45
+ * a workbench the answer lives inside one of the repos; requiring every repo to
46
+ * satisfy every check would make any polyglot workbench permanently red, which
47
+ * is the failure mode that gets checks switched off.
48
+ *
49
+ * What this deliberately does NOT do is pass when nothing satisfies it anywhere.
50
+ * A scope fix that turns a check green immediately is a relaxation in disguise.
51
+ */
52
+ export function runHealthCheck(projectRoot, check, timeoutMs = 10_000) {
53
+ const roots = resolveCheckRoots(projectRoot);
54
+ let lastOutput;
55
+ for (const cwd of roots) {
56
+ try {
57
+ const out = execSync(check.command, {
58
+ cwd,
59
+ timeout: timeoutMs,
60
+ stdio: ["ignore", "pipe", "pipe"],
61
+ encoding: "utf-8",
62
+ });
63
+ return { name: check.name, ok: true, satisfiedBy: cwd, triedRoots: roots, output: out };
64
+ }
65
+ catch (e) {
66
+ lastOutput = e instanceof Error ? e.message : String(e);
67
+ }
68
+ }
69
+ return { name: check.name, ok: false, triedRoots: roots, output: lastOutput };
70
+ }
@@ -1,10 +1,10 @@
1
- import { execSync } from "node:child_process";
2
1
  import { createHash } from "node:crypto";
3
2
  import { existsSync, readdirSync, readFileSync } from "node:fs";
4
3
  import { dirname, join } from "node:path";
5
4
  import { fileURLToPath } from "node:url";
6
5
  import { getEvalModel, getProjectGroupId, readConfig, shouldEmitOtelGate } from "../lib/config.js";
7
6
  import { getEnabledExtensions } from "../lib/extension-loader.js";
7
+ import { runHealthCheck } from "../lib/health.js";
8
8
  const __dirname = dirname(fileURLToPath(import.meta.url));
9
9
  const packageRoot = join(__dirname, "../..");
10
10
  /**
@@ -62,21 +62,18 @@ export function registerSystemTools(server, projectRoot) {
62
62
  for (const ext of extensions) {
63
63
  const healthChecks = ext.manifest.provides.health_checks ?? [];
64
64
  for (const check of healthChecks) {
65
- try {
66
- const output = execSync(check.command, {
67
- encoding: "utf-8",
68
- timeout: 10000,
69
- stdio: ["ignore", "pipe", "pipe"],
70
- cwd: projectRoot,
71
- }).trim();
65
+ // Runs once per declared repo — a manifest's shell cannot resolve
66
+ // a workbench path, so the runner supplies the cwd instead.
67
+ const r = runHealthCheck(projectRoot, check);
68
+ if (r.ok) {
72
69
  checks.push({
73
70
  name: `${ext.manifest.name}/${check.name}`,
74
71
  status: "ok",
75
- detail: output || "ok",
72
+ detail: r.output?.trim() || "ok",
76
73
  });
77
74
  }
78
- catch (err) {
79
- const execErr = err;
75
+ else {
76
+ const execErr = { message: r.output, stderr: undefined };
80
77
  checks.push({
81
78
  name: `${ext.manifest.name}/${check.name}`,
82
79
  status: "error",
@@ -9,8 +9,8 @@
9
9
  "command": "command -v doppler >/dev/null 2>&1"
10
10
  },
11
11
  {
12
- "name": "doppler-token-present",
13
- "command": "node -e \"const fs=require('fs');const p='.indusk/extensions/doppler/.env';if(!fs.existsSync(p))process.exit(1);process.exit(/DOPPLER_TOKEN=\\S/.test(fs.readFileSync(p,'utf-8'))?0:1)\""
12
+ "name": "doppler-authenticated",
13
+ "command": "doppler me >/dev/null 2>&1 || node -e \"const fs=require('fs');const p='.indusk/extensions/doppler/.env';process.exit(fs.existsSync(p)&&/DOPPLER_TOKEN=\\S/.test(fs.readFileSync(p,'utf-8'))?0:1)\""
14
14
  }
15
15
  ]
16
16
  },
@@ -131,8 +131,10 @@ shared. (Inherited from the worktree extension's `compose_project_name` model.)
131
131
  ## Health
132
132
 
133
133
  - `doppler-cli-installed` — the `doppler` binary is on PATH (`brew install dopplerhq/cli/doppler`).
134
- - `doppler-token-present` — checks for a token file. **With `doppler login` you don't
135
- need one**, so this check can fail while env-pull still works via your CLI session.
134
+ - `doppler-authenticated` — asks whether Doppler can actually authenticate
135
+ (`doppler me`), falling back to a service-token file. `doppler login` satisfies
136
+ it. It used to test only for the token file, so it went red for anyone logged
137
+ in — a check that reports a working setup as broken.
136
138
 
137
139
  If a worktree comes up without env: confirm the CLI is installed and you're either
138
140
  logged in (`doppler login`) or have a token (file / `DOPPLER_TOKEN`), and that
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infinitedusky/indusk-mcp",
3
- "version": "1.38.2",
3
+ "version": "1.39.0",
4
4
  "description": "InDusk development system \u2014 skills, MCP tools, and CLI for structured AI-assisted development",
5
5
  "type": "module",
6
6
  "files": [