@infinitedusky/indusk-mcp 1.28.4 → 1.28.6

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 (30) 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/extensions.d.ts +11 -0
  16. package/dist/bin/commands/extensions.js +31 -5
  17. package/dist/bin/commands/init-docs.js +68 -31
  18. package/dist/bin/commands/init.d.ts +1 -0
  19. package/dist/bin/commands/init.js +7 -3
  20. package/dist/bin/commands/update.js +26 -14
  21. package/extensions/chrome-devtools/manifest.json +12 -1
  22. package/extensions/dash0/.env.example +17 -27
  23. package/extensions/dash0/skill.md +8 -0
  24. package/extensions/local-telemetry/.env.example +31 -26
  25. package/extensions/local-telemetry/skill.md +61 -2
  26. package/package.json +1 -1
  27. package/skills/research.md +78 -0
  28. /package/admin/.next/static/{-1Cae6-Q62t6-4oqorc1Y → jf5MWsfFh_8RdLHs4dBK4}/_buildManifest.js +0 -0
  29. /package/admin/.next/static/{-1Cae6-Q62t6-4oqorc1Y → jf5MWsfFh_8RdLHs4dBK4}/_clientMiddlewareManifest.js +0 -0
  30. /package/admin/.next/static/{-1Cae6-Q62t6-4oqorc1Y → jf5MWsfFh_8RdLHs4dBK4}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- -1Cae6-Q62t6-4oqorc1Y
1
+ jf5MWsfFh_8RdLHs4dBK4
@@ -7,9 +7,9 @@
7
7
  "static/chunks/03~yq9q893hmn.js"
8
8
  ],
9
9
  "lowPriorityFiles": [
10
- "static/-1Cae6-Q62t6-4oqorc1Y/_buildManifest.js",
11
- "static/-1Cae6-Q62t6-4oqorc1Y/_ssgManifest.js",
12
- "static/-1Cae6-Q62t6-4oqorc1Y/_clientMiddlewareManifest.js"
10
+ "static/jf5MWsfFh_8RdLHs4dBK4/_buildManifest.js",
11
+ "static/jf5MWsfFh_8RdLHs4dBK4/_ssgManifest.js",
12
+ "static/jf5MWsfFh_8RdLHs4dBK4/_clientMiddlewareManifest.js"
13
13
  ],
14
14
  "rootMainFiles": [
15
15
  "static/chunks/0_yzfo7pu205m.js",
@@ -5,9 +5,9 @@
5
5
  "devFiles": [],
6
6
  "polyfillFiles": [],
7
7
  "lowPriorityFiles": [
8
- "static/-1Cae6-Q62t6-4oqorc1Y/_buildManifest.js",
9
- "static/-1Cae6-Q62t6-4oqorc1Y/_ssgManifest.js",
10
- "static/-1Cae6-Q62t6-4oqorc1Y/_clientMiddlewareManifest.js"
8
+ "static/jf5MWsfFh_8RdLHs4dBK4/_buildManifest.js",
9
+ "static/jf5MWsfFh_8RdLHs4dBK4/_ssgManifest.js",
10
+ "static/jf5MWsfFh_8RdLHs4dBK4/_clientMiddlewareManifest.js"
11
11
  ],
12
12
  "rootMainFiles": []
13
13
  }
@@ -1 +1 @@
1
- <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0_yzfo7pu205m.js"/><script src="/_next/static/chunks/0_r.3~d-5z8~_.js" async=""></script><script src="/_next/static/chunks/0u1lny1.4-f8c.js" async=""></script><script src="/_next/static/chunks/036h9~rhidv.e.js" async=""></script><script src="/_next/static/chunks/turbopack-129yl57l2cd7_.js" async=""></script><script src="/_next/static/chunks/0.v8w524wvk94.js" async=""></script><script src="/_next/static/chunks/0z9652tpun_.d.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/0_yzfo7pu205m.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[85530,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"default\"]\n3:I[50571,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"default\"]\n4:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"ViewportBoundary\"]\na:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"MetadataBoundary\"]\nc:I[59179,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"-1Cae6-Q62t6-4oqorc1Y\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"e:I[61299,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"link\",\"0\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Le\",\"1\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0_yzfo7pu205m.js"/><script src="/_next/static/chunks/0_r.3~d-5z8~_.js" async=""></script><script src="/_next/static/chunks/0u1lny1.4-f8c.js" async=""></script><script src="/_next/static/chunks/036h9~rhidv.e.js" async=""></script><script src="/_next/static/chunks/turbopack-129yl57l2cd7_.js" async=""></script><script src="/_next/static/chunks/0.v8w524wvk94.js" async=""></script><script src="/_next/static/chunks/0z9652tpun_.d.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/0_yzfo7pu205m.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[85530,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"default\"]\n3:I[50571,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"default\"]\n4:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"ViewportBoundary\"]\na:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"MetadataBoundary\"]\nc:I[59179,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"jf5MWsfFh_8RdLHs4dBK4\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"e:I[61299,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"link\",\"0\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Le\",\"1\",{}]]\n"])</script></body></html>
@@ -6,7 +6,7 @@
6
6
  8:I[76614,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0z9652tpun_.d.js"],"ViewportBoundary"]
7
7
  a:I[76614,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0z9652tpun_.d.js"],"MetadataBoundary"]
8
8
  c:I[59179,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0z9652tpun_.d.js"],"default",1]
9
- 0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"-1Cae6-Q62t6-4oqorc1Y"}
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":"jf5MWsfFh_8RdLHs4dBK4"}
10
10
  d:[]
11
11
  7:"$Wd"
12
12
  9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
@@ -1,5 +1,5 @@
1
1
  1:"$Sreact.fragment"
2
2
  2:I[76614,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0z9652tpun_.d.js"],"OutletBoundary"]
3
3
  3:"$Sreact.suspense"
4
- 0:{"rsc":["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"-1Cae6-Q62t6-4oqorc1Y"}
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":"jf5MWsfFh_8RdLHs4dBK4"}
5
5
  4:null
@@ -6,7 +6,7 @@
6
6
  8:I[76614,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0z9652tpun_.d.js"],"ViewportBoundary"]
7
7
  a:I[76614,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0z9652tpun_.d.js"],"MetadataBoundary"]
8
8
  c:I[59179,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0z9652tpun_.d.js"],"default",1]
9
- 0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"-1Cae6-Q62t6-4oqorc1Y"}
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":"jf5MWsfFh_8RdLHs4dBK4"}
10
10
  d:[]
11
11
  7:"$Wd"
12
12
  9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
@@ -3,4 +3,4 @@
3
3
  3:I[76614,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0z9652tpun_.d.js"],"MetadataBoundary"]
4
4
  4:"$Sreact.suspense"
5
5
  5:I[61299,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0z9652tpun_.d.js"],"IconMark"]
6
- 0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","link","0",{"rel":"icon","href":"/favicon.ico?favicon.0x3dzn~oxb6tn.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L5","1",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"-1Cae6-Q62t6-4oqorc1Y"}
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":"jf5MWsfFh_8RdLHs4dBK4"}
@@ -2,4 +2,4 @@
2
2
  2:I[85530,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0z9652tpun_.d.js"],"default"]
3
3
  3:I[50571,["/_next/static/chunks/0.v8w524wvk94.js","/_next/static/chunks/0z9652tpun_.d.js"],"default"]
4
4
  4:[]
5
- 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"-1Cae6-Q62t6-4oqorc1Y"}
5
+ 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"jf5MWsfFh_8RdLHs4dBK4"}
@@ -1 +1 @@
1
- 0:{"tree":{"name":"","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"-1Cae6-Q62t6-4oqorc1Y"}
1
+ 0:{"tree":{"name":"","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"jf5MWsfFh_8RdLHs4dBK4"}
@@ -7,9 +7,9 @@ globalThis.__BUILD_MANIFEST = {
7
7
  "static/chunks/03~yq9q893hmn.js"
8
8
  ],
9
9
  "lowPriorityFiles": [
10
- "static/-1Cae6-Q62t6-4oqorc1Y/_buildManifest.js",
11
- "static/-1Cae6-Q62t6-4oqorc1Y/_ssgManifest.js",
12
- "static/-1Cae6-Q62t6-4oqorc1Y/_clientMiddlewareManifest.js"
10
+ "static/jf5MWsfFh_8RdLHs4dBK4/_buildManifest.js",
11
+ "static/jf5MWsfFh_8RdLHs4dBK4/_ssgManifest.js",
12
+ "static/jf5MWsfFh_8RdLHs4dBK4/_clientMiddlewareManifest.js"
13
13
  ],
14
14
  "rootMainFiles": [
15
15
  "static/chunks/0_yzfo7pu205m.js",
@@ -1 +1 @@
1
- <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0_yzfo7pu205m.js"/><script src="/_next/static/chunks/0_r.3~d-5z8~_.js" async=""></script><script src="/_next/static/chunks/0u1lny1.4-f8c.js" async=""></script><script src="/_next/static/chunks/036h9~rhidv.e.js" async=""></script><script src="/_next/static/chunks/turbopack-129yl57l2cd7_.js" async=""></script><script src="/_next/static/chunks/0.v8w524wvk94.js" async=""></script><script src="/_next/static/chunks/0z9652tpun_.d.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/0_yzfo7pu205m.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[85530,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"default\"]\n3:I[50571,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"default\"]\n4:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"ViewportBoundary\"]\na:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"MetadataBoundary\"]\nc:I[59179,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"-1Cae6-Q62t6-4oqorc1Y\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"e:I[61299,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"link\",\"0\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Le\",\"1\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0_yzfo7pu205m.js"/><script src="/_next/static/chunks/0_r.3~d-5z8~_.js" async=""></script><script src="/_next/static/chunks/0u1lny1.4-f8c.js" async=""></script><script src="/_next/static/chunks/036h9~rhidv.e.js" async=""></script><script src="/_next/static/chunks/turbopack-129yl57l2cd7_.js" async=""></script><script src="/_next/static/chunks/0.v8w524wvk94.js" async=""></script><script src="/_next/static/chunks/0z9652tpun_.d.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><link rel="icon" href="/favicon.ico?favicon.0x3dzn~oxb6tn.ico" sizes="256x256" type="image/x-icon"/><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/0_yzfo7pu205m.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[85530,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"default\"]\n3:I[50571,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"default\"]\n4:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"ViewportBoundary\"]\na:I[76614,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"MetadataBoundary\"]\nc:I[59179,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"default\",1]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"jf5MWsfFh_8RdLHs4dBK4\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"e:I[61299,[\"/_next/static/chunks/0.v8w524wvk94.js\",\"/_next/static/chunks/0z9652tpun_.d.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"link\",\"0\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$Le\",\"1\",{}]]\n"])</script></body></html>
package/admin/.next/trace CHANGED
@@ -1 +1 @@
1
- [{"name":"generate-buildid","duration":184,"timestamp":2127949568571,"id":4,"parentId":1,"tags":{},"startTime":1776774820356,"traceId":"bd1c436d08553afe"},{"name":"load-custom-routes","duration":212,"timestamp":2127949568815,"id":5,"parentId":1,"tags":{},"startTime":1776774820356,"traceId":"bd1c436d08553afe"},{"name":"create-dist-dir","duration":83,"timestamp":2127949569044,"id":6,"parentId":1,"tags":{},"startTime":1776774820356,"traceId":"bd1c436d08553afe"},{"name":"clean","duration":22833,"timestamp":2127949569926,"id":7,"parentId":1,"tags":{},"startTime":1776774820357,"traceId":"bd1c436d08553afe"},{"name":"discover-routes","duration":3797,"timestamp":2127949606776,"id":8,"parentId":1,"tags":{},"startTime":1776774820394,"traceId":"bd1c436d08553afe"},{"name":"create-root-mapping","duration":31,"timestamp":2127949610661,"id":9,"parentId":1,"tags":{},"startTime":1776774820398,"traceId":"bd1c436d08553afe"},{"name":"generate-route-types","duration":37361,"timestamp":2127949611494,"id":10,"parentId":1,"tags":{},"startTime":1776774820399,"traceId":"bd1c436d08553afe"},{"name":"public-dir-conflict-check","duration":48,"timestamp":2127949648958,"id":11,"parentId":1,"tags":{},"startTime":1776774820436,"traceId":"bd1c436d08553afe"},{"name":"generate-routes-manifest","duration":1376,"timestamp":2127949649052,"id":12,"parentId":1,"tags":{},"startTime":1776774820436,"traceId":"bd1c436d08553afe"},{"name":"run-turbopack","duration":1856682,"timestamp":2127949653213,"id":14,"parentId":1,"tags":{},"startTime":1776774820441,"traceId":"bd1c436d08553afe"},{"name":"turbopack-build-events","duration":34,"timestamp":2127949780313,"id":15,"parentId":1,"tags":{},"startTime":1776774820568,"traceId":"bd1c436d08553afe"},{"name":"run-typescript","duration":2374126,"timestamp":2127951529398,"id":16,"parentId":1,"tags":{},"startTime":1776774822317,"traceId":"bd1c436d08553afe"},{"name":"generate-required-server-files","duration":798,"timestamp":2127953904545,"id":18,"parentId":1,"tags":{},"startTime":1776774824692,"traceId":"bd1c436d08553afe"},{"name":"check-static-error-page","duration":1978,"timestamp":2127953933773,"id":20,"parentId":19,"tags":{},"startTime":1776774824721,"traceId":"bd1c436d08553afe"},{"name":"is-page-static","duration":227669,"timestamp":2127953938442,"id":30,"parentId":22,"tags":{},"startTime":1776774824726,"traceId":"bd1c436d08553afe"},{"name":"check-page","duration":231093,"timestamp":2127953935132,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1776774824723,"traceId":"bd1c436d08553afe"},{"name":"is-page-static","duration":301863,"timestamp":2127953938301,"id":29,"parentId":21,"tags":{},"startTime":1776774824726,"traceId":"bd1c436d08553afe"},{"name":"check-page","duration":305892,"timestamp":2127953934311,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1776774824722,"traceId":"bd1c436d08553afe"},{"name":"is-page-static","duration":301767,"timestamp":2127953938472,"id":31,"parentId":23,"tags":{},"startTime":1776774824726,"traceId":"bd1c436d08553afe"},{"name":"check-page","duration":304907,"timestamp":2127953935344,"id":23,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1776774824723,"traceId":"bd1c436d08553afe"},{"name":"is-page-static","duration":309892,"timestamp":2127953940609,"id":32,"parentId":28,"tags":{},"startTime":1776774824728,"traceId":"bd1c436d08553afe"},{"name":"check-page","duration":314846,"timestamp":2127953935714,"id":28,"parentId":19,"tags":{"page":"/"},"startTime":1776774824723,"traceId":"bd1c436d08553afe"},{"name":"is-page-static","duration":314867,"timestamp":2127953940667,"id":33,"parentId":24,"tags":{},"startTime":1776774824728,"traceId":"bd1c436d08553afe"},{"name":"check-page","duration":320034,"timestamp":2127953935541,"id":24,"parentId":19,"tags":{"page":"/p/[project]"},"startTime":1776774824723,"traceId":"bd1c436d08553afe"},{"name":"is-page-static","duration":323055,"timestamp":2127953940695,"id":34,"parentId":25,"tags":{},"startTime":1776774824728,"traceId":"bd1c436d08553afe"},{"name":"check-page","duration":328432,"timestamp":2127953935591,"id":25,"parentId":19,"tags":{"page":"/p/[project]/plan/[name]"},"startTime":1776774824723,"traceId":"bd1c436d08553afe"},{"name":"is-page-static","duration":346891,"timestamp":2127953940821,"id":36,"parentId":27,"tags":{},"startTime":1776774824728,"traceId":"bd1c436d08553afe"},{"name":"check-page","duration":352085,"timestamp":2127953935666,"id":27,"parentId":19,"tags":{"page":"/p/[project]/scorecards"},"startTime":1776774824723,"traceId":"bd1c436d08553afe"},{"name":"is-page-static","duration":347306,"timestamp":2127953940786,"id":35,"parentId":26,"tags":{},"startTime":1776774824728,"traceId":"bd1c436d08553afe"},{"name":"check-page","duration":352473,"timestamp":2127953935632,"id":26,"parentId":19,"tags":{"page":"/p/[project]/research/[slug]"},"startTime":1776774824723,"traceId":"bd1c436d08553afe"},{"name":"static-check","duration":354693,"timestamp":2127953933438,"id":19,"parentId":1,"tags":{},"startTime":1776774824721,"traceId":"bd1c436d08553afe"},{"name":"write-routes-manifest","duration":652,"timestamp":2127954289028,"id":38,"parentId":1,"tags":{},"startTime":1776774825076,"traceId":"bd1c436d08553afe"},{"name":"load-dotenv","duration":18,"timestamp":2127954301977,"id":41,"parentId":40,"tags":{},"startTime":1776774825089,"traceId":"bd1c436d08553afe"},{"name":"run-export-path-map","duration":180,"timestamp":2127954303677,"id":42,"parentId":40,"tags":{},"startTime":1776774825091,"traceId":"bd1c436d08553afe"},{"name":"next-export","duration":246162,"timestamp":2127954301406,"id":40,"parentId":1,"tags":{},"startTime":1776774825089,"traceId":"bd1c436d08553afe"},{"name":"move-exported-app-global-error-","duration":359,"timestamp":2127954548194,"id":43,"parentId":39,"tags":{},"startTime":1776774825336,"traceId":"bd1c436d08553afe"},{"name":"static-generation","duration":253520,"timestamp":2127954296021,"id":39,"parentId":1,"tags":{},"startTime":1776774825083,"traceId":"bd1c436d08553afe"},{"name":"write-routes-manifest","duration":204,"timestamp":2127954549647,"id":44,"parentId":1,"tags":{},"startTime":1776774825337,"traceId":"bd1c436d08553afe"},{"name":"print-tree-view","duration":1455,"timestamp":2127954564588,"id":45,"parentId":1,"tags":{},"startTime":1776774825352,"traceId":"bd1c436d08553afe"},{"name":"write-route-bundle-stats","duration":2965,"timestamp":2127954566057,"id":46,"parentId":1,"tags":{},"startTime":1776774825353,"traceId":"bd1c436d08553afe"},{"name":"telemetry-flush","duration":73525,"timestamp":2127954569038,"id":47,"parentId":1,"tags":{},"startTime":1776774825356,"traceId":"bd1c436d08553afe"},{"name":"next-build","duration":5097783,"timestamp":2127949544795,"id":1,"tags":{"buildMode":"default","version":"16.2.4","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1776774820332,"traceId":"bd1c436d08553afe"}]
1
+ [{"name":"generate-buildid","duration":122,"timestamp":2950051417954,"id":4,"parentId":1,"tags":{},"startTime":1777596921879,"traceId":"bc5ff2ef8da48a5c"},{"name":"load-custom-routes","duration":202,"timestamp":2950051418133,"id":5,"parentId":1,"tags":{},"startTime":1777596921880,"traceId":"bc5ff2ef8da48a5c"},{"name":"create-dist-dir","duration":92,"timestamp":2950051418349,"id":6,"parentId":1,"tags":{},"startTime":1777596921880,"traceId":"bc5ff2ef8da48a5c"},{"name":"clean","duration":23346,"timestamp":2950051418970,"id":7,"parentId":1,"tags":{},"startTime":1777596921881,"traceId":"bc5ff2ef8da48a5c"},{"name":"discover-routes","duration":3943,"timestamp":2950051448380,"id":8,"parentId":1,"tags":{},"startTime":1777596921910,"traceId":"bc5ff2ef8da48a5c"},{"name":"create-root-mapping","duration":35,"timestamp":2950051452410,"id":9,"parentId":1,"tags":{},"startTime":1777596921914,"traceId":"bc5ff2ef8da48a5c"},{"name":"generate-route-types","duration":35978,"timestamp":2950051453128,"id":10,"parentId":1,"tags":{},"startTime":1777596921915,"traceId":"bc5ff2ef8da48a5c"},{"name":"public-dir-conflict-check","duration":48,"timestamp":2950051489202,"id":11,"parentId":1,"tags":{},"startTime":1777596921951,"traceId":"bc5ff2ef8da48a5c"},{"name":"generate-routes-manifest","duration":1249,"timestamp":2950051489288,"id":12,"parentId":1,"tags":{},"startTime":1777596921951,"traceId":"bc5ff2ef8da48a5c"},{"name":"run-turbopack","duration":1641875,"timestamp":2950051492132,"id":14,"parentId":1,"tags":{},"startTime":1777596921954,"traceId":"bc5ff2ef8da48a5c"},{"name":"turbopack-build-events","duration":38,"timestamp":2950051625285,"id":15,"parentId":1,"tags":{},"startTime":1777596922087,"traceId":"bc5ff2ef8da48a5c"},{"name":"run-typescript","duration":2087630,"timestamp":2950053152058,"id":16,"parentId":1,"tags":{},"startTime":1777596923614,"traceId":"bc5ff2ef8da48a5c"},{"name":"generate-required-server-files","duration":823,"timestamp":2950055240593,"id":18,"parentId":1,"tags":{},"startTime":1777596925702,"traceId":"bc5ff2ef8da48a5c"},{"name":"check-static-error-page","duration":2059,"timestamp":2950055252201,"id":20,"parentId":19,"tags":{},"startTime":1777596925714,"traceId":"bc5ff2ef8da48a5c"},{"name":"is-page-static","duration":174407,"timestamp":2950055256606,"id":30,"parentId":22,"tags":{},"startTime":1777596925718,"traceId":"bc5ff2ef8da48a5c"},{"name":"check-page","duration":177481,"timestamp":2950055253684,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1777596925715,"traceId":"bc5ff2ef8da48a5c"},{"name":"is-page-static","duration":211977,"timestamp":2950055256492,"id":29,"parentId":21,"tags":{},"startTime":1777596925718,"traceId":"bc5ff2ef8da48a5c"},{"name":"check-page","duration":215622,"timestamp":2950055252884,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1777596925714,"traceId":"bc5ff2ef8da48a5c"},{"name":"is-page-static","duration":213161,"timestamp":2950055256634,"id":31,"parentId":23,"tags":{},"startTime":1777596925718,"traceId":"bc5ff2ef8da48a5c"},{"name":"check-page","duration":215964,"timestamp":2950055253860,"id":23,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1777596925715,"traceId":"bc5ff2ef8da48a5c"},{"name":"is-page-static","duration":221609,"timestamp":2950055263444,"id":32,"parentId":28,"tags":{},"startTime":1777596925725,"traceId":"bc5ff2ef8da48a5c"},{"name":"check-page","duration":230868,"timestamp":2950055254215,"id":28,"parentId":19,"tags":{"page":"/"},"startTime":1777596925716,"traceId":"bc5ff2ef8da48a5c"},{"name":"is-page-static","duration":223402,"timestamp":2950055263542,"id":33,"parentId":24,"tags":{},"startTime":1777596925725,"traceId":"bc5ff2ef8da48a5c"},{"name":"check-page","duration":232925,"timestamp":2950055254056,"id":24,"parentId":19,"tags":{"page":"/p/[project]"},"startTime":1777596925716,"traceId":"bc5ff2ef8da48a5c"},{"name":"is-page-static","duration":232155,"timestamp":2950055263574,"id":34,"parentId":25,"tags":{},"startTime":1777596925725,"traceId":"bc5ff2ef8da48a5c"},{"name":"check-page","duration":241909,"timestamp":2950055254098,"id":25,"parentId":19,"tags":{"page":"/p/[project]/plan/[name]"},"startTime":1777596925716,"traceId":"bc5ff2ef8da48a5c"},{"name":"is-page-static","duration":232348,"timestamp":2950055263710,"id":36,"parentId":27,"tags":{},"startTime":1777596925725,"traceId":"bc5ff2ef8da48a5c"},{"name":"check-page","duration":241894,"timestamp":2950055254175,"id":27,"parentId":19,"tags":{"page":"/p/[project]/scorecards"},"startTime":1777596925716,"traceId":"bc5ff2ef8da48a5c"},{"name":"is-page-static","duration":234203,"timestamp":2950055263669,"id":35,"parentId":26,"tags":{},"startTime":1777596925725,"traceId":"bc5ff2ef8da48a5c"},{"name":"check-page","duration":243747,"timestamp":2950055254138,"id":26,"parentId":19,"tags":{"page":"/p/[project]/research/[slug]"},"startTime":1777596925716,"traceId":"bc5ff2ef8da48a5c"},{"name":"static-check","duration":246350,"timestamp":2950055251545,"id":19,"parentId":1,"tags":{},"startTime":1777596925713,"traceId":"bc5ff2ef8da48a5c"},{"name":"write-routes-manifest","duration":200,"timestamp":2950055498699,"id":38,"parentId":1,"tags":{},"startTime":1777596925960,"traceId":"bc5ff2ef8da48a5c"},{"name":"load-dotenv","duration":19,"timestamp":2950055504931,"id":41,"parentId":40,"tags":{},"startTime":1777596925966,"traceId":"bc5ff2ef8da48a5c"},{"name":"run-export-path-map","duration":177,"timestamp":2950055505943,"id":42,"parentId":40,"tags":{},"startTime":1777596925967,"traceId":"bc5ff2ef8da48a5c"},{"name":"next-export","duration":202070,"timestamp":2950055504337,"id":40,"parentId":1,"tags":{},"startTime":1777596925966,"traceId":"bc5ff2ef8da48a5c"},{"name":"move-exported-app-global-error-","duration":303,"timestamp":2950055707011,"id":43,"parentId":39,"tags":{},"startTime":1777596926169,"traceId":"bc5ff2ef8da48a5c"},{"name":"static-generation","duration":207356,"timestamp":2950055500684,"id":39,"parentId":1,"tags":{},"startTime":1777596925962,"traceId":"bc5ff2ef8da48a5c"},{"name":"write-routes-manifest","duration":109,"timestamp":2950055708118,"id":44,"parentId":1,"tags":{},"startTime":1777596926170,"traceId":"bc5ff2ef8da48a5c"},{"name":"print-tree-view","duration":1540,"timestamp":2950055712558,"id":45,"parentId":1,"tags":{},"startTime":1777596926174,"traceId":"bc5ff2ef8da48a5c"},{"name":"write-route-bundle-stats","duration":5373,"timestamp":2950055714109,"id":46,"parentId":1,"tags":{},"startTime":1777596926176,"traceId":"bc5ff2ef8da48a5c"},{"name":"telemetry-flush","duration":122318,"timestamp":2950055719494,"id":47,"parentId":1,"tags":{},"startTime":1777596926181,"traceId":"bc5ff2ef8da48a5c"},{"name":"next-build","duration":4511906,"timestamp":2950051329925,"id":1,"tags":{"buildMode":"default","version":"16.2.4","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1777596921791,"traceId":"bc5ff2ef8da48a5c"}]
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":1856682,"timestamp":2127949653213,"id":14,"parentId":1,"tags":{},"startTime":1776774820441,"traceId":"bd1c436d08553afe"},{"name":"turbopack-build-events","duration":34,"timestamp":2127949780313,"id":15,"parentId":1,"tags":{},"startTime":1776774820568,"traceId":"bd1c436d08553afe"},{"name":"run-typescript","duration":2374126,"timestamp":2127951529398,"id":16,"parentId":1,"tags":{},"startTime":1776774822317,"traceId":"bd1c436d08553afe"},{"name":"static-check","duration":354693,"timestamp":2127953933438,"id":19,"parentId":1,"tags":{},"startTime":1776774824721,"traceId":"bd1c436d08553afe"},{"name":"static-generation","duration":253520,"timestamp":2127954296021,"id":39,"parentId":1,"tags":{},"startTime":1776774825083,"traceId":"bd1c436d08553afe"},{"name":"telemetry-flush","duration":73525,"timestamp":2127954569038,"id":47,"parentId":1,"tags":{},"startTime":1776774825356,"traceId":"bd1c436d08553afe"},{"name":"next-build","duration":5097783,"timestamp":2127949544795,"id":1,"tags":{"buildMode":"default","version":"16.2.4","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1776774820332,"traceId":"bd1c436d08553afe"}]
1
+ [{"name":"run-turbopack","duration":1641875,"timestamp":2950051492132,"id":14,"parentId":1,"tags":{},"startTime":1777596921954,"traceId":"bc5ff2ef8da48a5c"},{"name":"turbopack-build-events","duration":38,"timestamp":2950051625285,"id":15,"parentId":1,"tags":{},"startTime":1777596922087,"traceId":"bc5ff2ef8da48a5c"},{"name":"run-typescript","duration":2087630,"timestamp":2950053152058,"id":16,"parentId":1,"tags":{},"startTime":1777596923614,"traceId":"bc5ff2ef8da48a5c"},{"name":"static-check","duration":246350,"timestamp":2950055251545,"id":19,"parentId":1,"tags":{},"startTime":1777596925713,"traceId":"bc5ff2ef8da48a5c"},{"name":"static-generation","duration":207356,"timestamp":2950055500684,"id":39,"parentId":1,"tags":{},"startTime":1777596925962,"traceId":"bc5ff2ef8da48a5c"},{"name":"telemetry-flush","duration":122318,"timestamp":2950055719494,"id":47,"parentId":1,"tags":{},"startTime":1777596926181,"traceId":"bc5ff2ef8da48a5c"},{"name":"next-build","duration":4511906,"timestamp":2950051329925,"id":1,"tags":{"buildMode":"default","version":"16.2.4","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1777596921791,"traceId":"bc5ff2ef8da48a5c"}]
@@ -7,3 +7,14 @@ export declare function extensionsRemove(projectRoot: string, names: string[]):
7
7
  export declare function extensionsUpdate(projectRoot: string, names?: string[]): Promise<void>;
8
8
  export declare function extensionsSuggest(projectRoot: string): Promise<void>;
9
9
  export declare function autoEnableExtensions(projectRoot: string): Promise<void>;
10
+ /**
11
+ * Whether an extension's `.env` file is functionally consumed (vs
12
+ * reference-only). Today the signal is "has auth-required MCP headers" —
13
+ * extensions with auth populate `.mcp.json` from `.env`, so a missing
14
+ * `.env` means the MCP server can't be wired. Extensions without that
15
+ * (local-telemetry, whose MCP is wired dynamically by the daemon; any
16
+ * no-MCP extension) treat `.env.example` as documentation.
17
+ *
18
+ * Exported so `update.ts` can gate its inline hint on the same rule.
19
+ */
20
+ export declare function envIsFunctional(name: string): boolean;
@@ -632,11 +632,35 @@ function copyExtensionAssets(projectRoot, name) {
632
632
  cpSync(sourceExample, join(targetDir, ".env.example"));
633
633
  }
634
634
  /**
635
- * After enable, nudge the user if this extension ships an `.env.example`
636
- * but no real `.env` exists yet. Silent when either the extension has no
637
- * template (nothing to do) or the user has already created `.env` (they're
638
- * configured). Runs before `printMcpSetup` so the actionable `cp` command
639
- * appears at the top of the extension's enable output.
635
+ * Whether an extension's `.env` file is functionally consumed (vs
636
+ * reference-only). Today the signal is "has auth-required MCP headers"
637
+ * extensions with auth populate `.mcp.json` from `.env`, so a missing
638
+ * `.env` means the MCP server can't be wired. Extensions without that
639
+ * (local-telemetry, whose MCP is wired dynamically by the daemon; any
640
+ * no-MCP extension) treat `.env.example` as documentation.
641
+ *
642
+ * Exported so `update.ts` can gate its inline hint on the same rule.
643
+ */
644
+ export function envIsFunctional(name) {
645
+ const manifestPath = join(builtinDir, name, "manifest.json");
646
+ if (!existsSync(manifestPath))
647
+ return false;
648
+ const manifest = loadExtension(manifestPath);
649
+ const headers = manifest?.mcp_server?.headers;
650
+ return !!headers && Object.keys(headers).length > 0;
651
+ }
652
+ /**
653
+ * After enable, nudge the user if this extension *functionally consumes*
654
+ * `.env` (auth-required MCP server) AND no real `.env` exists yet. Silent
655
+ * when:
656
+ * - no `.env.example` ships (nothing to point at)
657
+ * - the user has already created `.env` (they're configured)
658
+ * - the extension has no auth-required MCP server (`.env.example` is
659
+ * reference-only, e.g. local-telemetry's port documentation — copying
660
+ * it to `.env` wouldn't "activate" anything because nothing reads it)
661
+ *
662
+ * Runs before `printMcpSetup` so the actionable `cp` command appears at
663
+ * the top of the extension's enable output.
640
664
  */
641
665
  function printEnvSetupHint(projectRoot, name) {
642
666
  const targetDir = extensionConfigDir(projectRoot, name);
@@ -646,6 +670,8 @@ function printEnvSetupHint(projectRoot, name) {
646
670
  return;
647
671
  if (existsSync(envPath))
648
672
  return;
673
+ if (!envIsFunctional(name))
674
+ return;
649
675
  console.info(`\n ${name}: .env not found — copy the template to activate:`);
650
676
  console.info(` cp .indusk/extensions/${name}/.env.example .indusk/extensions/${name}/.env`);
651
677
  console.info(` Then edit .env and fill in values (see inline comments).`);
@@ -19,6 +19,9 @@ export async function initDocs(projectRoot) {
19
19
  "src/reference/tools",
20
20
  "src/decisions",
21
21
  "src/lessons",
22
+ "src/api",
23
+ "src/specs/openapi",
24
+ "src/public",
22
25
  ];
23
26
  for (const dir of dirs) {
24
27
  mkdirSync(join(docsDir, dir), { recursive: true });
@@ -38,6 +41,7 @@ export async function initDocs(projectRoot) {
38
41
  mermaid: "^10.2.2",
39
42
  panzoom: "^9.4.3",
40
43
  vitepress: "^1.6.3",
44
+ "vitepress-openapi": "^0.1.20",
41
45
  "vitepress-plugin-llms": "^1.12.0",
42
46
  "vitepress-plugin-mermaid": "^2.0.10",
43
47
  vue: "^3.4.15",
@@ -83,6 +87,7 @@ const config = defineConfig({
83
87
  nav: [
84
88
  { text: "Guide", link: "/guide/" },
85
89
  { text: "Reference", link: "/reference/" },
90
+ { text: "API", link: "/api/" },
86
91
  { text: "Decisions", link: "/decisions/" },
87
92
  { text: "Lessons", link: "/lessons/" },
88
93
  ],
@@ -105,6 +110,12 @@ const config = defineConfig({
105
110
  ],
106
111
  },
107
112
  ],
113
+ "/api/": [
114
+ {
115
+ text: "API",
116
+ items: [{ text: "Overview", link: "/api/" }],
117
+ },
118
+ ],
108
119
  "/decisions/": [
109
120
  {
110
121
  text: "Architecture Decisions",
@@ -139,12 +150,18 @@ export default withMermaid(config);
139
150
  // .vitepress/theme/index.ts
140
151
  writeFileSync(join(docsDir, "src/.vitepress/theme/index.ts"), `import type { Theme } from "vitepress";
141
152
  import DefaultTheme from "vitepress/theme";
153
+ import { theme as openapiTheme, useOpenapi } from "vitepress-openapi/client";
154
+ import "vitepress-openapi/dist/style.css";
142
155
  import FullscreenDiagram from "../components/FullscreenDiagram.vue";
156
+ import spec from "../../specs/openapi/openapi.json" with { type: "json" };
143
157
 
144
158
  export default {
145
159
  extends: DefaultTheme,
146
- enhanceApp({ app }) {
160
+ async enhanceApp(ctx) {
161
+ const { app } = ctx;
147
162
  app.component("FullscreenDiagram", FullscreenDiagram);
163
+ useOpenapi({ spec });
164
+ openapiTheme.enhanceApp(ctx);
148
165
  },
149
166
  } satisfies Theme;
150
167
  `);
@@ -232,44 +249,63 @@ Architecture decision records for ${projectName}. Each decision documents what w
232
249
 
233
250
  Insights from building ${projectName}. Each lesson captures what we learned, what surprised us, and what we'd do differently.
234
251
  `);
235
- writeFileSync(join(docsDir, "src/changelog.md"), `# Changelog
236
-
237
- All notable changes to ${projectName} are documented here. Follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
238
-
239
- ## [Unreleased]
240
- `);
241
- // Dockerfile for local dev
242
- const dockerDir = join(projectRoot, "docker");
243
- mkdirSync(dockerDir, { recursive: true });
244
- const dockerfilePath = join(dockerDir, "Dockerfile.vitepressdev");
245
- const docsAppName = `${projectName}-docs`;
246
- if (!existsSync(dockerfilePath)) {
247
- writeFileSync(dockerfilePath, `FROM node:22-alpine
248
-
249
- RUN apk add --no-cache git
250
- RUN corepack enable && corepack prepare pnpm@9.15.4 --activate
252
+ // Placeholder OpenAPI spec — replace with the real spec for ${projectName}.
253
+ writeFileSync(join(docsDir, "src/specs/openapi/openapi.json"), `${JSON.stringify({
254
+ openapi: "3.0.3",
255
+ info: {
256
+ title: `${projectName} API`,
257
+ version: "0.0.0",
258
+ description: `Replace src/specs/openapi/openapi.json with the real OpenAPI spec for ${projectName}. Add more specs alongside it under src/specs/openapi/ as the API surface grows.`,
259
+ },
260
+ servers: [{ url: "https://api.example.com", description: "Example server" }],
261
+ paths: {
262
+ "/health": {
263
+ get: {
264
+ operationId: "getHealth",
265
+ summary: "Health check",
266
+ tags: ["System"],
267
+ responses: {
268
+ "200": {
269
+ description: "OK",
270
+ content: {
271
+ "application/json": {
272
+ schema: {
273
+ type: "object",
274
+ properties: { status: { type: "string", example: "ok" } },
275
+ },
276
+ },
277
+ },
278
+ },
279
+ },
280
+ },
281
+ },
282
+ },
283
+ }, null, "\t")}\n`);
284
+ writeFileSync(join(docsDir, "src/api/index.md"), `---
285
+ aside: false
286
+ outline: false
287
+ title: API Reference
288
+ ---
251
289
 
252
- WORKDIR /app
290
+ # API Reference
253
291
 
254
- COPY package.json pnpm-lock.yaml pnpm-workspace.yaml turbo.json ./
255
- COPY apps/${docsAppName}/package.json apps/${docsAppName}/
292
+ Rendered from \`src/specs/openapi/openapi.json\` via [vitepress-openapi](https://vitepress-openapi.vercel.app/).
293
+ Replace the placeholder spec with the real one for ${projectName}.
256
294
 
257
- RUN pnpm install --frozen-lockfile
295
+ <OASpec />
296
+ `);
297
+ writeFileSync(join(docsDir, "src/changelog.md"), `# Changelog
258
298
 
259
- COPY apps/${docsAppName}/ apps/${docsAppName}/
299
+ All notable changes to ${projectName} are documented here. Follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
260
300
 
261
- CMD ["sh", "-c", "pnpm turbo dev --filter=${docsAppName} -- --host"]
301
+ ## [Unreleased]
262
302
  `);
263
- console.info(" created: docker/Dockerfile.vitepressdev");
264
- }
265
- else {
266
- console.info(" skip: docker/Dockerfile.vitepressdev (already exists)");
267
- }
268
303
  console.info(" created: package.json");
269
304
  console.info(" created: .vitepress/config.ts (mermaid + llms plugin)");
270
- console.info(" created: .vitepress/theme/index.ts");
305
+ console.info(" created: .vitepress/theme/index.ts (vitepress-openapi wired)");
271
306
  console.info(" created: .vitepress/components/FullscreenDiagram.vue");
272
- console.info(" created: starter pages (index, guide, reference, decisions, lessons)");
307
+ console.info(" created: starter pages (index, guide, reference, api, decisions, lessons)");
308
+ console.info(" created: src/specs/openapi/openapi.json (placeholder — replace with real spec)");
273
309
  // Check if pnpm-workspace.yaml includes this app
274
310
  const workspacePath = join(projectRoot, "pnpm-workspace.yaml");
275
311
  if (existsSync(workspacePath)) {
@@ -295,5 +331,6 @@ CMD ["sh", "-c", "pnpm turbo dev --filter=${docsAppName} -- --host"]
295
331
  console.info("\nNext steps:");
296
332
  console.info(` 1. pnpm turbo dev --filter=${projectName}-docs`);
297
333
  console.info(" 2. Edit src/guide/getting-started.md with your setup instructions");
298
- console.info(" 3. Add reference pages as you build features");
334
+ console.info(" 3. Replace src/specs/openapi/openapi.json with your real OpenAPI spec");
335
+ console.info(" 4. Add reference pages as you build features");
299
336
  }
@@ -4,4 +4,5 @@ export interface InitOptions {
4
4
  local?: boolean;
5
5
  noIndex?: boolean;
6
6
  }
7
+ export declare function writeGitInfoExclude(projectRoot: string): void;
7
8
  export declare function init(projectRoot: string, options?: InitOptions): Promise<void>;
@@ -107,7 +107,7 @@ function detectTooling(projectRoot) {
107
107
  }
108
108
  return detected;
109
109
  }
110
- function writeGitInfoExclude(projectRoot) {
110
+ export function writeGitInfoExclude(projectRoot) {
111
111
  const excludePath = join(projectRoot, ".git/info/exclude");
112
112
  const marker = "# InDusk local mode";
113
113
  // Ensure .git/info/ exists
@@ -704,12 +704,16 @@ export async function init(projectRoot, options = {}) {
704
704
  }
705
705
  // 8. Create .cgcignore and manage git excludes
706
706
  createCgcIgnore(projectRoot);
707
- // .mcp.json contains auth tokens — always gitignore it regardless of mode
708
- ensureGitignore(projectRoot);
709
707
  if (local) {
708
+ // Local mode keeps the tracked .gitignore untouched — InDusk patterns
709
+ // go in .git/info/exclude (per-clone, never committed) instead.
710
710
  console.info("\n[Git Excludes]");
711
711
  writeGitInfoExclude(projectRoot);
712
712
  }
713
+ else {
714
+ // .mcp.json contains auth tokens — always gitignore it in full mode
715
+ ensureGitignore(projectRoot);
716
+ }
713
717
  // 9. Run on_init hooks from enabled extensions
714
718
  console.info("\n[Extension Hooks]");
715
719
  const { getEnabledExtensions } = await import("../../lib/extension-loader.js");
@@ -5,6 +5,7 @@ import { dirname, join } from "node:path";
5
5
  import { fileURLToPath } from "node:url";
6
6
  import { globSync } from "glob";
7
7
  import { loadExtension } from "../../lib/extension-loader.js";
8
+ import { envIsFunctional } from "./extensions.js";
8
9
  const __dirname = dirname(fileURLToPath(import.meta.url));
9
10
  const packageRoot = join(__dirname, "../../..");
10
11
  const pkgJsonPath = join(packageRoot, "package.json");
@@ -359,11 +360,12 @@ export async function update(projectRoot) {
359
360
  console.info(` added: ${name} skill`);
360
361
  }
361
362
  // Sync `.env.example` reference template. Extensions that ship a
362
- // template (e.g., dash0, local-telemetry) document their required
363
- // env vars with inline comments; users copy it to `.env` and fill
364
- // in values. Always overwrite the target `.env.example` is a
365
- // reference file, never user-edited; the real `.env` next to it
366
- // is untouched by this sync.
363
+ // template (e.g., dash0 for auth credentials, local-telemetry for
364
+ // port documentation) publish the file as a reference; whether
365
+ // the user should then copy it to `.env` depends on whether the
366
+ // extension functionally consumes `.env`. Always overwrite the
367
+ // target — `.env.example` is a reference file, never user-edited;
368
+ // the real `.env` next to it is untouched by this sync.
367
369
  const builtinExample = join(builtinDir, name, ".env.example");
368
370
  const targetExample = join(enabledDir, name, ".env.example");
369
371
  if (existsSync(builtinExample)) {
@@ -380,10 +382,11 @@ export async function update(projectRoot) {
380
382
  console.info(` updated: ${name} .env.example`);
381
383
  }
382
384
  }
383
- // Nudge when `.env.example` is present but no real `.env`
384
- // exists yet. Silent when the user is already configured.
385
+ // Nudge only when `.env` is functionally required (auth-
386
+ // headered MCP server) AND not yet present. Reference-only
387
+ // templates (local-telemetry's port docs) stay silent.
385
388
  const targetEnv = join(enabledDir, name, ".env");
386
- if (!existsSync(targetEnv)) {
389
+ if (!existsSync(targetEnv) && envIsFunctional(name)) {
387
390
  console.info(` ${name}: .env not found — copy the template to activate:`);
388
391
  console.info(` cp .indusk/extensions/${name}/.env.example .indusk/extensions/${name}/.env`);
389
392
  }
@@ -464,14 +467,23 @@ export async function update(projectRoot) {
464
467
  console.info("\n[Required Extensions]\n");
465
468
  const { autoEnableExtensions } = await import("./extensions.js");
466
469
  await autoEnableExtensions(projectRoot);
467
- // 8. Ensure .gitignore has all required entries
468
- console.info("\n[Git Ignores]\n");
469
- const { ensureGitignore } = await import("./init.js");
470
- ensureGitignore(projectRoot);
471
- // 9. Respect local mode: re-apply overlay, refresh excludes
470
+ // 8. Ensure ignores: in full mode, refresh tracked .gitignore. In local
471
+ // mode, leave .gitignore untouched and refresh .git/info/exclude (per-clone,
472
+ // never committed) so InDusk patterns ignore correctly without a PR diff.
472
473
  const { readConfig } = await import("../../lib/config.js");
473
474
  const config = readConfig(projectRoot);
474
- if (config?.mode === "local") {
475
+ const isLocal = config?.mode === "local";
476
+ console.info("\n[Git Ignores]\n");
477
+ if (isLocal) {
478
+ const { writeGitInfoExclude } = await import("./init.js");
479
+ writeGitInfoExclude(projectRoot);
480
+ }
481
+ else {
482
+ const { ensureGitignore } = await import("./init.js");
483
+ ensureGitignore(projectRoot);
484
+ }
485
+ // 9. Respect local mode: re-apply overlay
486
+ if (isLocal) {
475
487
  console.info("\n[Local Mode]\n");
476
488
  const { applyOverlay } = await import("../../lib/settings-overlay.js");
477
489
  applyOverlay(projectRoot);
@@ -11,6 +11,17 @@
11
11
  "name": "chrome-devtools",
12
12
  "type": "stdio",
13
13
  "command": "npx",
14
- "args": ["-y", "chrome-devtools-mcp@latest", "--autoConnect"]
14
+ "args": ["-y", "chrome-devtools-mcp@latest", "--browserUrl=http://localhost:9222"],
15
+ "setup_instructions": [
16
+ "Launch Chrome with remote debugging on port 9222 BEFORE starting Claude Code:",
17
+ " /Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome --remote-debugging-port=9222",
18
+ "",
19
+ "Why --browserUrl over --autoConnect: autoConnect tries to attach to whatever Chrome",
20
+ "profile is running, but Chrome silently refuses to open the debug port on profiles that",
21
+ "already have a session. Symptom: 'Could not find DevToolsActivePort'. --browserUrl is",
22
+ "explicit — connect to the URL you control, fail loudly when it's not there.",
23
+ "",
24
+ "To use a different port, edit args in this manifest or the project's .mcp.json."
25
+ ]
15
26
  }
16
27
  }
@@ -1,48 +1,38 @@
1
- # dash0 extension env template
1
+ # dash0 extension env template — READ SIDE ONLY
2
+ #
3
+ # This file configures how indusk-mcp and Claude *query* Dash0 (MCP server
4
+ # auth, dataset routing for the eval agent). It does NOT configure how your
5
+ # services *emit* telemetry to Dash0 — that's a service-runtime concern and
6
+ # is managed elsewhere (project root `.env.local`, composable.env profile-
7
+ # scoped component, Docker env, Vercel env, etc.). See the dash0 skill or
8
+ # the otel skill for emit-side wiring patterns.
2
9
  #
3
10
  # When this extension is enabled on a project, copy this file to
4
11
  # `.indusk/extensions/dash0/.env` and fill in your credentials. The dash0
5
- # MCP server will auto-wire on the next `indusk extensions enable dash0`
6
- # (or next `indusk update` run) once these values are present.
7
- #
8
- # If using composable.env, `env/contracts/dash0.contract.json` produces this
9
- # file automatically — run `pnpm ce env:build` to generate it from your
10
- # contract inputs.
12
+ # MCP server auto-wires on the next `indusk extensions enable dash0` (or
13
+ # `indusk update`) once these values are present.
11
14
 
12
15
  # --- Required ---
13
16
 
14
17
  # Auth token from Dash0 → Organization Settings → Auth Tokens.
15
- # Treat this as a secret — the `.env` file is gitignored by default.
18
+ # Treat as a secret — `.env` is gitignored by default; `.env.example` is not.
16
19
  DASH0_AUTH_TOKEN=auth_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
17
20
 
18
- # The Dash0 dataset that traces/logs/metrics land in. Typically your
19
- # project name or an environment label (e.g. `indusk-test`, `prod-web`).
21
+ # Dash0 dataset the MCP server queries against. Match whatever dataset your
22
+ # services emit into (typically your project name or an env label).
20
23
  DASH0_DATASET=your-dataset-name
21
24
 
22
25
  # Dash0 MCP endpoint — region-specific. Find yours under
23
- # Dash0 → Settings → API Endpoints (it matches your HTTP ingress region).
26
+ # Dash0 → Settings → API Endpoints.
24
27
  # Examples:
25
28
  # https://api.europe-west4.gcp.dash0.com/mcp
26
29
  # https://api.us-central1.gcp.dash0.com/mcp
27
30
  DASH0_ENDPOINT_MCP=https://api.<region>.gcp.dash0.com/mcp
28
31
 
29
- # OTLP HTTP ingress — where your services (or the eval agent) send
30
- # OpenTelemetry data. Same region as DASH0_ENDPOINT_MCP above, but the
31
- # `ingress.` subdomain rather than `api.`.
32
- # Examples:
33
- # https://ingress.europe-west4.gcp.dash0.com
34
- # https://ingress.us-central1.gcp.dash0.com
35
- OTEL_EXPORTER_OTLP_ENDPOINT=https://ingress.<region>.gcp.dash0.com
36
-
37
- # OTLP auth + routing header. The Bearer token MUST match DASH0_AUTH_TOKEN
38
- # above; Dash0-Dataset MUST match DASH0_DATASET. Kept as one string because
39
- # the OTel SDK reads OTEL_EXPORTER_OTLP_HEADERS as a single comma-separated
40
- # key=value list.
41
- OTEL_EXPORTER_OTLP_HEADERS='Authorization=Bearer auth_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,Dash0-Dataset=your-dataset-name'
42
-
43
32
  # --- Optional ---
44
33
 
45
34
  # Dataset override specifically for the InDusk eval agent's OTel traces/logs.
46
- # Defaults to "agent" at the code level if unset; override when you want eval
47
- # signal routed to a dedicated dataset rather than mixed with service data.
35
+ # Defaults to "agent" at the code level if unset; override when you want
36
+ # eval signal routed to a dedicated dataset rather than mixed with service
37
+ # data.
48
38
  # EVAL_AGENT_DATASET=agent
@@ -22,6 +22,14 @@ Dash0 provides access to your OpenTelemetry data — logs, traces, and metrics
22
22
  - `dash0 dashboards list` — view dashboards
23
23
  - `dash0 apply -f assets.yaml` — deploy dashboards, views, checks (GitOps)
24
24
 
25
+ ## Extension env boundary — read-side only
26
+
27
+ `.indusk/extensions/dash0/.env` configures the **read side** — how indusk-mcp queries Dash0. Fields: `DASH0_AUTH_TOKEN`, `DASH0_DATASET`, `DASH0_ENDPOINT_MCP`, optional `EVAL_AGENT_DATASET`. The dash0 MCP server auth header is wired from these during `indusk extensions enable dash0` / `indusk update`.
28
+
29
+ This `.env` does **NOT** configure how your services *emit* telemetry to Dash0. Service emit (`OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_HEADERS`) is a runtime concern managed by your project's env-management setup — project root `.env.local`, composable.env profile-scoped component, Docker compose env, Vercel env, etc. See the `local-telemetry` skill's "Wiring services to emit here" section for patterns; the same patterns apply to Dash0 (different endpoint + headers).
30
+
31
+ The split: **dash0 extension = query Dash0 (read). Service env = emit to Dash0 (write).** Keeping them separate means you can point dev services at a local daemon while `.indusk/extensions/dash0/.env` still has your Dash0 credentials so the MCP server can query staging/prod data from the same session.
32
+
25
33
  ## When to Use Dash0
26
34
 
27
35
  - **Test failures**: query recent logs/traces to see what happened in the service during the test
@@ -1,35 +1,40 @@
1
- # local-telemetry extension env template
1
+ # local-telemetry daemon port reference (NOT CONSUMED BY ANYTHING)
2
2
  #
3
- # When this extension is enabled on a project, copy this file to
4
- # `.indusk/extensions/local-telemetry/.env` (or produce it via composable.env
5
- # see env/components/local-telemetry.env). The values below point your
6
- # services' OTel SDKs at the local telemetry daemon instead of Dash0.
3
+ # This file documents the ports the local telemetry daemon listens on. It
4
+ # is NOT read by the extension, the daemon, or your services. It exists as
5
+ # a reference card so you (or the agent) know what to point emit-side OTel
6
+ # config at when wiring services in this project.
7
7
  #
8
- # Staging + prod profiles should NOT use these values they belong to the
9
- # `dash0` extension. This file is dev-only.
8
+ # Runtime source of truth: `~/.indusk/telemetry.json`written by the
9
+ # daemon at start. If port 4318 is already taken, the daemon auto-bumps
10
+ # to a free port; read the actual value from that JSON or run
11
+ # `indusk telemetry status` to see the current values.
12
+ #
13
+ # The values below are what `indusk telemetry start` tries first. Copy to
14
+ # `.env` only if you want to pin them somewhere visible — nothing reads
15
+ # that file. Emit-side wiring (service `.env.local`, composable.env
16
+ # profile-scoped component, Docker env, etc.) is where these values
17
+ # actually take effect.
10
18
 
11
- # Where services emit traces. The local daemon's Jaeger instance listens here.
19
+ # --- Traces ---
20
+ # Jaeger's OTLP HTTP receiver. Services' span exporters point here.
12
21
  OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
13
22
 
14
- # OTLP protocol — HTTP is the locally supported transport. (gRPC also works
15
- # if you prefer; change to otlp-grpc and point at :4317.)
23
+ # OTLP protocol — HTTP is the locally supported transport.
16
24
  OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
17
25
 
18
- # Where services emit logs. Different port because the logs pipeline runs in
19
- # otelcol (core distribution), not Jaeger. Daemon auto-assigns this port at
20
- # start; the value below is the default — if the daemon auto-bumped it, you
21
- # can read the actual port from `~/.indusk/telemetry.json` (`logsOtlpPort`
22
- # field) OR just use `OTEL_EXPORTER_OTLP_ENDPOINT` above and the SDK will
23
- # route logs through Jaeger's OTLP receiver (which silently drops them since
24
- # Jaeger doesn't surface logs). To get logs into the queryable buffer, you
25
- # want this separate endpoint pointing at otelcol.
26
- #
27
- # TODO (Phase 5): document a clean way to dual-route. For now: leave the
28
- # standard OTEL_EXPORTER_OTLP_ENDPOINT alone; service log exports that want
29
- # to hit the queryable sink use OTEL_EXPORTER_OTLP_LOGS_ENDPOINT instead.
26
+ # --- Logs ---
27
+ # otelcol's OTLP HTTP receiver (separate port Jaeger doesn't store logs).
28
+ # Services' log exporters point here.
30
29
  OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=http://localhost:4319
31
30
 
32
- # Retention is handled on the daemon side (Jaeger in-memory ring = 100k
33
- # traces, otelcol file rotation = 10 MB × 5 backups for logs). Override
34
- # via INDUSK_TELEMETRY_MAX_TRACES / INDUSK_TELEMETRY_LOG_MAX_MB if you need
35
- # a larger buffer (reload: `indusk telemetry restart`).
31
+ # --- UI / Query (for reference, not service emit) ---
32
+ # Jaeger UI: http://localhost:16686
33
+ # Jaeger MCP: auto-picked free port; see `~/.indusk/telemetry.json`
34
+ # (`mcpPort` field) or `indusk telemetry status`. The `jaeger`
35
+ # MCP server entry in your project's `.mcp.json` is wired
36
+ # automatically by `indusk update`.
37
+
38
+ # --- Retention knobs (optional, set in shell before `indusk telemetry start`) ---
39
+ # INDUSK_TELEMETRY_MAX_TRACES — Jaeger in-memory ring size (default 100000)
40
+ # INDUSK_TELEMETRY_LOG_MAX_MB — otelcol log rotation size (default 10 MB × 5 backups)
@@ -76,9 +76,68 @@ If `indusk telemetry status` reports not-running, the daemon hasn't started or h
76
76
 
77
77
  If an MCP tool returns an error about the daemon being unreachable, check `indusk telemetry status` first before trying to diagnose a different problem.
78
78
 
79
- ## Environment routing
79
+ ## Wiring services to emit here
80
80
 
81
- This extension sets `OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318` in the dev profile. Staging + prod profiles continue to use Dash0 via the `dash0` extension. A project with both extensions enabled has env-aware routing: `dev` local daemon, `staging`/`prod` Dash0.
81
+ **This extension runs the daemon. It does NOT configure your services to emit to it.** Your services' OTel SDKs read `OTEL_EXPORTER_OTLP_ENDPOINT` (+ `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_EXPORTER_OTLP_PROTOCOL`) from `process.env` at boot. Point those at the daemon (`http://localhost:4318` for traces, `http://localhost:4319` for logs) and services emit locally.
82
+
83
+ The daemon's actual ports are in `~/.indusk/telemetry.json` (it auto-bumps if the default is taken). `.indusk/extensions/local-telemetry/.env.example` is a port reference card — it's not read by anything, it just documents the defaults for humans + agents.
84
+
85
+ When the user asks you to wire a project for local emit, inspect what env-management they use and propose the right pattern. Don't prescribe one; read what they have.
86
+
87
+ ### Pattern 1 — composable.env (profile-scoped)
88
+
89
+ If `ce.json` exists, propose a profile-scoped component. The component's `[local]` block points at the daemon; `[staging]` / `[production]` point at Dash0. Service contracts inherit from this component via `${otel-emit.*}` (or whatever name the project uses), not from `${dash0.*}` directly — the dash0 extension is about querying Dash0 (read), not about where services emit (write).
90
+
91
+ Example shape:
92
+ ```
93
+ # env/components/otel-emit.env
94
+ [local]
95
+ OTLP_ENDPOINT=http://localhost:4318
96
+ OTLP_HEADERS=
97
+ OTLP_PROTOCOL=http/protobuf
98
+ OTLP_LOGS_ENDPOINT=http://localhost:4319
99
+
100
+ [staging]
101
+ OTLP_ENDPOINT=${dash0.HTTP_ENDPOINT}
102
+ OTLP_HEADERS=${dash0.OTLP_HEADERS}
103
+ OTLP_PROTOCOL=http/protobuf
104
+ OTLP_LOGS_ENDPOINT=${dash0.HTTP_ENDPOINT}
105
+
106
+ [production]
107
+ # same as staging
108
+ ```
109
+
110
+ Service contracts then reference `${otel-emit.OTLP_ENDPOINT}` etc. in their `vars` section.
111
+
112
+ ### Pattern 2 — plain `.env.local` (Next.js / Vite / dotenv)
113
+
114
+ If the user has `.env` / `.env.local` at project root, propose `.env.local` (gitignored, local-only) with:
115
+ ```
116
+ OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
117
+ OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
118
+ OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=http://localhost:4319
119
+ ```
120
+ Commit a `.env.example` at project root with Dash0-shaped values (production defaults); `.env.local` overrides locally.
121
+
122
+ ### Pattern 3 — shell export / npm scripts
123
+
124
+ One-off testing or tight-loop dev:
125
+ ```json
126
+ "scripts": {
127
+ "dev": "OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 next dev",
128
+ "dev:dash0": "dotenv -e .env.dash0 -- next dev"
129
+ }
130
+ ```
131
+
132
+ ### Pattern 4 — Docker compose / deployment env
133
+
134
+ Kubernetes: ConfigMap + `envFrom:`. Docker compose: `env_file:` / `environment:`. The deployment unit sets env once; every pod/container inherits.
135
+
136
+ ### What NOT to do
137
+
138
+ - Don't put `OTEL_EXPORTER_OTLP_*` in `.indusk/extensions/dash0/.env`. Those are service-runtime vars; dash0's extension `.env` is for indusk-mcp's MCP query wiring only.
139
+ - Don't hardcode port 4318 in service code. Read from env; let the deployment unit decide.
140
+ - Don't rely on `.indusk/extensions/local-telemetry/.env` being read — it isn't. It's a docs file.
82
141
 
83
142
  ## Short reference
84
143
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infinitedusky/indusk-mcp",
3
- "version": "1.28.4",
3
+ "version": "1.28.6",
4
4
  "description": "InDusk development system — skills, MCP tools, and CLI for structured AI-assisted development",
5
5
  "type": "module",
6
6
  "files": [
@@ -0,0 +1,78 @@
1
+ ---
2
+ name: research
3
+ description: Conversational research mode — terse answers sized for follow-ups, external lookup when needed, optional suggested follow-up prompts. Use for exploring topics, probing a thesis, or learning unfamiliar terrain. Works for both plan-specific research and general open-ended learning.
4
+ ---
5
+
6
+ You are in research mode. The user is exploring a topic and wants to **learn through the conversation**, not by reading walls of text.
7
+
8
+ ## Core principle
9
+
10
+ **Asking a question aids retention more than reading an answer.** If the user could have asked 10 sequential questions, prefer letting them ask those 10 — even if you could predict them — over dumping all 10 answers at once. The act of asking helps them encode the information.
11
+
12
+ Corollary: **you don't actually know what they'll ask.** They may go in a direction you didn't anticipate. Giving the answer to the question they didn't ask yet wastes context and pre-empts their thinking.
13
+
14
+ ## Rules
15
+
16
+ - **Short answers.** Default 1–4 sentences. One claim per turn when possible.
17
+ - **Never dump.** If you have 5 things to say, say the most important one and wait.
18
+ - **No unsolicited takes.** The user will ask for your opinion when they want it. Until then, answer what was asked.
19
+ - **No preemptive caveats.** Qualify when asked, not by default.
20
+ - **Don't restate the question.** Go straight to the answer.
21
+ - **Don't re-explain across multiple framings in one response.** Pick one framing and commit.
22
+
23
+ ## Offering follow-ups
24
+
25
+ Sometimes — not always — end a response with 1–3 suggested follow-up questions. Use when:
26
+ - There are clear branches the user might want to explore
27
+ - You just answered a definitional question and there's natural next depth
28
+ - The user shared a thesis and could benefit from being probed
29
+
30
+ Formats:
31
+ > "Natural follow-ups: X? Or Y?"
32
+ >
33
+ > "Want to dig into [subtopic], or move on?"
34
+ >
35
+ > "A question worth asking here: [question]. Want me to take a swing at it?"
36
+
37
+ **Don't do this every turn** — it becomes noise. Use judgment. When the user is clearly driving, stay out of the way.
38
+
39
+ ## External research
40
+
41
+ When a question requires looking something up (recent numbers, docs, a specific paper, a library API):
42
+
43
+ 1. Say in one line what you're about to check.
44
+ 2. Do the lookup (WebSearch / WebFetch / Context7 / file read / grep — whatever fits).
45
+ 3. Report back tersely — just the answer, not the search narrative.
46
+
47
+ Do **not** narrate the search process, list what you searched for, or summarize what you found before giving the answer.
48
+
49
+ ## When the user shares a thesis
50
+
51
+ Default behavior:
52
+ 1. Acknowledge you've heard it.
53
+ 2. Ask 1 clarifying question if something is genuinely unclear.
54
+ 3. Wait for them to continue developing it.
55
+
56
+ Do **not** start critiquing, steelmanning, or extending until they ask or until the thesis is clearly complete. Let them finish the thought.
57
+
58
+ When they ask "what do you think?" — **then** engage substantively. Until then, let them do the thinking.
59
+
60
+ ## Anti-patterns
61
+
62
+ - Walls of text when a sentence suffices
63
+ - Tables when prose would do
64
+ - Unsolicited strategic takes on a half-formed thesis
65
+ - "Great question!" / sycophantic openers
66
+ - Restating what the user just said back to them
67
+ - Hedging every claim with qualifications
68
+ - Giving the same information in 3 different phrasings in one response
69
+ - Pre-answering the next 4 questions you predict they'd ask
70
+
71
+ ## Invocation
72
+
73
+ - `/research` — enter research mode for the rest of the conversation (until explicitly exited).
74
+ - `/research {topic}` — start a session on a specific topic. Begin by asking the user *what they already know* and *where they want to start*, rather than dumping context.
75
+
76
+ ## Exit
77
+
78
+ Research mode ends when the user explicitly switches context (starts implementation, runs another skill that shifts the mode, or says so). If you're unsure whether they've exited, ask.