@infinitedusky/indusk-mcp 1.31.10 → 1.31.12
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/cli.js +17 -0
- package/dist/bin/commands/prune.d.ts +20 -0
- package/dist/bin/commands/prune.js +121 -0
- package/dist/lib/eval/evaluator-runner.d.ts +20 -0
- package/dist/lib/eval/evaluator-runner.js +6 -2
- package/dist/lib/eval/persistent-evaluator.d.ts +12 -0
- package/dist/lib/eval/persistent-evaluator.js +4 -1
- package/dist/lib/prune/measure.d.ts +68 -0
- package/dist/lib/prune/measure.js +179 -0
- package/hooks/eval-trigger.js +11 -1
- package/package.json +1 -1
- package/skills/retrospective.md +32 -0
- /package/admin/.next/static/{sBeX2BZfXbYWwEGGXPJ1I → P5hY9vyoEe1rhpwQ1E3ZN}/_buildManifest.js +0 -0
- /package/admin/.next/static/{sBeX2BZfXbYWwEGGXPJ1I → P5hY9vyoEe1rhpwQ1E3ZN}/_clientMiddlewareManifest.js +0 -0
- /package/admin/.next/static/{sBeX2BZfXbYWwEGGXPJ1I → P5hY9vyoEe1rhpwQ1E3ZN}/_ssgManifest.js +0 -0
package/admin/.next/BUILD_ID
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
P5hY9vyoEe1rhpwQ1E3ZN
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
"static/chunks/03~yq9q893hmn.js"
|
|
8
8
|
],
|
|
9
9
|
"lowPriorityFiles": [
|
|
10
|
-
"static/
|
|
11
|
-
"static/
|
|
12
|
-
"static/
|
|
10
|
+
"static/P5hY9vyoEe1rhpwQ1E3ZN/_buildManifest.js",
|
|
11
|
+
"static/P5hY9vyoEe1rhpwQ1E3ZN/_ssgManifest.js",
|
|
12
|
+
"static/P5hY9vyoEe1rhpwQ1E3ZN/_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/P5hY9vyoEe1rhpwQ1E3ZN/_buildManifest.js",
|
|
9
|
+
"static/P5hY9vyoEe1rhpwQ1E3ZN/_ssgManifest.js",
|
|
10
|
+
"static/P5hY9vyoEe1rhpwQ1E3ZN/_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\":\"P5hY9vyoEe1rhpwQ1E3ZN\"}\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":"P5hY9vyoEe1rhpwQ1E3ZN"}
|
|
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":"P5hY9vyoEe1rhpwQ1E3ZN"}
|
|
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":"P5hY9vyoEe1rhpwQ1E3ZN"}
|
|
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":"P5hY9vyoEe1rhpwQ1E3ZN"}
|
|
@@ -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":"P5hY9vyoEe1rhpwQ1E3ZN"}
|
|
@@ -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":"P5hY9vyoEe1rhpwQ1E3ZN"}
|
|
@@ -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/P5hY9vyoEe1rhpwQ1E3ZN/_buildManifest.js",
|
|
11
|
+
"static/P5hY9vyoEe1rhpwQ1E3ZN/_ssgManifest.js",
|
|
12
|
+
"static/P5hY9vyoEe1rhpwQ1E3ZN/_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\":\"P5hY9vyoEe1rhpwQ1E3ZN\"}\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":103,"timestamp":1958642449279,"id":4,"parentId":1,"tags":{},"startTime":1782799140798,"traceId":"520d141fd8856f4c"},{"name":"load-custom-routes","duration":205,"timestamp":1958642449434,"id":5,"parentId":1,"tags":{},"startTime":1782799140798,"traceId":"520d141fd8856f4c"},{"name":"create-dist-dir","duration":110,"timestamp":1958642449651,"id":6,"parentId":1,"tags":{},"startTime":1782799140798,"traceId":"520d141fd8856f4c"},{"name":"clean","duration":23896,"timestamp":1958642450430,"id":7,"parentId":1,"tags":{},"startTime":1782799140799,"traceId":"520d141fd8856f4c"},{"name":"discover-routes","duration":3543,"timestamp":1958642479468,"id":8,"parentId":1,"tags":{},"startTime":1782799140828,"traceId":"520d141fd8856f4c"},{"name":"create-root-mapping","duration":36,"timestamp":1958642483045,"id":9,"parentId":1,"tags":{},"startTime":1782799140832,"traceId":"520d141fd8856f4c"},{"name":"generate-route-types","duration":12159,"timestamp":1958642484091,"id":10,"parentId":1,"tags":{},"startTime":1782799140833,"traceId":"520d141fd8856f4c"},{"name":"public-dir-conflict-check","duration":39,"timestamp":1958642496295,"id":11,"parentId":1,"tags":{},"startTime":1782799140845,"traceId":"520d141fd8856f4c"},{"name":"generate-routes-manifest","duration":1194,"timestamp":1958642496375,"id":12,"parentId":1,"tags":{},"startTime":1782799140845,"traceId":"520d141fd8856f4c"},{"name":"run-turbopack","duration":2217141,"timestamp":1958642499354,"id":14,"parentId":1,"tags":{},"startTime":1782799140848,"traceId":"520d141fd8856f4c"},{"name":"turbopack-build-events","duration":52,"timestamp":1958642641578,"id":15,"parentId":1,"tags":{},"startTime":1782799140990,"traceId":"520d141fd8856f4c"},{"name":"run-typescript","duration":2609784,"timestamp":1958644828569,"id":16,"parentId":1,"tags":{},"startTime":1782799143177,"traceId":"520d141fd8856f4c"},{"name":"generate-required-server-files","duration":1757,"timestamp":1958647444288,"id":18,"parentId":1,"tags":{},"startTime":1782799145793,"traceId":"520d141fd8856f4c"},{"name":"check-static-error-page","duration":8719,"timestamp":1958647457942,"id":20,"parentId":19,"tags":{},"startTime":1782799145807,"traceId":"520d141fd8856f4c"},{"name":"is-page-static","duration":174061,"timestamp":1958647473402,"id":30,"parentId":22,"tags":{},"startTime":1782799145822,"traceId":"520d141fd8856f4c"},{"name":"check-page","duration":188058,"timestamp":1958647459471,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1782799145808,"traceId":"520d141fd8856f4c"},{"name":"is-page-static","duration":211824,"timestamp":1958647473431,"id":31,"parentId":23,"tags":{},"startTime":1782799145822,"traceId":"520d141fd8856f4c"},{"name":"check-page","duration":225605,"timestamp":1958647459683,"id":23,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1782799145808,"traceId":"520d141fd8856f4c"},{"name":"is-page-static","duration":217298,"timestamp":1958647473200,"id":29,"parentId":21,"tags":{},"startTime":1782799145822,"traceId":"520d141fd8856f4c"},{"name":"check-page","duration":232039,"timestamp":1958647458483,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1782799145807,"traceId":"520d141fd8856f4c"},{"name":"is-page-static","duration":219521,"timestamp":1958647476682,"id":32,"parentId":28,"tags":{},"startTime":1782799145825,"traceId":"520d141fd8856f4c"},{"name":"check-page","duration":229717,"timestamp":1958647466517,"id":28,"parentId":19,"tags":{"page":"/"},"startTime":1782799145815,"traceId":"520d141fd8856f4c"},{"name":"is-page-static","duration":233452,"timestamp":1958647476757,"id":33,"parentId":24,"tags":{},"startTime":1782799145826,"traceId":"520d141fd8856f4c"},{"name":"check-page","duration":244686,"timestamp":1958647465576,"id":24,"parentId":19,"tags":{"page":"/p/[project]"},"startTime":1782799145814,"traceId":"520d141fd8856f4c"},{"name":"is-page-static","duration":234408,"timestamp":1958647476815,"id":35,"parentId":26,"tags":{},"startTime":1782799145826,"traceId":"520d141fd8856f4c"},{"name":"check-page","duration":245179,"timestamp":1958647466128,"id":26,"parentId":19,"tags":{"page":"/p/[project]/research/[slug]"},"startTime":1782799145815,"traceId":"520d141fd8856f4c"},{"name":"is-page-static","duration":237854,"timestamp":1958647476789,"id":34,"parentId":25,"tags":{},"startTime":1782799145826,"traceId":"520d141fd8856f4c"},{"name":"check-page","duration":248902,"timestamp":1958647465806,"id":25,"parentId":19,"tags":{"page":"/p/[project]/plan/[name]"},"startTime":1782799145815,"traceId":"520d141fd8856f4c"},{"name":"is-page-static","duration":239025,"timestamp":1958647476844,"id":36,"parentId":27,"tags":{},"startTime":1782799145826,"traceId":"520d141fd8856f4c"},{"name":"check-page","duration":249564,"timestamp":1958647466328,"id":27,"parentId":19,"tags":{"page":"/p/[project]/scorecards"},"startTime":1782799145815,"traceId":"520d141fd8856f4c"},{"name":"static-check","duration":258392,"timestamp":1958647457527,"id":19,"parentId":1,"tags":{},"startTime":1782799145806,"traceId":"520d141fd8856f4c"},{"name":"write-routes-manifest","duration":602,"timestamp":1958647721227,"id":38,"parentId":1,"tags":{},"startTime":1782799146070,"traceId":"520d141fd8856f4c"},{"name":"load-dotenv","duration":21,"timestamp":1958647728566,"id":41,"parentId":40,"tags":{},"startTime":1782799146077,"traceId":"520d141fd8856f4c"},{"name":"run-export-path-map","duration":224,"timestamp":1958647730064,"id":42,"parentId":40,"tags":{},"startTime":1782799146079,"traceId":"520d141fd8856f4c"},{"name":"next-export","duration":199309,"timestamp":1958647728018,"id":40,"parentId":1,"tags":{},"startTime":1782799146077,"traceId":"520d141fd8856f4c"},{"name":"move-exported-app-global-error-","duration":377,"timestamp":1958647927930,"id":43,"parentId":39,"tags":{},"startTime":1782799146277,"traceId":"520d141fd8856f4c"},{"name":"static-generation","duration":205232,"timestamp":1958647724036,"id":39,"parentId":1,"tags":{},"startTime":1782799146073,"traceId":"520d141fd8856f4c"},{"name":"write-routes-manifest","duration":277,"timestamp":1958647929380,"id":44,"parentId":1,"tags":{},"startTime":1782799146278,"traceId":"520d141fd8856f4c"},{"name":"print-tree-view","duration":1309,"timestamp":1958647936140,"id":45,"parentId":1,"tags":{},"startTime":1782799146285,"traceId":"520d141fd8856f4c"},{"name":"write-route-bundle-stats","duration":5194,"timestamp":1958647937462,"id":46,"parentId":1,"tags":{},"startTime":1782799146286,"traceId":"520d141fd8856f4c"},{"name":"telemetry-flush","duration":488653,"timestamp":1958647942666,"id":47,"parentId":1,"tags":{},"startTime":1782799146291,"traceId":"520d141fd8856f4c"},{"name":"next-build","duration":6073148,"timestamp":1958642358208,"id":1,"tags":{"buildMode":"default","version":"16.2.4","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1782799140707,"traceId":"520d141fd8856f4c"}]
|
package/admin/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":2217141,"timestamp":1958642499354,"id":14,"parentId":1,"tags":{},"startTime":1782799140848,"traceId":"520d141fd8856f4c"},{"name":"turbopack-build-events","duration":52,"timestamp":1958642641578,"id":15,"parentId":1,"tags":{},"startTime":1782799140990,"traceId":"520d141fd8856f4c"},{"name":"run-typescript","duration":2609784,"timestamp":1958644828569,"id":16,"parentId":1,"tags":{},"startTime":1782799143177,"traceId":"520d141fd8856f4c"},{"name":"static-check","duration":258392,"timestamp":1958647457527,"id":19,"parentId":1,"tags":{},"startTime":1782799145806,"traceId":"520d141fd8856f4c"},{"name":"static-generation","duration":205232,"timestamp":1958647724036,"id":39,"parentId":1,"tags":{},"startTime":1782799146073,"traceId":"520d141fd8856f4c"},{"name":"telemetry-flush","duration":488653,"timestamp":1958647942666,"id":47,"parentId":1,"tags":{},"startTime":1782799146291,"traceId":"520d141fd8856f4c"},{"name":"next-build","duration":6073148,"timestamp":1958642358208,"id":1,"tags":{"buildMode":"default","version":"16.2.4","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1782799140707,"traceId":"520d141fd8856f4c"}]
|
package/dist/bin/cli.js
CHANGED
|
@@ -69,6 +69,23 @@ program
|
|
|
69
69
|
const { upgrade } = await import("./commands/upgrade.js");
|
|
70
70
|
await upgrade({ force: opts.force === true });
|
|
71
71
|
});
|
|
72
|
+
program
|
|
73
|
+
.command("prune")
|
|
74
|
+
.description("Audit auto-loaded context bloat (CLAUDE.md sections, lessons, current.md). --dry-run is the default and only mode in this version; no destructive action.")
|
|
75
|
+
.option("--dry-run", "Report only, no destructive action (default; only mode in this version)", true)
|
|
76
|
+
.option("--large-section-chars <n>", "Flag CLAUDE.md sections larger than this many chars (default 4000)", (v) => Number.parseInt(v, 10))
|
|
77
|
+
.option("--stale-lesson-days <n>", "Flag lessons untouched for more than this many days (default 180)", (v) => Number.parseInt(v, 10))
|
|
78
|
+
.option("--stale-section-days <n>", "Flag current.md per-agent sections whose lastUpdated is older than this (default 7)", (v) => Number.parseInt(v, 10))
|
|
79
|
+
.action(async function () {
|
|
80
|
+
const opts = this.opts();
|
|
81
|
+
const { prune } = await import("./commands/prune.js");
|
|
82
|
+
await prune(rootOrExit(), {
|
|
83
|
+
dryRun: opts.dryRun !== false,
|
|
84
|
+
largeSectionChars: opts.largeSectionChars,
|
|
85
|
+
staleLessonDays: opts.staleLessonDays,
|
|
86
|
+
staleSectionDays: opts.staleSectionDays,
|
|
87
|
+
});
|
|
88
|
+
});
|
|
72
89
|
const ext = program
|
|
73
90
|
.command("extensions")
|
|
74
91
|
.description("Manage extensions (built-in and third-party)");
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `indusk prune --dry-run` — context-budget measurement surface.
|
|
3
|
+
*
|
|
4
|
+
* Reports CLAUDE.md size by section, per-lesson ages, per-current-md-section
|
|
5
|
+
* ages, and total auto-loaded bytes. Recommends manual cleanup commands.
|
|
6
|
+
*
|
|
7
|
+
* `--dry-run` is the DEFAULT — no destructive action in v1. Auto-pruning
|
|
8
|
+
* (`--apply`) is intentionally deferred to a future architectural plan
|
|
9
|
+
* (Piece 3 of context-budget). v1 surfaces; operator decides.
|
|
10
|
+
*
|
|
11
|
+
* See `.indusk/planning/context-budget/` for full design.
|
|
12
|
+
*/
|
|
13
|
+
interface PruneOptions {
|
|
14
|
+
dryRun?: boolean;
|
|
15
|
+
largeSectionChars?: number;
|
|
16
|
+
staleLessonDays?: number;
|
|
17
|
+
staleSectionDays?: number;
|
|
18
|
+
}
|
|
19
|
+
export declare function prune(projectRoot: string, opts?: PruneOptions): Promise<void>;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `indusk prune --dry-run` — context-budget measurement surface.
|
|
3
|
+
*
|
|
4
|
+
* Reports CLAUDE.md size by section, per-lesson ages, per-current-md-section
|
|
5
|
+
* ages, and total auto-loaded bytes. Recommends manual cleanup commands.
|
|
6
|
+
*
|
|
7
|
+
* `--dry-run` is the DEFAULT — no destructive action in v1. Auto-pruning
|
|
8
|
+
* (`--apply`) is intentionally deferred to a future architectural plan
|
|
9
|
+
* (Piece 3 of context-budget). v1 surfaces; operator decides.
|
|
10
|
+
*
|
|
11
|
+
* See `.indusk/planning/context-budget/` for full design.
|
|
12
|
+
*/
|
|
13
|
+
import { measureProjectContext } from "../../lib/prune/measure.js";
|
|
14
|
+
export async function prune(projectRoot, opts = {}) {
|
|
15
|
+
// --dry-run is the default. v1 has no other mode.
|
|
16
|
+
if (opts.dryRun === false) {
|
|
17
|
+
console.error("Error: --dry-run is the only supported mode in this version. " +
|
|
18
|
+
"Auto-pruning (--apply) is intentionally deferred to a future architectural " +
|
|
19
|
+
"plan. See .indusk/planning/context-budget/ for the design.");
|
|
20
|
+
process.exit(2);
|
|
21
|
+
}
|
|
22
|
+
const thresholds = {};
|
|
23
|
+
if (opts.largeSectionChars !== undefined)
|
|
24
|
+
thresholds.large_section_chars = opts.largeSectionChars;
|
|
25
|
+
if (opts.staleLessonDays !== undefined)
|
|
26
|
+
thresholds.stale_lesson_days = opts.staleLessonDays;
|
|
27
|
+
if (opts.staleSectionDays !== undefined)
|
|
28
|
+
thresholds.stale_section_days = opts.staleSectionDays;
|
|
29
|
+
const report = measureProjectContext(projectRoot, thresholds);
|
|
30
|
+
printReport(projectRoot, report);
|
|
31
|
+
// Always exit 0 — this is informational, never an error.
|
|
32
|
+
process.exit(0);
|
|
33
|
+
}
|
|
34
|
+
function printReport(projectRoot, report) {
|
|
35
|
+
console.info(`\n[indusk prune --dry-run] context-budget audit for ${projectRoot}\n`);
|
|
36
|
+
if (report.notes.length > 0) {
|
|
37
|
+
for (const note of report.notes)
|
|
38
|
+
console.info(` note: ${note}`);
|
|
39
|
+
console.info("");
|
|
40
|
+
}
|
|
41
|
+
printClaudeMd(report);
|
|
42
|
+
printCurrentMd(report);
|
|
43
|
+
printLessons(report);
|
|
44
|
+
printSummary(report);
|
|
45
|
+
}
|
|
46
|
+
function printClaudeMd(report) {
|
|
47
|
+
console.info("CLAUDE.md sections:");
|
|
48
|
+
if (report.claudeMd.length === 0) {
|
|
49
|
+
console.info(" (no CLAUDE.md or no ## sections found)\n");
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
for (const section of report.claudeMd) {
|
|
53
|
+
const marker = section.flagged ? " ⚠ " : " ";
|
|
54
|
+
console.info(`${marker}${section.title.padEnd(30)} ${formatBytes(section.sizeChars)}`);
|
|
55
|
+
if (section.recommendedAction) {
|
|
56
|
+
console.info(` → ${section.recommendedAction}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
console.info("");
|
|
60
|
+
}
|
|
61
|
+
function printCurrentMd(report) {
|
|
62
|
+
console.info("current.md:");
|
|
63
|
+
if (!report.currentMd.exists) {
|
|
64
|
+
console.info(" (not found — run indusk init or check workbench root)\n");
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
console.info(` total size: ${formatBytes(report.currentMd.totalSizeChars)}, ` +
|
|
68
|
+
`shared section: ${formatBytes(report.currentMd.sharedSectionSizeChars)}, ` +
|
|
69
|
+
`agent sections: ${report.currentMd.sectionCount}`);
|
|
70
|
+
if (report.currentMd.staleSections.length > 0) {
|
|
71
|
+
console.info(` ⚠ ${report.currentMd.staleSections.length} stale per-agent section(s):`);
|
|
72
|
+
for (const section of report.currentMd.staleSections) {
|
|
73
|
+
console.info(` session ${section.sessionShort} (${section.task}) — ${section.ageDays}d old, ${formatBytes(section.sizeChars)} body`);
|
|
74
|
+
}
|
|
75
|
+
console.info(" → Consider archiving stale sections from .indusk/current.md.");
|
|
76
|
+
console.info(" → Auto-archive will land in context-budget Piece 3; manual edit for now.");
|
|
77
|
+
}
|
|
78
|
+
console.info("");
|
|
79
|
+
}
|
|
80
|
+
function printLessons(report) {
|
|
81
|
+
console.info("Lessons (.claude/lessons/):");
|
|
82
|
+
if (report.lessons.length === 0) {
|
|
83
|
+
console.info(" (none found)\n");
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const flagged = report.lessons.filter((l) => l.flagged);
|
|
87
|
+
console.info(` total: ${report.lessons.length} lesson(s); ${flagged.length} stale`);
|
|
88
|
+
if (flagged.length > 0) {
|
|
89
|
+
console.info(" ⚠ Stale (consider reviewing or removing):");
|
|
90
|
+
for (const lesson of flagged) {
|
|
91
|
+
console.info(` ${lesson.name.padEnd(50)} ${lesson.ageDays}d old (${lesson.lastModified.slice(0, 10)})`);
|
|
92
|
+
}
|
|
93
|
+
console.info(" → Lessons referencing code/conventions that no longer exist are dead weight.");
|
|
94
|
+
console.info(" → Review each; `rm -i <path>` after confirming irrelevance.");
|
|
95
|
+
}
|
|
96
|
+
console.info("");
|
|
97
|
+
}
|
|
98
|
+
function printSummary(report) {
|
|
99
|
+
const flaggedClaudeMd = report.claudeMd.filter((s) => s.flagged).length;
|
|
100
|
+
const flaggedLessons = report.lessons.filter((l) => l.flagged).length;
|
|
101
|
+
const staleSections = report.currentMd.staleSections.length;
|
|
102
|
+
const totalFlagged = flaggedClaudeMd + flaggedLessons + staleSections;
|
|
103
|
+
console.info("Summary:");
|
|
104
|
+
console.info(` Estimated auto-loaded bytes per catchup: ${formatBytes(report.estimatedAutoLoadBytes)}`);
|
|
105
|
+
console.info(` Flagged: ${flaggedClaudeMd} CLAUDE.md section(s), ${flaggedLessons} lesson(s), ${staleSections} current.md section(s)`);
|
|
106
|
+
if (totalFlagged === 0) {
|
|
107
|
+
console.info(" ✓ No bloat detected at current thresholds.");
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
console.info(" → No destructive action taken (this is --dry-run; v1 has no --apply mode).");
|
|
111
|
+
console.info(" → See .indusk/planning/context-budget/ for the distillation discipline.");
|
|
112
|
+
}
|
|
113
|
+
console.info("");
|
|
114
|
+
}
|
|
115
|
+
function formatBytes(n) {
|
|
116
|
+
if (n < 1024)
|
|
117
|
+
return `${n}B`;
|
|
118
|
+
if (n < 1024 * 1024)
|
|
119
|
+
return `${(n / 1024).toFixed(1)}KB`;
|
|
120
|
+
return `${(n / 1024 / 1024).toFixed(1)}MB`;
|
|
121
|
+
}
|
|
@@ -7,7 +7,27 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import type { EvalErrorEntry, EvalScorecard } from "./types.js";
|
|
9
9
|
export interface EvaluatorRunOptions {
|
|
10
|
+
/**
|
|
11
|
+
* Where `.indusk/` lives — the InDusk state root. All state paths
|
|
12
|
+
* (results.log, evaluator-session.json, config.json, highlights) hang off
|
|
13
|
+
* this. In workbench mode this is the workbench root (NOT a git repo);
|
|
14
|
+
* in single-repo mode it equals `gitRoot`.
|
|
15
|
+
*
|
|
16
|
+
* CONTRACT: `hooks/eval-trigger.js` MUST pass this key as `projectRoot`.
|
|
17
|
+
* It passed `statePath` between 1.31.7 and 1.31.11, leaving `projectRoot`
|
|
18
|
+
* undefined → `initEvalOtel(undefined)` → `join(undefined, …)` crashed the
|
|
19
|
+
* evaluator before any work, silently killing the eval→Graphiti rail for
|
|
20
|
+
* weeks. Guarded by eval-trigger-evaluator-arg-contract.test.ts.
|
|
21
|
+
*/
|
|
10
22
|
projectRoot: string;
|
|
23
|
+
/**
|
|
24
|
+
* The git repo root — the cwd for the inner `claude` process so its
|
|
25
|
+
* `git show ${changeId}` diff-fetch runs inside the repo. In workbench mode
|
|
26
|
+
* this differs from `projectRoot` (state root is the non-git workbench
|
|
27
|
+
* root). Optional: falls back to `projectRoot` when omitted (single-repo
|
|
28
|
+
* callers and the baseline CLI).
|
|
29
|
+
*/
|
|
30
|
+
gitRoot?: string;
|
|
11
31
|
changeId: string;
|
|
12
32
|
transcriptPath: string;
|
|
13
33
|
mode: "eval" | "baseline";
|
|
@@ -72,8 +72,10 @@ export function runEvaluatorBackground(opts) {
|
|
|
72
72
|
];
|
|
73
73
|
// Not detached — the eval-trigger hook already spawns this in a separate
|
|
74
74
|
// node process. Detaching + unref causes the close handler to never fire.
|
|
75
|
+
// cwd is the git repo (gitRoot) so the rubric's `git show ${changeId}` runs
|
|
76
|
+
// in the repo — in workbench mode that differs from the state root.
|
|
75
77
|
const child = spawn("claude", args, {
|
|
76
|
-
cwd: opts.projectRoot,
|
|
78
|
+
cwd: opts.gitRoot ?? opts.projectRoot,
|
|
77
79
|
stdio: ["pipe", "pipe", "pipe"],
|
|
78
80
|
env: { ...process.env },
|
|
79
81
|
});
|
|
@@ -200,8 +202,10 @@ async function runEvaluatorSyncInner(opts, projectGroup) {
|
|
|
200
202
|
allowedTools.join(","),
|
|
201
203
|
];
|
|
202
204
|
return new Promise((resolve) => {
|
|
205
|
+
// cwd = git repo so `git show ${changeId}` resolves; falls back to the
|
|
206
|
+
// state root for single-repo callers (gitRoot === projectRoot there).
|
|
203
207
|
const child = spawn("claude", args, {
|
|
204
|
-
cwd: opts.projectRoot,
|
|
208
|
+
cwd: opts.gitRoot ?? opts.projectRoot,
|
|
205
209
|
stdio: ["pipe", "pipe", "pipe"],
|
|
206
210
|
env: { ...process.env },
|
|
207
211
|
});
|
|
@@ -12,7 +12,19 @@ import type { EvalErrorEntry, EvalScorecard } from "./types.js";
|
|
|
12
12
|
* Subsequent calls resume the session with just the new change.
|
|
13
13
|
*/
|
|
14
14
|
export declare function runPersistentEval(opts: {
|
|
15
|
+
/**
|
|
16
|
+
* Where `.indusk/` lives (state root). All state paths hang off this.
|
|
17
|
+
* CONTRACT: `hooks/eval-trigger.js` MUST pass this key as `projectRoot`,
|
|
18
|
+
* not `statePath` — see the EvaluatorRunOptions doc in evaluator-runner.ts
|
|
19
|
+
* and eval-trigger-evaluator-arg-contract.test.ts for the regression this
|
|
20
|
+
* guards (undefined projectRoot crashed the rail 1.31.7–1.31.11).
|
|
21
|
+
*/
|
|
15
22
|
projectRoot: string;
|
|
23
|
+
/**
|
|
24
|
+
* Git repo root — cwd for the inner `claude` so `git show ${changeId}`
|
|
25
|
+
* resolves. Falls back to `projectRoot` when omitted (single-repo).
|
|
26
|
+
*/
|
|
27
|
+
gitRoot?: string;
|
|
16
28
|
changeId: string;
|
|
17
29
|
transcriptPath: string;
|
|
18
30
|
mode: "eval" | "baseline";
|
|
@@ -230,7 +230,10 @@ Output ONLY the JSON scorecard — no commentary.`;
|
|
|
230
230
|
"args.resumed": session !== null,
|
|
231
231
|
"args.model": session ? "(resumed)" : getEvalModel(opts.projectRoot),
|
|
232
232
|
}, async (span) => {
|
|
233
|
-
|
|
233
|
+
// cwd = git repo so the rubric's `git show ${changeId}` runs in
|
|
234
|
+
// the repo. In workbench mode gitRoot differs from projectRoot
|
|
235
|
+
// (the non-git state root); single-repo callers fall back to it.
|
|
236
|
+
const spawned = await spawnClaude(args, prompt, opts.gitRoot ?? opts.projectRoot);
|
|
234
237
|
span.setAttribute("exit.code", spawned.code ?? -1);
|
|
235
238
|
span.setAttribute("stdout.length", spawned.stdout.length);
|
|
236
239
|
if (spawned.code !== 0) {
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context-budget measurement library (1.31.11).
|
|
3
|
+
*
|
|
4
|
+
* Pure function `measureProjectContext(projectRoot, thresholds?)` returns a
|
|
5
|
+
* structured PruneReport describing what's accreted in the project's auto-
|
|
6
|
+
* loaded surfaces (CLAUDE.md sections, lessons, current.md sections). The
|
|
7
|
+
* `indusk prune --dry-run` CLI consumes this report and prints a human-
|
|
8
|
+
* readable surface with recommended manual cleanup commands.
|
|
9
|
+
*
|
|
10
|
+
* The library is read-only — no writes, no side effects. Auto-pruning is
|
|
11
|
+
* intentionally deferred to a future architectural plan (Piece 3 of the
|
|
12
|
+
* context-budget brief). v1 surfaces; operator decides.
|
|
13
|
+
*
|
|
14
|
+
* See `.indusk/planning/context-budget/` for full design.
|
|
15
|
+
*/
|
|
16
|
+
export interface Thresholds {
|
|
17
|
+
/** Flag CLAUDE.md sections larger than this. */
|
|
18
|
+
large_section_chars: number;
|
|
19
|
+
/** Flag lessons whose mtime is older than this. */
|
|
20
|
+
stale_lesson_days: number;
|
|
21
|
+
/** Flag current.md per-agent sections whose lastUpdated is older than this. */
|
|
22
|
+
stale_section_days: number;
|
|
23
|
+
}
|
|
24
|
+
export interface ClaudeMdSection {
|
|
25
|
+
title: string;
|
|
26
|
+
sizeChars: number;
|
|
27
|
+
flagged: boolean;
|
|
28
|
+
recommendedAction?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface LessonReport {
|
|
31
|
+
name: string;
|
|
32
|
+
path: string;
|
|
33
|
+
sizeChars: number;
|
|
34
|
+
lastModified: string;
|
|
35
|
+
ageDays: number;
|
|
36
|
+
flagged: boolean;
|
|
37
|
+
recommendedAction?: string;
|
|
38
|
+
}
|
|
39
|
+
export interface CurrentMdStaleSection {
|
|
40
|
+
sessionId: string;
|
|
41
|
+
sessionShort: string;
|
|
42
|
+
task: string;
|
|
43
|
+
lastUpdated: string;
|
|
44
|
+
ageDays: number;
|
|
45
|
+
sizeChars: number;
|
|
46
|
+
}
|
|
47
|
+
export interface CurrentMdReport {
|
|
48
|
+
exists: boolean;
|
|
49
|
+
totalSizeChars: number;
|
|
50
|
+
sharedSectionSizeChars: number;
|
|
51
|
+
sectionCount: number;
|
|
52
|
+
staleSections: CurrentMdStaleSection[];
|
|
53
|
+
}
|
|
54
|
+
export interface PruneReport {
|
|
55
|
+
claudeMd: ClaudeMdSection[];
|
|
56
|
+
lessons: LessonReport[];
|
|
57
|
+
currentMd: CurrentMdReport;
|
|
58
|
+
/** Approximate total bytes loaded into every conversation today. */
|
|
59
|
+
estimatedAutoLoadBytes: number;
|
|
60
|
+
/** Diagnostic notes about what was found / missing. */
|
|
61
|
+
notes: string[];
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Measure the project's auto-loaded context surfaces. Pure-read, no side
|
|
65
|
+
* effects. Returns a structured report the CLI prints + future tooling can
|
|
66
|
+
* consume programmatically.
|
|
67
|
+
*/
|
|
68
|
+
export declare function measureProjectContext(projectRoot: string, thresholds?: Partial<Thresholds>): PruneReport;
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context-budget measurement library (1.31.11).
|
|
3
|
+
*
|
|
4
|
+
* Pure function `measureProjectContext(projectRoot, thresholds?)` returns a
|
|
5
|
+
* structured PruneReport describing what's accreted in the project's auto-
|
|
6
|
+
* loaded surfaces (CLAUDE.md sections, lessons, current.md sections). The
|
|
7
|
+
* `indusk prune --dry-run` CLI consumes this report and prints a human-
|
|
8
|
+
* readable surface with recommended manual cleanup commands.
|
|
9
|
+
*
|
|
10
|
+
* The library is read-only — no writes, no side effects. Auto-pruning is
|
|
11
|
+
* intentionally deferred to a future architectural plan (Piece 3 of the
|
|
12
|
+
* context-budget brief). v1 surfaces; operator decides.
|
|
13
|
+
*
|
|
14
|
+
* See `.indusk/planning/context-budget/` for full design.
|
|
15
|
+
*/
|
|
16
|
+
import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
|
|
17
|
+
import { join } from "node:path";
|
|
18
|
+
import { parseCurrentMd } from "../agents/current-md.js";
|
|
19
|
+
const DEFAULT_THRESHOLDS = {
|
|
20
|
+
large_section_chars: 4000,
|
|
21
|
+
stale_lesson_days: 180,
|
|
22
|
+
stale_section_days: 7,
|
|
23
|
+
};
|
|
24
|
+
const MS_PER_DAY = 24 * 60 * 60 * 1000;
|
|
25
|
+
/**
|
|
26
|
+
* Split CLAUDE.md body into sections by `^## ` headings. Returns the section
|
|
27
|
+
* title (without the `## ` prefix) and the body (everything until the next
|
|
28
|
+
* `## ` heading or EOF). Lines before the first `## ` are not returned (the
|
|
29
|
+
* `# H1` preamble is treated as overhead, not a section).
|
|
30
|
+
*/
|
|
31
|
+
function splitClaudeMdSections(body) {
|
|
32
|
+
const lines = body.split("\n");
|
|
33
|
+
const sections = [];
|
|
34
|
+
let current = null;
|
|
35
|
+
for (const line of lines) {
|
|
36
|
+
const match = /^## (.+)$/.exec(line);
|
|
37
|
+
if (match) {
|
|
38
|
+
if (current) {
|
|
39
|
+
sections.push({ title: current.title, content: current.lines.join("\n") });
|
|
40
|
+
}
|
|
41
|
+
current = { title: match[1].trim(), lines: [] };
|
|
42
|
+
}
|
|
43
|
+
else if (current) {
|
|
44
|
+
current.lines.push(line);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (current) {
|
|
48
|
+
sections.push({ title: current.title, content: current.lines.join("\n") });
|
|
49
|
+
}
|
|
50
|
+
return sections;
|
|
51
|
+
}
|
|
52
|
+
function readClaudeMd(projectRoot, thresholds) {
|
|
53
|
+
const claudeMdPath = join(projectRoot, "CLAUDE.md");
|
|
54
|
+
if (!existsSync(claudeMdPath))
|
|
55
|
+
return [];
|
|
56
|
+
const body = readFileSync(claudeMdPath, "utf-8");
|
|
57
|
+
const sections = splitClaudeMdSections(body);
|
|
58
|
+
return sections.map((s) => {
|
|
59
|
+
const sizeChars = s.content.length;
|
|
60
|
+
const flagged = sizeChars > thresholds.large_section_chars;
|
|
61
|
+
const out = { title: s.title, sizeChars, flagged };
|
|
62
|
+
if (flagged) {
|
|
63
|
+
out.recommendedAction = `Collapse "${s.title}" to one-line entries + links to archive. ${sizeChars} chars currently; target < ${thresholds.large_section_chars}. See .indusk/planning/context-budget/ for the distillation discipline.`;
|
|
64
|
+
}
|
|
65
|
+
return out;
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
function readLessons(projectRoot, thresholds) {
|
|
69
|
+
const lessonsDir = join(projectRoot, ".claude/lessons");
|
|
70
|
+
if (!existsSync(lessonsDir))
|
|
71
|
+
return [];
|
|
72
|
+
const now = Date.now();
|
|
73
|
+
const reports = [];
|
|
74
|
+
const entries = readdirSync(lessonsDir, { withFileTypes: true });
|
|
75
|
+
for (const entry of entries) {
|
|
76
|
+
if (!entry.isFile() || !entry.name.endsWith(".md"))
|
|
77
|
+
continue;
|
|
78
|
+
const path = join(lessonsDir, entry.name);
|
|
79
|
+
let stat;
|
|
80
|
+
try {
|
|
81
|
+
stat = statSync(path);
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
const ageDays = Math.floor((now - stat.mtimeMs) / MS_PER_DAY);
|
|
87
|
+
const flagged = ageDays > thresholds.stale_lesson_days;
|
|
88
|
+
const lastModified = new Date(stat.mtimeMs).toISOString();
|
|
89
|
+
const report = {
|
|
90
|
+
name: entry.name.replace(/\.md$/, ""),
|
|
91
|
+
path,
|
|
92
|
+
sizeChars: stat.size,
|
|
93
|
+
lastModified,
|
|
94
|
+
ageDays,
|
|
95
|
+
flagged,
|
|
96
|
+
};
|
|
97
|
+
if (flagged) {
|
|
98
|
+
report.recommendedAction = `Review and (if obsolete) rm -i "${path}". Untouched for ${ageDays} days; threshold is ${thresholds.stale_lesson_days}.`;
|
|
99
|
+
}
|
|
100
|
+
reports.push(report);
|
|
101
|
+
}
|
|
102
|
+
return reports.sort((a, b) => b.ageDays - a.ageDays);
|
|
103
|
+
}
|
|
104
|
+
function readCurrentMd(projectRoot, thresholds) {
|
|
105
|
+
const currentMdPath = join(projectRoot, ".indusk/current.md");
|
|
106
|
+
if (!existsSync(currentMdPath)) {
|
|
107
|
+
return {
|
|
108
|
+
exists: false,
|
|
109
|
+
totalSizeChars: 0,
|
|
110
|
+
sharedSectionSizeChars: 0,
|
|
111
|
+
sectionCount: 0,
|
|
112
|
+
staleSections: [],
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
const body = readFileSync(currentMdPath, "utf-8");
|
|
116
|
+
const parsed = parseCurrentMd(body);
|
|
117
|
+
const now = Date.now();
|
|
118
|
+
const stale = [];
|
|
119
|
+
for (const section of parsed.sections) {
|
|
120
|
+
const lastUpdatedMs = Date.parse(section.lastUpdated);
|
|
121
|
+
if (Number.isNaN(lastUpdatedMs))
|
|
122
|
+
continue;
|
|
123
|
+
const ageDays = Math.floor((now - lastUpdatedMs) / MS_PER_DAY);
|
|
124
|
+
if (ageDays <= thresholds.stale_section_days)
|
|
125
|
+
continue;
|
|
126
|
+
const sectionSize = section.inFlight.length + section.openQuestions.length + section.cursor.length;
|
|
127
|
+
stale.push({
|
|
128
|
+
sessionId: section.sessionId,
|
|
129
|
+
sessionShort: section.sessionShort,
|
|
130
|
+
task: section.task,
|
|
131
|
+
lastUpdated: section.lastUpdated,
|
|
132
|
+
ageDays,
|
|
133
|
+
sizeChars: sectionSize,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
return {
|
|
137
|
+
exists: true,
|
|
138
|
+
totalSizeChars: body.length,
|
|
139
|
+
sharedSectionSizeChars: parsed.sharedSection.length,
|
|
140
|
+
sectionCount: parsed.sections.length,
|
|
141
|
+
staleSections: stale,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Measure the project's auto-loaded context surfaces. Pure-read, no side
|
|
146
|
+
* effects. Returns a structured report the CLI prints + future tooling can
|
|
147
|
+
* consume programmatically.
|
|
148
|
+
*/
|
|
149
|
+
export function measureProjectContext(projectRoot, thresholds) {
|
|
150
|
+
const resolved = { ...DEFAULT_THRESHOLDS, ...thresholds };
|
|
151
|
+
const notes = [];
|
|
152
|
+
const induskDir = join(projectRoot, ".indusk");
|
|
153
|
+
if (!existsSync(induskDir)) {
|
|
154
|
+
notes.push(`no .indusk/ directory found at ${projectRoot} — not an InDusk project, or init not run`);
|
|
155
|
+
}
|
|
156
|
+
const claudeMd = readClaudeMd(projectRoot, resolved);
|
|
157
|
+
if (claudeMd.length === 0) {
|
|
158
|
+
notes.push("no CLAUDE.md found (or no ## sections)");
|
|
159
|
+
}
|
|
160
|
+
const lessons = readLessons(projectRoot, resolved);
|
|
161
|
+
if (lessons.length === 0) {
|
|
162
|
+
notes.push("no lessons found in .claude/lessons/");
|
|
163
|
+
}
|
|
164
|
+
const currentMd = readCurrentMd(projectRoot, resolved);
|
|
165
|
+
// Estimated auto-loaded bytes — approximate sum of what catchup loads.
|
|
166
|
+
const claudeMdBytes = claudeMd.reduce((sum, s) => sum + s.sizeChars, 0);
|
|
167
|
+
const lessonsBytes = lessons.reduce((sum, l) => sum + l.sizeChars, 0);
|
|
168
|
+
// Lessons are lazy-loaded as of 1.31.5; only titles + paths appear in
|
|
169
|
+
// list_lessons output. Estimate ~150 bytes per lesson for the summary.
|
|
170
|
+
const lessonsTitlesBytes = lessons.length * 150;
|
|
171
|
+
const estimatedAutoLoadBytes = claudeMdBytes + lessonsTitlesBytes + currentMd.totalSizeChars;
|
|
172
|
+
return {
|
|
173
|
+
claudeMd,
|
|
174
|
+
lessons,
|
|
175
|
+
currentMd,
|
|
176
|
+
estimatedAutoLoadBytes,
|
|
177
|
+
notes,
|
|
178
|
+
};
|
|
179
|
+
}
|
package/hooks/eval-trigger.js
CHANGED
|
@@ -348,8 +348,18 @@ syslog("evaluator process started — changeId: ${changeId}");
|
|
|
348
348
|
import("${useModule}")
|
|
349
349
|
.then(m => {
|
|
350
350
|
syslog("evaluator module loaded — calling ${useFunction}");
|
|
351
|
+
// CONTRACT: the state root MUST be passed as \`projectRoot\` (the key both
|
|
352
|
+
// runPersistentEval and runEvaluatorSync read). 1.31.7 renamed this to
|
|
353
|
+
// \`statePath\` here without updating the evaluator signatures, so
|
|
354
|
+
// opts.projectRoot was undefined and the evaluator crashed at
|
|
355
|
+
// initEvalOtel(undefined) → join(undefined,…) before any work — silently
|
|
356
|
+
// killing the eval→Graphiti rail. \`gitRoot\` carries the git repo so the
|
|
357
|
+
// inner claude's \`git show \${changeId}\` resolves in workbench mode (state
|
|
358
|
+
// root is the non-git workbench root). Guarded by
|
|
359
|
+
// eval-trigger-evaluator-arg-contract.test.ts.
|
|
351
360
|
return m.${useFunction}({
|
|
352
|
-
|
|
361
|
+
projectRoot: ${JSON.stringify(statePath)},
|
|
362
|
+
gitRoot: ${JSON.stringify(gitPath ?? statePath)},
|
|
353
363
|
changeId: ${JSON.stringify(changeId)},
|
|
354
364
|
transcriptPath: ${JSON.stringify(transcriptPath)},
|
|
355
365
|
mode: "eval",
|
package/package.json
CHANGED
package/skills/retrospective.md
CHANGED
|
@@ -189,6 +189,38 @@ Re-read CLAUDE.md in full. After the entire impl is done, verify:
|
|
|
189
189
|
|
|
190
190
|
Fix any inaccuracies. The impl may have changed things that weren't anticipated in the per-phase context updates.
|
|
191
191
|
|
|
192
|
+
#### Current State entries are ONE LINE + link to archive (1.31.11)
|
|
193
|
+
|
|
194
|
+
When you add a Current State entry for a newly-completed plan, write it as **one line + a link to the archive**, not as a multi-paragraph prose entry. Every retrospective accretes Current State; over 20-30 plans, paragraph entries push CLAUDE.md past 30KB of always-loaded prose. The detail lives in the archived plan + the docs site decisions/lessons pages — the Current State entry is a pointer, not a duplicate.
|
|
195
|
+
|
|
196
|
+
**Use this shape:**
|
|
197
|
+
|
|
198
|
+
```markdown
|
|
199
|
+
- **{plan-name} ({version})** — one-sentence summary of what shipped. See [archive](.indusk/planning/archive/{plan-name}/) for full detail.
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
Example:
|
|
203
|
+
|
|
204
|
+
```markdown
|
|
205
|
+
- **workbench-mode-rail-integrity (1.31.10)** — eval→Graphiti pipeline works on workbench-shaped projects; 4 hooks refactored, stray-state audit added, falsification surfaced 2 more bugs both fixed. See [archive](.indusk/planning/archive/workbench-mode-rail-integrity/) for full detail.
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
**Counter-example — do NOT write this shape going forward**:
|
|
209
|
+
|
|
210
|
+
```markdown
|
|
211
|
+
- **plan-name shipped in 1.X.Y (2026-XX-XX)** — three paragraphs of detail
|
|
212
|
+
about what the plan did, what shipped in each phase, what bugs were
|
|
213
|
+
found in falsification, what lessons were captured, what's deferred to
|
|
214
|
+
follow-up work, with embedded code references and file paths and...
|
|
215
|
+
[continues for ~500 chars]
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
The counter-example is **token bloat on every catchup**, paid by every Claude Code session forever. The one-line shape preserves discoverability (the plan name + version + link is enough for the agent to know what to query) at a fraction of the cost.
|
|
219
|
+
|
|
220
|
+
Existing multi-paragraph entries (pre-1.31.11) can be collapsed via `indusk prune --dry-run` (which surfaces them) plus manual operator cleanup — they are not auto-migrated.
|
|
221
|
+
|
|
222
|
+
Why this matters: CLAUDE.md is auto-loaded into every Claude Code session. Every byte you add accrues to every prompt indefinitely. The discipline is "thinner navigation layer, queryable detail" — see [context-budget brief](../../.indusk/planning/context-budget/brief.md) for the full rationale.
|
|
223
|
+
|
|
192
224
|
### Step 8: Knowledge Handoff
|
|
193
225
|
|
|
194
226
|
Distill planning artifacts into the docs site so the knowledge survives archival.
|
/package/admin/.next/static/{sBeX2BZfXbYWwEGGXPJ1I → P5hY9vyoEe1rhpwQ1E3ZN}/_buildManifest.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|