@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.
- package/admin/.next/BUILD_ID +1 -1
- package/admin/.next/build-manifest.json +3 -3
- package/admin/.next/fallback-build-manifest.json +3 -3
- package/admin/.next/server/app/_global-error.html +1 -1
- package/admin/.next/server/app/_global-error.rsc +1 -1
- package/admin/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/admin/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/admin/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/admin/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/admin/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/admin/.next/server/middleware-build-manifest.js +3 -3
- package/admin/.next/server/pages/500.html +1 -1
- package/admin/.next/trace +1 -1
- package/admin/.next/trace-build +1 -1
- package/dist/bin/commands/extensions.d.ts +11 -0
- package/dist/bin/commands/extensions.js +31 -5
- package/dist/bin/commands/init-docs.js +68 -31
- package/dist/bin/commands/init.d.ts +1 -0
- package/dist/bin/commands/init.js +7 -3
- package/dist/bin/commands/update.js +26 -14
- package/extensions/chrome-devtools/manifest.json +12 -1
- package/extensions/dash0/.env.example +17 -27
- package/extensions/dash0/skill.md +8 -0
- package/extensions/local-telemetry/.env.example +31 -26
- package/extensions/local-telemetry/skill.md +61 -2
- package/package.json +1 -1
- package/skills/research.md +78 -0
- /package/admin/.next/static/{-1Cae6-Q62t6-4oqorc1Y → jf5MWsfFh_8RdLHs4dBK4}/_buildManifest.js +0 -0
- /package/admin/.next/static/{-1Cae6-Q62t6-4oqorc1Y → jf5MWsfFh_8RdLHs4dBK4}/_clientMiddlewareManifest.js +0 -0
- /package/admin/.next/static/{-1Cae6-Q62t6-4oqorc1Y → jf5MWsfFh_8RdLHs4dBK4}/_ssgManifest.js +0 -0
package/admin/.next/BUILD_ID
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
jf5MWsfFh_8RdLHs4dBK4
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
"static/chunks/03~yq9q893hmn.js"
|
|
8
8
|
],
|
|
9
9
|
"lowPriorityFiles": [
|
|
10
|
-
"static
|
|
11
|
-
"static
|
|
12
|
-
"static
|
|
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
|
|
9
|
-
"static
|
|
10
|
-
"static
|
|
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,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/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\":\"
|
|
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,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/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":"
|
|
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":"
|
|
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":"
|
|
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":"
|
|
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":"
|
|
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":"
|
|
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
|
|
11
|
-
"static
|
|
12
|
-
"static
|
|
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,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/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\":\"
|
|
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,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/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":
|
|
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"}]
|
package/admin/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
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
|
-
*
|
|
636
|
-
*
|
|
637
|
-
*
|
|
638
|
-
*
|
|
639
|
-
*
|
|
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(
|
|
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
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
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
|
-
|
|
290
|
+
# API Reference
|
|
253
291
|
|
|
254
|
-
|
|
255
|
-
|
|
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
|
-
|
|
295
|
+
<OASpec />
|
|
296
|
+
`);
|
|
297
|
+
writeFileSync(join(docsDir, "src/changelog.md"), `# Changelog
|
|
258
298
|
|
|
259
|
-
|
|
299
|
+
All notable changes to ${projectName} are documented here. Follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|
260
300
|
|
|
261
|
-
|
|
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.
|
|
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
|
}
|
|
@@ -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
|
|
363
|
-
//
|
|
364
|
-
//
|
|
365
|
-
//
|
|
366
|
-
// is
|
|
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
|
|
384
|
-
//
|
|
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
|
|
468
|
-
|
|
469
|
-
|
|
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
|
-
|
|
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", "--
|
|
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
|
|
6
|
-
#
|
|
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
|
|
18
|
+
# Treat as a secret — `.env` is gitignored by default; `.env.example` is not.
|
|
16
19
|
DASH0_AUTH_TOKEN=auth_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
|
17
20
|
|
|
18
|
-
#
|
|
19
|
-
# project name or an
|
|
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
|
|
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
|
|
47
|
-
# signal routed to a dedicated dataset rather than mixed with service
|
|
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
|
|
1
|
+
# local-telemetry daemon — port reference (NOT CONSUMED BY ANYTHING)
|
|
2
2
|
#
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
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
|
-
#
|
|
9
|
-
#
|
|
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
|
-
#
|
|
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.
|
|
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
|
-
#
|
|
19
|
-
# otelcol (
|
|
20
|
-
#
|
|
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
|
-
#
|
|
33
|
-
#
|
|
34
|
-
#
|
|
35
|
-
#
|
|
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
|
-
##
|
|
79
|
+
## Wiring services to emit here
|
|
80
80
|
|
|
81
|
-
This extension
|
|
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
|
@@ -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.
|
/package/admin/.next/static/{-1Cae6-Q62t6-4oqorc1Y → jf5MWsfFh_8RdLHs4dBK4}/_buildManifest.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|