@drewpayment/mink 0.12.0-beta.5 → 0.12.0-beta.7
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/dashboard/out/404.html +1 -1
- package/dashboard/out/action-log.html +1 -1
- package/dashboard/out/action-log.txt +1 -1
- package/dashboard/out/activity.html +1 -1
- package/dashboard/out/activity.txt +1 -1
- package/dashboard/out/bugs.html +1 -1
- package/dashboard/out/bugs.txt +1 -1
- package/dashboard/out/capture.html +1 -1
- package/dashboard/out/capture.txt +1 -1
- package/dashboard/out/config.html +1 -1
- package/dashboard/out/config.txt +1 -1
- package/dashboard/out/daemon.html +1 -1
- package/dashboard/out/daemon.txt +1 -1
- package/dashboard/out/design.html +1 -1
- package/dashboard/out/design.txt +1 -1
- package/dashboard/out/discord.html +1 -1
- package/dashboard/out/discord.txt +1 -1
- package/dashboard/out/file-index.html +1 -1
- package/dashboard/out/file-index.txt +1 -1
- package/dashboard/out/index.html +1 -1
- package/dashboard/out/index.txt +1 -1
- package/dashboard/out/insights.html +1 -1
- package/dashboard/out/insights.txt +1 -1
- package/dashboard/out/learning.html +1 -1
- package/dashboard/out/learning.txt +1 -1
- package/dashboard/out/overview.html +1 -1
- package/dashboard/out/overview.txt +1 -1
- package/dashboard/out/scheduler.html +1 -1
- package/dashboard/out/scheduler.txt +1 -1
- package/dashboard/out/sync.html +1 -1
- package/dashboard/out/sync.txt +1 -1
- package/dashboard/out/tokens.html +1 -1
- package/dashboard/out/tokens.txt +1 -1
- package/dashboard/out/waste.html +1 -1
- package/dashboard/out/waste.txt +1 -1
- package/dashboard/out/wiki.html +1 -1
- package/dashboard/out/wiki.txt +1 -1
- package/dist/cli.bun.js +44 -24
- package/dist/cli.node.js +56 -34
- package/package.json +1 -1
- package/src/commands/init.ts +30 -14
- package/src/commands/status.ts +37 -12
- package/src/core/state-aggregator.ts +3 -3
- /package/dashboard/out/_next/static/{eZlC6TEe7TWUABN2-Ho0J → _mawjPSnSIjvy8e5jxeZJ}/_buildManifest.js +0 -0
- /package/dashboard/out/_next/static/{eZlC6TEe7TWUABN2-Ho0J → _mawjPSnSIjvy8e5jxeZJ}/_ssgManifest.js +0 -0
package/dashboard/out/waste.txt
CHANGED
|
@@ -15,7 +15,7 @@ f:I[4431,[],"ViewportBoundary"]
|
|
|
15
15
|
:HL["/_next/static/media/bb3ef058b751a6ad-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
16
16
|
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
17
17
|
:HL["/_next/static/css/5e43917ea49c5b3e.css","style"]
|
|
18
|
-
0:{"P":null,"b":"
|
|
18
|
+
0:{"P":null,"b":"_mawjPSnSIjvy8e5jxeZJ","p":"","c":["","waste"],"i":false,"f":[[["",{"children":["(panels)",{"children":["waste",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/5e43917ea49c5b3e.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_3c557b","data-theme":"dark","data-accent":"green","data-density":"compact","data-live":"on","data-daemon":"offline","children":["$","$L2",null,{"attribute":"data-theme","value":{"light":"light","dark":"dark"},"defaultTheme":"dark","enableSystem":true,"storageKey":"mink-theme","children":[["$","$L3",null,{}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["(panels)",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["waste",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","searchParams":{},"params":{},"promises":["$@9","$@a"]}],null,["$","$Lb",null,{"children":["$Lc",["$","$Ld",null,{"promise":"$@e"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lf",null,{"children":"$L10"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$L11",null,{"children":["$","div",null,{"hidden":true,"children":["$","$12",null,{"fallback":null,"children":"$L13"}]}]}]]}],false]],"m":"$undefined","G":["$14",[]],"s":false,"S":true}
|
|
19
19
|
9:{}
|
|
20
20
|
a:"$0:f:0:1:2:children:2:children:2:children:1:props:children:0:props:params"
|
|
21
21
|
10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
package/dashboard/out/wiki.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--eZlC6TEe7TWUABN2_Ho0J--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/bb3ef058b751a6ad-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/5e43917ea49c5b3e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-4e3139a490df1cfe.js"/><script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script><script src="/_next/static/chunks/255-6b79f309a27fb98b.js" async=""></script><script src="/_next/static/chunks/main-app-c2dc0acf542ec1c6.js" async=""></script><script src="/_next/static/chunks/189-fe789442321eb5eb.js" async=""></script><script src="/_next/static/chunks/app/layout-782cd26e0ccc4514.js" async=""></script><script src="/_next/static/chunks/app/(panels)/wiki/page-a32fdbd0bf58b30b.js" async=""></script><meta name="next-size-adjust" content=""/><title>Mink — Command Center</title><meta name="description" content="Real-time dashboard for Mink token intelligence"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_f367f3 __variable_3c557b" data-theme="dark" data-accent="green" data-density="compact" data-live="on" data-daemon="offline"><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("data-theme","mink-theme","dark",null,["light","dark"],{"light":"light","dark":"dark"},true,true)</script><div id="app-root"><div class="shell"><aside class="sidebar"><div class="sb-head"><div class="sb-logo">M</div><div class="sb-title">Mink</div><div class="sb-sub">v1</div></div><div class="sb-project"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M3 7a2 2 0 012-2h4l2 2h8a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V7z"></path></svg><div style="min-width:0;flex:1"><div class="pname">Mink</div><div class="pslug"></div></div><svg class="icn pchev" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M6 9l6 6 6-6"></path></svg></div><div><div class="sb-group">Overview</div><a class="sb-item" href="/overview"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg><span>Sessions</span></a><a class="sb-item" href="/activity"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M2 12h4l2-7 4 14 2-7h6"></path></svg><span>Activity log</span></a><a class="sb-item" href="/tokens"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M3 20h18M6 16V8M11 16V4M16 16v-6M21 16v-3"></path></svg><span>Token ledger</span></a><a class="sb-item" href="/waste"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2l11 20H1L12 2zm0 7v5m0 4v0"></path></svg><span>Waste detect</span></a></div><div><div class="sb-group">Knowledge</div><a class="sb-item" href="/file-index"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8l-6-6z"></path></svg><span>File index</span></a><a class="sb-item" href="/learning"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M12 4a4 4 0 00-4 4v1a3 3 0 00-2 5.5A3 3 0 008 19a4 4 0 004 2 4 4 0 004-2 3 3 0 002-4.5A3 3 0 0016 9V8a4 4 0 00-4-4z"></path></svg><span>Learning</span></a><a class="sb-item" href="/bugs"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M8 8V6a4 4 0 018 0v2M4 13h16M12 8v13M7 21s-3-2-3-8M17 21s3-2 3-8M8 9l-4-3M16 9l4-3M8 13l-4 3M16 13l4 3"></path></svg><span>Bug memory</span></a></div><div><div class="sb-group">Notes & Wiki</div><a aria-current="page" class="sb-item active" href="/wiki"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h12a4 4 0 014 4v12H8a4 4 0 01-4-4V4zm0 0v16"></path></svg><span>Vault</span></a><a class="sb-item" href="/capture"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M12 5v14M5 12h14"></path></svg><span>Capture</span></a></div><div><div class="sb-group">Operations</div><a class="sb-item" href="/scheduler"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22a10 10 0 100-20 10 10 0 000 20zm0-16v6l4 2"></path></svg><span>Scheduler</span></a><a class="sb-item" href="/discord"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M9 14a1 1 0 100-2 1 1 0 000 2zm6 0a1 1 0 100-2 1 1 0 000 2zM7 7l2-1h6l2 1 2 5-1 5-3 1-1-2-4 0-1 2-3-1-1-5z"></path></svg><span>Discord</span></a><a class="sb-item" href="/sync"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M6 3v12M6 15a3 3 0 110 6 3 3 0 010-6zm0-12a3 3 0 110 6 3 3 0 010-6zm12 6a3 3 0 110 6 3 3 0 010-6zM18 9v2a2 2 0 01-2 2H9"></path></svg><span>Sync</span></a></div><div><div class="sb-group">System</div><a class="sb-item" href="/daemon"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M18 6a8 8 0 11-12 0M12 2v8"></path></svg><span>Daemon</span></a><a class="sb-item" href="/config"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M12 15a3 3 0 100-6 3 3 0 000 6zm8-3l2-1-2-4-2 1-1-1V4h-4v1l-1 1-2-1-2 4 2 1v2l-2 1 2 4 2-1 1 1v1h4v-1l1-1 2 1 2-4-2-1v-2z"></path></svg><span>Configuration</span></a></div><div style="height:20px"></div></aside><header class="topbar"><div class="tb-section"><span class="muted">Mink</span><span class="sep">/</span><span class="muted">Notes & Wiki</span><span class="sep">/</span><span class="crumb">Vault</span></div><div class="tb-spacer"></div><div class="cmdk" title="Command palette (coming soon)"><svg class="icn" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M21 21l-5-5m2-6a8 8 0 11-16 0 8 8 0 0116 0z"></path></svg><span>Search files, notes, bugs…</span><kbd>⌘K</kbd></div><span class="daemon-pill" title="Daemon offline"><span class="pulse"></span><span class="mono" style="font-size:10.5px">daemon · offline</span></span><button type="button" class="tb-icon-btn" title="Refresh data"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12a9 9 0 019-9c2.5 0 4.7 1 6.3 2.7M21 3v5h-5M21 12a9 9 0 01-9 9c-2.5 0-4.7-1-6.3-2.7M3 21v-5h5"></path></svg></button><button type="button" class="tb-icon-btn" title="Tweaks"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M15 4V2m0 14v-2m-7-7h2M22 9h-2M5.6 5.6l1.4 1.4M18.4 5.6L17 7m0 10l1.4 1.4M7 17l-1.4 1.4M14 7l-9 9 3 3 9-9"></path></svg></button><button type="button" class="tb-icon-btn" title="More" aria-label="More"><svg class="icn" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12a1 1 0 102 0 1 1 0 00-2 0zm6 0a1 1 0 102 0 1 1 0 00-2 0zm6 0a1 1 0 102 0 1 1 0 00-2 0z"></path></svg></button></header><main class="main"><div class="page"><div class="card"><div class="card-head"><h3>Wiki</h3></div><div class="card-body"><div class="empty"><h4>Loading…</h4></div></div></div></div><!--$--><!--/$--></main><footer class="statusbar"><span class="sb-stat daemon-stat"><span class="dot-mini"></span><span class="k">daemon</span><span class="v">offline</span></span><span style="flex:1"></span><span class="sb-stat"><span class="k">run</span><span class="v">mink daemon start</span></span></footer></div></div><script src="/_next/static/chunks/webpack-4e3139a490df1cfe.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[5379,[\"189\",\"static/chunks/189-fe789442321eb5eb.js\",\"177\",\"static/chunks/app/layout-782cd26e0ccc4514.js\"],\"ThemeProvider\"]\n3:I[2800,[\"189\",\"static/chunks/189-fe789442321eb5eb.js\",\"177\",\"static/chunks/app/layout-782cd26e0ccc4514.js\"],\"SSEProvider\"]\n4:I[7758,[\"189\",\"static/chunks/189-fe789442321eb5eb.js\",\"177\",\"static/chunks/app/layout-782cd26e0ccc4514.js\"],\"AppShell\"]\n5:I[9766,[],\"\"]\n6:I[8924,[],\"\"]\n7:I[1959,[],\"ClientPageRoot\"]\n8:I[3191,[\"386\",\"static/chunks/app/(panels)/wiki/page-a32fdbd0bf58b30b.js\"],\"default\"]\nb:I[4431,[],\"OutletBoundary\"]\nd:I[5278,[],\"AsyncMetadataOutlet\"]\nf:I[4431,[],\"ViewportBoundary\"]\n11:I[4431,[],\"MetadataBoundary\"]\n12:\"$Sreact.suspense\"\n14:I[7150,[],\"\"]\n:HL[\"/_next/static/media/bb3ef058b751a6ad-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/5e43917ea49c5b3e.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"eZlC6TEe7TWUABN2-Ho0J\",\"p\":\"\",\"c\":[\"\",\"wiki\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"(panels)\",{\"children\":[\"wiki\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/5e43917ea49c5b3e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"__variable_f367f3 __variable_3c557b\",\"data-theme\":\"dark\",\"data-accent\":\"green\",\"data-density\":\"compact\",\"data-live\":\"on\",\"data-daemon\":\"offline\",\"children\":[\"$\",\"$L2\",null,{\"attribute\":\"data-theme\",\"value\":{\"light\":\"light\",\"dark\":\"dark\"},\"defaultTheme\":\"dark\",\"enableSystem\":true,\"storageKey\":\"mink-theme\",\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]}]}]]}],{\"children\":[\"(panels)\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"wiki\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L7\",null,{\"Component\":\"$8\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@9\",\"$@a\"]}],null,[\"$\",\"$Lb\",null,{\"children\":[\"$Lc\",[\"$\",\"$Ld\",null,{\"promise\":\"$@e\"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$Lf\",null,{\"children\":\"$L10\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$L11\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$12\",null,{\"fallback\":null,\"children\":\"$L13\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$14\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:{}\na:\"$0:f:0:1:2:children:2:children:2:children:1:props:children:0:props:params\"\n"])</script><script>self.__next_f.push([1,"10:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\nc:null\n"])</script><script>self.__next_f.push([1,"e:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Mink — Command Center\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Real-time dashboard for Mink token intelligence\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"13:\"$e:metadata\"\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><!--_mawjPSnSIjvy8e5jxeZJ--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/bb3ef058b751a6ad-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/5e43917ea49c5b3e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-4e3139a490df1cfe.js"/><script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script><script src="/_next/static/chunks/255-6b79f309a27fb98b.js" async=""></script><script src="/_next/static/chunks/main-app-c2dc0acf542ec1c6.js" async=""></script><script src="/_next/static/chunks/189-fe789442321eb5eb.js" async=""></script><script src="/_next/static/chunks/app/layout-782cd26e0ccc4514.js" async=""></script><script src="/_next/static/chunks/app/(panels)/wiki/page-a32fdbd0bf58b30b.js" async=""></script><meta name="next-size-adjust" content=""/><title>Mink — Command Center</title><meta name="description" content="Real-time dashboard for Mink token intelligence"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_f367f3 __variable_3c557b" data-theme="dark" data-accent="green" data-density="compact" data-live="on" data-daemon="offline"><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("data-theme","mink-theme","dark",null,["light","dark"],{"light":"light","dark":"dark"},true,true)</script><div id="app-root"><div class="shell"><aside class="sidebar"><div class="sb-head"><div class="sb-logo">M</div><div class="sb-title">Mink</div><div class="sb-sub">v1</div></div><div class="sb-project"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M3 7a2 2 0 012-2h4l2 2h8a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V7z"></path></svg><div style="min-width:0;flex:1"><div class="pname">Mink</div><div class="pslug"></div></div><svg class="icn pchev" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M6 9l6 6 6-6"></path></svg></div><div><div class="sb-group">Overview</div><a class="sb-item" href="/overview"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"></path></svg><span>Sessions</span></a><a class="sb-item" href="/activity"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M2 12h4l2-7 4 14 2-7h6"></path></svg><span>Activity log</span></a><a class="sb-item" href="/tokens"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M3 20h18M6 16V8M11 16V4M16 16v-6M21 16v-3"></path></svg><span>Token ledger</span></a><a class="sb-item" href="/waste"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2l11 20H1L12 2zm0 7v5m0 4v0"></path></svg><span>Waste detect</span></a></div><div><div class="sb-group">Knowledge</div><a class="sb-item" href="/file-index"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8l-6-6z"></path></svg><span>File index</span></a><a class="sb-item" href="/learning"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M12 4a4 4 0 00-4 4v1a3 3 0 00-2 5.5A3 3 0 008 19a4 4 0 004 2 4 4 0 004-2 3 3 0 002-4.5A3 3 0 0016 9V8a4 4 0 00-4-4z"></path></svg><span>Learning</span></a><a class="sb-item" href="/bugs"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M8 8V6a4 4 0 018 0v2M4 13h16M12 8v13M7 21s-3-2-3-8M17 21s3-2 3-8M8 9l-4-3M16 9l4-3M8 13l-4 3M16 13l4 3"></path></svg><span>Bug memory</span></a></div><div><div class="sb-group">Notes & Wiki</div><a aria-current="page" class="sb-item active" href="/wiki"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h12a4 4 0 014 4v12H8a4 4 0 01-4-4V4zm0 0v16"></path></svg><span>Vault</span></a><a class="sb-item" href="/capture"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M12 5v14M5 12h14"></path></svg><span>Capture</span></a></div><div><div class="sb-group">Operations</div><a class="sb-item" href="/scheduler"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22a10 10 0 100-20 10 10 0 000 20zm0-16v6l4 2"></path></svg><span>Scheduler</span></a><a class="sb-item" href="/discord"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M9 14a1 1 0 100-2 1 1 0 000 2zm6 0a1 1 0 100-2 1 1 0 000 2zM7 7l2-1h6l2 1 2 5-1 5-3 1-1-2-4 0-1 2-3-1-1-5z"></path></svg><span>Discord</span></a><a class="sb-item" href="/sync"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M6 3v12M6 15a3 3 0 110 6 3 3 0 010-6zm0-12a3 3 0 110 6 3 3 0 010-6zm12 6a3 3 0 110 6 3 3 0 010-6zM18 9v2a2 2 0 01-2 2H9"></path></svg><span>Sync</span></a></div><div><div class="sb-group">System</div><a class="sb-item" href="/daemon"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M18 6a8 8 0 11-12 0M12 2v8"></path></svg><span>Daemon</span></a><a class="sb-item" href="/config"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M12 15a3 3 0 100-6 3 3 0 000 6zm8-3l2-1-2-4-2 1-1-1V4h-4v1l-1 1-2-1-2 4 2 1v2l-2 1 2 4 2-1 1 1v1h4v-1l1-1 2 1 2-4-2-1v-2z"></path></svg><span>Configuration</span></a></div><div style="height:20px"></div></aside><header class="topbar"><div class="tb-section"><span class="muted">Mink</span><span class="sep">/</span><span class="muted">Notes & Wiki</span><span class="sep">/</span><span class="crumb">Vault</span></div><div class="tb-spacer"></div><div class="cmdk" title="Command palette (coming soon)"><svg class="icn" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M21 21l-5-5m2-6a8 8 0 11-16 0 8 8 0 0116 0z"></path></svg><span>Search files, notes, bugs…</span><kbd>⌘K</kbd></div><span class="daemon-pill" title="Daemon offline"><span class="pulse"></span><span class="mono" style="font-size:10.5px">daemon · offline</span></span><button type="button" class="tb-icon-btn" title="Refresh data"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12a9 9 0 019-9c2.5 0 4.7 1 6.3 2.7M21 3v5h-5M21 12a9 9 0 01-9 9c-2.5 0-4.7-1-6.3-2.7M3 21v-5h5"></path></svg></button><button type="button" class="tb-icon-btn" title="Tweaks"><svg class="icn" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M15 4V2m0 14v-2m-7-7h2M22 9h-2M5.6 5.6l1.4 1.4M18.4 5.6L17 7m0 10l1.4 1.4M7 17l-1.4 1.4M14 7l-9 9 3 3 9-9"></path></svg></button><button type="button" class="tb-icon-btn" title="More" aria-label="More"><svg class="icn" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12a1 1 0 102 0 1 1 0 00-2 0zm6 0a1 1 0 102 0 1 1 0 00-2 0zm6 0a1 1 0 102 0 1 1 0 00-2 0z"></path></svg></button></header><main class="main"><div class="page"><div class="card"><div class="card-head"><h3>Wiki</h3></div><div class="card-body"><div class="empty"><h4>Loading…</h4></div></div></div></div><!--$--><!--/$--></main><footer class="statusbar"><span class="sb-stat daemon-stat"><span class="dot-mini"></span><span class="k">daemon</span><span class="v">offline</span></span><span style="flex:1"></span><span class="sb-stat"><span class="k">run</span><span class="v">mink daemon start</span></span></footer></div></div><script src="/_next/static/chunks/webpack-4e3139a490df1cfe.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[5379,[\"189\",\"static/chunks/189-fe789442321eb5eb.js\",\"177\",\"static/chunks/app/layout-782cd26e0ccc4514.js\"],\"ThemeProvider\"]\n3:I[2800,[\"189\",\"static/chunks/189-fe789442321eb5eb.js\",\"177\",\"static/chunks/app/layout-782cd26e0ccc4514.js\"],\"SSEProvider\"]\n4:I[7758,[\"189\",\"static/chunks/189-fe789442321eb5eb.js\",\"177\",\"static/chunks/app/layout-782cd26e0ccc4514.js\"],\"AppShell\"]\n5:I[9766,[],\"\"]\n6:I[8924,[],\"\"]\n7:I[1959,[],\"ClientPageRoot\"]\n8:I[3191,[\"386\",\"static/chunks/app/(panels)/wiki/page-a32fdbd0bf58b30b.js\"],\"default\"]\nb:I[4431,[],\"OutletBoundary\"]\nd:I[5278,[],\"AsyncMetadataOutlet\"]\nf:I[4431,[],\"ViewportBoundary\"]\n11:I[4431,[],\"MetadataBoundary\"]\n12:\"$Sreact.suspense\"\n14:I[7150,[],\"\"]\n:HL[\"/_next/static/media/bb3ef058b751a6ad-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/5e43917ea49c5b3e.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"_mawjPSnSIjvy8e5jxeZJ\",\"p\":\"\",\"c\":[\"\",\"wiki\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"(panels)\",{\"children\":[\"wiki\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/5e43917ea49c5b3e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"__variable_f367f3 __variable_3c557b\",\"data-theme\":\"dark\",\"data-accent\":\"green\",\"data-density\":\"compact\",\"data-live\":\"on\",\"data-daemon\":\"offline\",\"children\":[\"$\",\"$L2\",null,{\"attribute\":\"data-theme\",\"value\":{\"light\":\"light\",\"dark\":\"dark\"},\"defaultTheme\":\"dark\",\"enableSystem\":true,\"storageKey\":\"mink-theme\",\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]}]}]]}],{\"children\":[\"(panels)\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"wiki\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L7\",null,{\"Component\":\"$8\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@9\",\"$@a\"]}],null,[\"$\",\"$Lb\",null,{\"children\":[\"$Lc\",[\"$\",\"$Ld\",null,{\"promise\":\"$@e\"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$Lf\",null,{\"children\":\"$L10\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$L11\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$12\",null,{\"fallback\":null,\"children\":\"$L13\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$14\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:{}\na:\"$0:f:0:1:2:children:2:children:2:children:1:props:children:0:props:params\"\n"])</script><script>self.__next_f.push([1,"10:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\nc:null\n"])</script><script>self.__next_f.push([1,"e:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Mink — Command Center\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Real-time dashboard for Mink token intelligence\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"13:\"$e:metadata\"\n"])</script></body></html>
|
package/dashboard/out/wiki.txt
CHANGED
|
@@ -15,7 +15,7 @@ f:I[4431,[],"ViewportBoundary"]
|
|
|
15
15
|
:HL["/_next/static/media/bb3ef058b751a6ad-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
16
16
|
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
17
17
|
:HL["/_next/static/css/5e43917ea49c5b3e.css","style"]
|
|
18
|
-
0:{"P":null,"b":"
|
|
18
|
+
0:{"P":null,"b":"_mawjPSnSIjvy8e5jxeZJ","p":"","c":["","wiki"],"i":false,"f":[[["",{"children":["(panels)",{"children":["wiki",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/5e43917ea49c5b3e.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_3c557b","data-theme":"dark","data-accent":"green","data-density":"compact","data-live":"on","data-daemon":"offline","children":["$","$L2",null,{"attribute":"data-theme","value":{"light":"light","dark":"dark"},"defaultTheme":"dark","enableSystem":true,"storageKey":"mink-theme","children":[["$","$L3",null,{}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["(panels)",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["wiki",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","searchParams":{},"params":{},"promises":["$@9","$@a"]}],null,["$","$Lb",null,{"children":["$Lc",["$","$Ld",null,{"promise":"$@e"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lf",null,{"children":"$L10"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$L11",null,{"children":["$","div",null,{"hidden":true,"children":["$","$12",null,{"fallback":null,"children":"$L13"}]}]}]]}],false]],"m":"$undefined","G":["$14",[]],"s":false,"S":true}
|
|
19
19
|
9:{}
|
|
20
20
|
a:"$0:f:0:1:2:children:2:children:2:children:1:props:children:0:props:params"
|
|
21
21
|
10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
package/dist/cli.bun.js
CHANGED
|
@@ -5589,6 +5589,7 @@ var init_seed = __esm(() => {
|
|
|
5589
5589
|
var exports_init = {};
|
|
5590
5590
|
__export(exports_init, {
|
|
5591
5591
|
writeMinkRule: () => writeMinkRule,
|
|
5592
|
+
resolveCliPathFrom: () => resolveCliPathFrom,
|
|
5592
5593
|
resolveCliPath: () => resolveCliPath,
|
|
5593
5594
|
mergeHooksIntoSettings: () => mergeHooksIntoSettings,
|
|
5594
5595
|
init: () => init,
|
|
@@ -5606,17 +5607,19 @@ function detectRuntime() {
|
|
|
5606
5607
|
return "node";
|
|
5607
5608
|
}
|
|
5608
5609
|
}
|
|
5609
|
-
function
|
|
5610
|
-
const selfPath = new URL(import.meta.url).pathname;
|
|
5610
|
+
function resolveCliPathFrom(selfPath) {
|
|
5611
5611
|
const selfDir = dirname7(selfPath);
|
|
5612
|
-
if (selfPath.endsWith("dist/cli.js")) {
|
|
5613
|
-
return
|
|
5612
|
+
if (selfPath.endsWith("dist/cli.js") || selfPath.endsWith("dist/cli.bun.js") || selfPath.endsWith("dist/cli.node.js")) {
|
|
5613
|
+
return join18(selfDir, "cli.js");
|
|
5614
5614
|
}
|
|
5615
|
-
const
|
|
5616
|
-
const
|
|
5617
|
-
if (existsSync19(
|
|
5618
|
-
return
|
|
5619
|
-
return
|
|
5615
|
+
const packageRoot = resolve2(selfDir, "..", "..");
|
|
5616
|
+
const distShim = join18(packageRoot, "dist", "cli.js");
|
|
5617
|
+
if (existsSync19(distShim))
|
|
5618
|
+
return distShim;
|
|
5619
|
+
return join18(packageRoot, "src", "cli.ts");
|
|
5620
|
+
}
|
|
5621
|
+
function resolveCliPath() {
|
|
5622
|
+
return resolveCliPathFrom(new URL(import.meta.url).pathname);
|
|
5620
5623
|
}
|
|
5621
5624
|
function buildHooksConfig(cliPath) {
|
|
5622
5625
|
const isTsSource = cliPath.endsWith(".ts");
|
|
@@ -6528,16 +6531,6 @@ function checkJsonFile(name, filePath, validator) {
|
|
|
6528
6531
|
return { name, path: filePath, status: "corrupt" };
|
|
6529
6532
|
return { name, path: filePath, status: "ok" };
|
|
6530
6533
|
}
|
|
6531
|
-
function checkTextFile(name, filePath) {
|
|
6532
|
-
if (!existsSync23(filePath))
|
|
6533
|
-
return { name, path: filePath, status: "missing" };
|
|
6534
|
-
try {
|
|
6535
|
-
readFileSync17(filePath, "utf-8");
|
|
6536
|
-
return { name, path: filePath, status: "ok" };
|
|
6537
|
-
} catch {
|
|
6538
|
-
return { name, path: filePath, status: "corrupt" };
|
|
6539
|
-
}
|
|
6540
|
-
}
|
|
6541
6534
|
function checkDbFile(name, filePath) {
|
|
6542
6535
|
if (!existsSync23(filePath))
|
|
6543
6536
|
return { name, path: filePath, status: "missing" };
|
|
@@ -6551,6 +6544,33 @@ function checkDbFile(name, filePath) {
|
|
|
6551
6544
|
return { name, path: filePath, status: "corrupt" };
|
|
6552
6545
|
}
|
|
6553
6546
|
}
|
|
6547
|
+
function checkShardedText(name, candidatePaths) {
|
|
6548
|
+
const canonical = candidatePaths[0];
|
|
6549
|
+
for (const p of candidatePaths) {
|
|
6550
|
+
if (!existsSync23(p))
|
|
6551
|
+
continue;
|
|
6552
|
+
try {
|
|
6553
|
+
if (statSync9(p).size === 0)
|
|
6554
|
+
continue;
|
|
6555
|
+
readFileSync17(p, "utf-8");
|
|
6556
|
+
return { name, path: p, status: "ok" };
|
|
6557
|
+
} catch {
|
|
6558
|
+
return { name, path: p, status: "corrupt" };
|
|
6559
|
+
}
|
|
6560
|
+
}
|
|
6561
|
+
return { name, path: canonical, status: "missing" };
|
|
6562
|
+
}
|
|
6563
|
+
function actionLogCandidates(cwd) {
|
|
6564
|
+
const dir = projectDir(cwd);
|
|
6565
|
+
return [
|
|
6566
|
+
actionLogPath(cwd),
|
|
6567
|
+
...listDeviceShardsAt(dir).map((id) => shardPath(dir, id, "action-log.md"))
|
|
6568
|
+
];
|
|
6569
|
+
}
|
|
6570
|
+
function learningMemoryCandidates(cwd) {
|
|
6571
|
+
const dir = projectDir(cwd);
|
|
6572
|
+
return [learningMemoryPath(cwd), ...listLearningMemorySidecarPathsAt(dir)];
|
|
6573
|
+
}
|
|
6554
6574
|
function status(cwd) {
|
|
6555
6575
|
console.log("[mink] project status");
|
|
6556
6576
|
console.log();
|
|
@@ -6561,8 +6581,8 @@ function status(cwd) {
|
|
|
6561
6581
|
checkJsonFile("session.json", sessionPath(cwd)),
|
|
6562
6582
|
checkDbFile("mink.db", projectDbPath(cwd)),
|
|
6563
6583
|
checkJsonFile("config.json", configPath(cwd)),
|
|
6564
|
-
|
|
6565
|
-
|
|
6584
|
+
checkShardedText("learning-memory.md", learningMemoryCandidates(cwd)),
|
|
6585
|
+
checkShardedText("action-log.md", actionLogCandidates(cwd))
|
|
6566
6586
|
];
|
|
6567
6587
|
console.log(" State files:");
|
|
6568
6588
|
for (const check of checks) {
|
|
@@ -8775,7 +8795,7 @@ function checkJsonFile2(name, filePath, validator) {
|
|
|
8775
8795
|
return { name, status: "corrupt" };
|
|
8776
8796
|
return { name, status: "ok" };
|
|
8777
8797
|
}
|
|
8778
|
-
function
|
|
8798
|
+
function checkTextFile(name, filePath) {
|
|
8779
8799
|
if (!existsSync27(filePath))
|
|
8780
8800
|
return { name, status: "missing" };
|
|
8781
8801
|
try {
|
|
@@ -8824,8 +8844,8 @@ function loadOverview(cwd) {
|
|
|
8824
8844
|
checkJsonFile2("session.json", sessionPath(cwd)),
|
|
8825
8845
|
checkDbFile2("mink.db", projectDbPath(cwd)),
|
|
8826
8846
|
checkJsonFile2("config.json", configPath(cwd)),
|
|
8827
|
-
|
|
8828
|
-
|
|
8847
|
+
checkTextFile("learning-memory.md", learningMemoryPath(cwd)),
|
|
8848
|
+
checkTextFile("action-log.md", actionLogPath(cwd)),
|
|
8829
8849
|
checkJsonFile2("scheduler-manifest.json", schedulerManifestPath(cwd))
|
|
8830
8850
|
];
|
|
8831
8851
|
return { project, daemon, summary, stateFiles };
|
package/dist/cli.node.js
CHANGED
|
@@ -5759,6 +5759,7 @@ var init_seed = __esm(() => {
|
|
|
5759
5759
|
var exports_init = {};
|
|
5760
5760
|
__export(exports_init, {
|
|
5761
5761
|
writeMinkRule: () => writeMinkRule,
|
|
5762
|
+
resolveCliPathFrom: () => resolveCliPathFrom,
|
|
5762
5763
|
resolveCliPath: () => resolveCliPath,
|
|
5763
5764
|
mergeHooksIntoSettings: () => mergeHooksIntoSettings,
|
|
5764
5765
|
init: () => init,
|
|
@@ -5776,17 +5777,19 @@ function detectRuntime() {
|
|
|
5776
5777
|
return "node";
|
|
5777
5778
|
}
|
|
5778
5779
|
}
|
|
5779
|
-
function
|
|
5780
|
-
const selfPath = new URL(import.meta.url).pathname;
|
|
5780
|
+
function resolveCliPathFrom(selfPath) {
|
|
5781
5781
|
const selfDir = dirname7(selfPath);
|
|
5782
|
-
if (selfPath.endsWith("dist/cli.js")) {
|
|
5783
|
-
return
|
|
5782
|
+
if (selfPath.endsWith("dist/cli.js") || selfPath.endsWith("dist/cli.bun.js") || selfPath.endsWith("dist/cli.node.js")) {
|
|
5783
|
+
return join19(selfDir, "cli.js");
|
|
5784
5784
|
}
|
|
5785
|
-
const
|
|
5786
|
-
const
|
|
5787
|
-
if (existsSync20(
|
|
5788
|
-
return
|
|
5789
|
-
return
|
|
5785
|
+
const packageRoot = resolve2(selfDir, "..", "..");
|
|
5786
|
+
const distShim = join19(packageRoot, "dist", "cli.js");
|
|
5787
|
+
if (existsSync20(distShim))
|
|
5788
|
+
return distShim;
|
|
5789
|
+
return join19(packageRoot, "src", "cli.ts");
|
|
5790
|
+
}
|
|
5791
|
+
function resolveCliPath() {
|
|
5792
|
+
return resolveCliPathFrom(new URL(import.meta.url).pathname);
|
|
5790
5793
|
}
|
|
5791
5794
|
function buildHooksConfig(cliPath) {
|
|
5792
5795
|
const isTsSource = cliPath.endsWith(".ts");
|
|
@@ -6698,16 +6701,6 @@ function checkJsonFile(name, filePath, validator) {
|
|
|
6698
6701
|
return { name, path: filePath, status: "corrupt" };
|
|
6699
6702
|
return { name, path: filePath, status: "ok" };
|
|
6700
6703
|
}
|
|
6701
|
-
function checkTextFile(name, filePath) {
|
|
6702
|
-
if (!existsSync24(filePath))
|
|
6703
|
-
return { name, path: filePath, status: "missing" };
|
|
6704
|
-
try {
|
|
6705
|
-
readFileSync17(filePath, "utf-8");
|
|
6706
|
-
return { name, path: filePath, status: "ok" };
|
|
6707
|
-
} catch {
|
|
6708
|
-
return { name, path: filePath, status: "corrupt" };
|
|
6709
|
-
}
|
|
6710
|
-
}
|
|
6711
6704
|
function checkDbFile(name, filePath) {
|
|
6712
6705
|
if (!existsSync24(filePath))
|
|
6713
6706
|
return { name, path: filePath, status: "missing" };
|
|
@@ -6721,6 +6714,33 @@ function checkDbFile(name, filePath) {
|
|
|
6721
6714
|
return { name, path: filePath, status: "corrupt" };
|
|
6722
6715
|
}
|
|
6723
6716
|
}
|
|
6717
|
+
function checkShardedText(name, candidatePaths) {
|
|
6718
|
+
const canonical = candidatePaths[0];
|
|
6719
|
+
for (const p of candidatePaths) {
|
|
6720
|
+
if (!existsSync24(p))
|
|
6721
|
+
continue;
|
|
6722
|
+
try {
|
|
6723
|
+
if (statSync9(p).size === 0)
|
|
6724
|
+
continue;
|
|
6725
|
+
readFileSync17(p, "utf-8");
|
|
6726
|
+
return { name, path: p, status: "ok" };
|
|
6727
|
+
} catch {
|
|
6728
|
+
return { name, path: p, status: "corrupt" };
|
|
6729
|
+
}
|
|
6730
|
+
}
|
|
6731
|
+
return { name, path: canonical, status: "missing" };
|
|
6732
|
+
}
|
|
6733
|
+
function actionLogCandidates(cwd) {
|
|
6734
|
+
const dir = projectDir(cwd);
|
|
6735
|
+
return [
|
|
6736
|
+
actionLogPath(cwd),
|
|
6737
|
+
...listDeviceShardsAt(dir).map((id) => shardPath(dir, id, "action-log.md"))
|
|
6738
|
+
];
|
|
6739
|
+
}
|
|
6740
|
+
function learningMemoryCandidates(cwd) {
|
|
6741
|
+
const dir = projectDir(cwd);
|
|
6742
|
+
return [learningMemoryPath(cwd), ...listLearningMemorySidecarPathsAt(dir)];
|
|
6743
|
+
}
|
|
6724
6744
|
function status(cwd) {
|
|
6725
6745
|
console.log("[mink] project status");
|
|
6726
6746
|
console.log();
|
|
@@ -6731,8 +6751,8 @@ function status(cwd) {
|
|
|
6731
6751
|
checkJsonFile("session.json", sessionPath(cwd)),
|
|
6732
6752
|
checkDbFile("mink.db", projectDbPath(cwd)),
|
|
6733
6753
|
checkJsonFile("config.json", configPath(cwd)),
|
|
6734
|
-
|
|
6735
|
-
|
|
6754
|
+
checkShardedText("learning-memory.md", learningMemoryCandidates(cwd)),
|
|
6755
|
+
checkShardedText("action-log.md", actionLogCandidates(cwd))
|
|
6736
6756
|
];
|
|
6737
6757
|
console.log(" State files:");
|
|
6738
6758
|
for (const check of checks) {
|
|
@@ -9166,7 +9186,7 @@ function checkJsonFile2(name, filePath, validator) {
|
|
|
9166
9186
|
return { name, status: "corrupt" };
|
|
9167
9187
|
return { name, status: "ok" };
|
|
9168
9188
|
}
|
|
9169
|
-
function
|
|
9189
|
+
function checkTextFile(name, filePath) {
|
|
9170
9190
|
if (!existsSync29(filePath))
|
|
9171
9191
|
return { name, status: "missing" };
|
|
9172
9192
|
try {
|
|
@@ -9215,8 +9235,8 @@ function loadOverview(cwd) {
|
|
|
9215
9235
|
checkJsonFile2("session.json", sessionPath(cwd)),
|
|
9216
9236
|
checkDbFile2("mink.db", projectDbPath(cwd)),
|
|
9217
9237
|
checkJsonFile2("config.json", configPath(cwd)),
|
|
9218
|
-
|
|
9219
|
-
|
|
9238
|
+
checkTextFile("learning-memory.md", learningMemoryPath(cwd)),
|
|
9239
|
+
checkTextFile("action-log.md", actionLogPath(cwd)),
|
|
9220
9240
|
checkJsonFile2("scheduler-manifest.json", schedulerManifestPath(cwd))
|
|
9221
9241
|
];
|
|
9222
9242
|
return { project, daemon, summary, stateFiles };
|
|
@@ -10598,17 +10618,19 @@ var init_dashboard = __esm(() => {
|
|
|
10598
10618
|
// src/commands/init.ts
|
|
10599
10619
|
import { mkdirSync as mkdirSync14, existsSync as existsSync32 } from "fs";
|
|
10600
10620
|
import { resolve as resolve6, dirname as dirname13, basename as basename8, join as join28 } from "path";
|
|
10601
|
-
function
|
|
10602
|
-
const selfPath = new URL(import.meta.url).pathname;
|
|
10621
|
+
function resolveCliPathFrom2(selfPath) {
|
|
10603
10622
|
const selfDir = dirname13(selfPath);
|
|
10604
|
-
if (selfPath.endsWith("dist/cli.js")) {
|
|
10605
|
-
return
|
|
10606
|
-
}
|
|
10607
|
-
const
|
|
10608
|
-
const
|
|
10609
|
-
if (existsSync32(
|
|
10610
|
-
return
|
|
10611
|
-
return
|
|
10623
|
+
if (selfPath.endsWith("dist/cli.js") || selfPath.endsWith("dist/cli.bun.js") || selfPath.endsWith("dist/cli.node.js")) {
|
|
10624
|
+
return join28(selfDir, "cli.js");
|
|
10625
|
+
}
|
|
10626
|
+
const packageRoot = resolve6(selfDir, "..", "..");
|
|
10627
|
+
const distShim = join28(packageRoot, "dist", "cli.js");
|
|
10628
|
+
if (existsSync32(distShim))
|
|
10629
|
+
return distShim;
|
|
10630
|
+
return join28(packageRoot, "src", "cli.ts");
|
|
10631
|
+
}
|
|
10632
|
+
function resolveCliPath2() {
|
|
10633
|
+
return resolveCliPathFrom2(new URL(import.meta.url).pathname);
|
|
10612
10634
|
}
|
|
10613
10635
|
function buildHooksConfig2(cliPath) {
|
|
10614
10636
|
const isTsSource = cliPath.endsWith(".ts");
|
package/package.json
CHANGED
package/src/commands/init.ts
CHANGED
|
@@ -34,25 +34,41 @@ export function detectRuntime(): "bun" | "node" {
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
// Exported for unit testing — accepts the caller's effective import.meta.url
|
|
38
|
+
// path so test cases can simulate every runtime form without juggling
|
|
39
|
+
// real filesystem layouts.
|
|
40
|
+
export function resolveCliPathFrom(selfPath: string): string {
|
|
41
|
+
// After `bun build`, import.meta.url for any bundled module points to
|
|
42
|
+
// whichever bundle was loaded:
|
|
43
|
+
// - dist/cli.js (legacy single-file build)
|
|
44
|
+
// - dist/cli.bun.js (current Bun bundle)
|
|
45
|
+
// - dist/cli.node.js (current Node bundle)
|
|
46
|
+
// In source-dev mode it points to src/commands/init.ts. Mapping any of the
|
|
47
|
+
// bundled forms to dist/cli.js (the bin shim) keeps buildHooksConfig on the
|
|
48
|
+
// portable `mink <subcmd>` path; only the source-dev fallback emits a
|
|
49
|
+
// `bun run <abs>/cli.ts` command.
|
|
41
50
|
const selfDir = dirname(selfPath);
|
|
42
51
|
|
|
43
|
-
//
|
|
44
|
-
|
|
45
|
-
|
|
52
|
+
// Running from any of the dist bundles → use the bin shim path. That file
|
|
53
|
+
// ships as the npm `bin` entry, so it always sits next to the bundles.
|
|
54
|
+
if (
|
|
55
|
+
selfPath.endsWith("dist/cli.js") ||
|
|
56
|
+
selfPath.endsWith("dist/cli.bun.js") ||
|
|
57
|
+
selfPath.endsWith("dist/cli.node.js")
|
|
58
|
+
) {
|
|
59
|
+
return join(selfDir, "cli.js");
|
|
46
60
|
}
|
|
47
61
|
|
|
48
|
-
//
|
|
49
|
-
//
|
|
50
|
-
const
|
|
51
|
-
const
|
|
52
|
-
if (existsSync(
|
|
62
|
+
// Source-dev: init.ts lives at src/commands/init.ts. Walk up to the package
|
|
63
|
+
// root and prefer dist/cli.js if a build is present, otherwise the source.
|
|
64
|
+
const packageRoot = resolve(selfDir, "..", "..");
|
|
65
|
+
const distShim = join(packageRoot, "dist", "cli.js");
|
|
66
|
+
if (existsSync(distShim)) return distShim;
|
|
67
|
+
return join(packageRoot, "src", "cli.ts");
|
|
68
|
+
}
|
|
53
69
|
|
|
54
|
-
|
|
55
|
-
return
|
|
70
|
+
export function resolveCliPath(): string {
|
|
71
|
+
return resolveCliPathFrom(new URL(import.meta.url).pathname);
|
|
56
72
|
}
|
|
57
73
|
|
|
58
74
|
export function buildHooksConfig(cliPath: string): HooksConfig {
|
package/src/commands/status.ts
CHANGED
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
configPath,
|
|
6
6
|
learningMemoryPath,
|
|
7
7
|
actionLogPath,
|
|
8
|
+
projectDir,
|
|
8
9
|
} from "../core/paths";
|
|
9
10
|
import { safeReadJson } from "../core/fs-utils";
|
|
10
11
|
import { FileIndexRepo } from "../repositories/file-index-repo";
|
|
@@ -13,6 +14,9 @@ import {
|
|
|
13
14
|
aggregateTokenLedger,
|
|
14
15
|
aggregateBugMemory,
|
|
15
16
|
aggregateLearningMemory,
|
|
17
|
+
listDeviceShardsAt,
|
|
18
|
+
listLearningMemorySidecarPathsAt,
|
|
19
|
+
shardPath,
|
|
16
20
|
} from "../core/state-aggregator";
|
|
17
21
|
import { loadCounters } from "../core/state-counters";
|
|
18
22
|
import { getDaemonStatus } from "../core/daemon";
|
|
@@ -32,16 +36,6 @@ function checkJsonFile(name: string, filePath: string, validator?: (v: unknown)
|
|
|
32
36
|
return { name, path: filePath, status: "ok" };
|
|
33
37
|
}
|
|
34
38
|
|
|
35
|
-
function checkTextFile(name: string, filePath: string): FileCheck {
|
|
36
|
-
if (!existsSync(filePath)) return { name, path: filePath, status: "missing" };
|
|
37
|
-
try {
|
|
38
|
-
readFileSync(filePath, "utf-8");
|
|
39
|
-
return { name, path: filePath, status: "ok" };
|
|
40
|
-
} catch {
|
|
41
|
-
return { name, path: filePath, status: "corrupt" };
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
39
|
function checkDbFile(name: string, filePath: string): FileCheck {
|
|
46
40
|
if (!existsSync(filePath)) return { name, path: filePath, status: "missing" };
|
|
47
41
|
try {
|
|
@@ -55,6 +49,37 @@ function checkDbFile(name: string, filePath: string): FileCheck {
|
|
|
55
49
|
}
|
|
56
50
|
}
|
|
57
51
|
|
|
52
|
+
// Reports "ok" when canonical OR any device shard / sidecar exists with content.
|
|
53
|
+
// action-log and learning-memory live in per-device shards; checking only the
|
|
54
|
+
// canonical path made initialized projects look empty.
|
|
55
|
+
function checkShardedText(name: string, candidatePaths: string[]): FileCheck {
|
|
56
|
+
const canonical = candidatePaths[0];
|
|
57
|
+
for (const p of candidatePaths) {
|
|
58
|
+
if (!existsSync(p)) continue;
|
|
59
|
+
try {
|
|
60
|
+
if (statSync(p).size === 0) continue;
|
|
61
|
+
readFileSync(p, "utf-8");
|
|
62
|
+
return { name, path: p, status: "ok" };
|
|
63
|
+
} catch {
|
|
64
|
+
return { name, path: p, status: "corrupt" };
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return { name, path: canonical, status: "missing" };
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function actionLogCandidates(cwd: string): string[] {
|
|
71
|
+
const dir = projectDir(cwd);
|
|
72
|
+
return [
|
|
73
|
+
actionLogPath(cwd),
|
|
74
|
+
...listDeviceShardsAt(dir).map((id) => shardPath(dir, id, "action-log.md")),
|
|
75
|
+
];
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function learningMemoryCandidates(cwd: string): string[] {
|
|
79
|
+
const dir = projectDir(cwd);
|
|
80
|
+
return [learningMemoryPath(cwd), ...listLearningMemorySidecarPathsAt(dir)];
|
|
81
|
+
}
|
|
82
|
+
|
|
58
83
|
export function status(cwd: string): void {
|
|
59
84
|
console.log("[mink] project status");
|
|
60
85
|
console.log();
|
|
@@ -77,8 +102,8 @@ export function status(cwd: string): void {
|
|
|
77
102
|
checkJsonFile("session.json", sessionPath(cwd)),
|
|
78
103
|
checkDbFile("mink.db", projectDbPath(cwd)),
|
|
79
104
|
checkJsonFile("config.json", configPath(cwd)),
|
|
80
|
-
|
|
81
|
-
|
|
105
|
+
checkShardedText("learning-memory.md", learningMemoryCandidates(cwd)),
|
|
106
|
+
checkShardedText("action-log.md", actionLogCandidates(cwd)),
|
|
82
107
|
];
|
|
83
108
|
|
|
84
109
|
console.log(" State files:");
|