@drewpayment/mink 0.12.0-beta.2 → 0.12.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dashboard/out/404.html +1 -1
  2. package/dashboard/out/action-log.html +1 -1
  3. package/dashboard/out/action-log.txt +1 -1
  4. package/dashboard/out/activity.html +1 -1
  5. package/dashboard/out/activity.txt +1 -1
  6. package/dashboard/out/bugs.html +1 -1
  7. package/dashboard/out/bugs.txt +1 -1
  8. package/dashboard/out/capture.html +1 -1
  9. package/dashboard/out/capture.txt +1 -1
  10. package/dashboard/out/config.html +1 -1
  11. package/dashboard/out/config.txt +1 -1
  12. package/dashboard/out/daemon.html +1 -1
  13. package/dashboard/out/daemon.txt +1 -1
  14. package/dashboard/out/design.html +1 -1
  15. package/dashboard/out/design.txt +1 -1
  16. package/dashboard/out/discord.html +1 -1
  17. package/dashboard/out/discord.txt +1 -1
  18. package/dashboard/out/file-index.html +1 -1
  19. package/dashboard/out/file-index.txt +1 -1
  20. package/dashboard/out/index.html +1 -1
  21. package/dashboard/out/index.txt +1 -1
  22. package/dashboard/out/insights.html +1 -1
  23. package/dashboard/out/insights.txt +1 -1
  24. package/dashboard/out/learning.html +1 -1
  25. package/dashboard/out/learning.txt +1 -1
  26. package/dashboard/out/overview.html +1 -1
  27. package/dashboard/out/overview.txt +1 -1
  28. package/dashboard/out/scheduler.html +1 -1
  29. package/dashboard/out/scheduler.txt +1 -1
  30. package/dashboard/out/sync.html +1 -1
  31. package/dashboard/out/sync.txt +1 -1
  32. package/dashboard/out/tokens.html +1 -1
  33. package/dashboard/out/tokens.txt +1 -1
  34. package/dashboard/out/waste.html +1 -1
  35. package/dashboard/out/waste.txt +1 -1
  36. package/dashboard/out/wiki.html +1 -1
  37. package/dashboard/out/wiki.txt +1 -1
  38. package/dist/cli.bun.js +33 -5
  39. package/dist/cli.node.js +33 -5
  40. package/package.json +1 -1
  41. package/src/cli.ts +10 -2
  42. package/src/commands/dashboard.ts +49 -3
  43. /package/dashboard/out/_next/static/{7bx94K8a7-O53mwi7UoEu → i9-16JmUxsS4K70sSYdYA}/_buildManifest.js +0 -0
  44. /package/dashboard/out/_next/static/{7bx94K8a7-O53mwi7UoEu → i9-16JmUxsS4K70sSYdYA}/_ssgManifest.js +0 -0
@@ -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":"7bx94K8a7-O53mwi7UoEu","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}
18
+ 0:{"P":null,"b":"i9-16JmUxsS4K70sSYdYA","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"}]]
@@ -1 +1 @@
1
- <!DOCTYPE html><!--7bx94K8a7_O53mwi7UoEu--><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 &amp; 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 &amp; 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\":\"7bx94K8a7-O53mwi7UoEu\",\"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><!--i9_16JmUxsS4K70sSYdYA--><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 &amp; 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 &amp; 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\":\"i9-16JmUxsS4K70sSYdYA\",\"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>
@@ -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":"7bx94K8a7-O53mwi7UoEu","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}
18
+ 0:{"P":null,"b":"i9-16JmUxsS4K70sSYdYA","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
@@ -10106,25 +10106,45 @@ var init_dashboard_server = __esm(() => {
10106
10106
  // src/commands/dashboard.ts
10107
10107
  var exports_dashboard = {};
10108
10108
  __export(exports_dashboard, {
10109
+ resolveStartupCwd: () => resolveStartupCwd,
10109
10110
  dashboard: () => dashboard
10110
10111
  });
10111
10112
  import { existsSync as existsSync29 } from "fs";
10113
+ function resolveStartupCwd(cwd, registered = listRegisteredProjects()) {
10114
+ if (existsSync29(projectDir(cwd))) {
10115
+ return { kind: "active", cwd };
10116
+ }
10117
+ if (registered.length === 0) {
10118
+ return { kind: "none" };
10119
+ }
10120
+ const fallback = [...registered].sort((a, b) => a.name.localeCompare(b.name))[0];
10121
+ return { kind: "fallback", cwd: fallback.cwd, project: fallback };
10122
+ }
10112
10123
  async function dashboard(cwd, args) {
10113
- if (!existsSync29(projectDir(cwd))) {
10114
- console.error("[mink] project not initialized. Run: mink init");
10124
+ const resolution = resolveStartupCwd(cwd);
10125
+ if (resolution.kind === "none") {
10126
+ console.error("[mink] no mink projects found. Run `mink init` in a project first.");
10115
10127
  process.exit(1);
10116
10128
  }
10129
+ if (resolution.kind === "fallback") {
10130
+ console.log(`[mink] not in a mink project \u2014 starting dashboard with "${resolution.project.name}". ` + "Use the in-app project switcher to change projects.");
10131
+ }
10132
+ const startupCwd = resolution.cwd;
10117
10133
  const portArg = args.find((a) => a.startsWith("--port="));
10118
10134
  const port = portArg ? parseInt(portArg.split("=")[1], 10) : 4040;
10119
10135
  const noOpen = args.includes("--no-open");
10120
10136
  const { startDashboardServer: startDashboardServer2 } = await Promise.resolve().then(() => (init_dashboard_server(), exports_dashboard_server));
10121
- const { url } = await startDashboardServer2(cwd, { port, open: !noOpen });
10137
+ const { url } = await startDashboardServer2(startupCwd, {
10138
+ port,
10139
+ open: !noOpen
10140
+ });
10122
10141
  console.log(`[mink] dashboard running at ${url}`);
10123
10142
  console.log("[mink] press Ctrl+C to stop");
10124
10143
  await new Promise(() => {});
10125
10144
  }
10126
10145
  var init_dashboard = __esm(() => {
10127
10146
  init_paths();
10147
+ init_project_registry();
10128
10148
  });
10129
10149
 
10130
10150
  // src/core/daemon-service.ts
@@ -90536,8 +90556,9 @@ switch (command2) {
90536
90556
  case "version":
90537
90557
  case "--version":
90538
90558
  case "-v": {
90539
- const { resolve: resolve17, dirname: dirname18 } = await import("path");
90540
- const cliPath = resolve17(dirname18(new URL(import.meta.url).pathname));
90559
+ const { resolve: resolve17, dirname: dirname18, basename: basename9 } = await import("path");
90560
+ const bundlePath = new URL(import.meta.url).pathname;
90561
+ const cliPath = resolve17(dirname18(bundlePath));
90541
90562
  const { readFileSync: readFileSync31 } = await import("fs");
90542
90563
  try {
90543
90564
  const pkg = JSON.parse(readFileSync31(resolve17(cliPath, "../package.json"), "utf-8"));
@@ -90546,6 +90567,13 @@ switch (command2) {
90546
90567
  console.log("mink (unknown version)");
90547
90568
  }
90548
90569
  console.log(` location: ${cliPath}`);
90570
+ const bunVersion = globalThis.Bun?.version;
90571
+ if (bunVersion) {
90572
+ console.log(` runtime: bun ${bunVersion}`);
90573
+ } else {
90574
+ console.log(` runtime: node ${process.versions.node}`);
90575
+ }
90576
+ console.log(` bundle: ${basename9(bundlePath)}`);
90549
90577
  break;
90550
90578
  }
90551
90579
  case "help":
package/dist/cli.node.js CHANGED
@@ -10497,25 +10497,45 @@ var init_dashboard_server = __esm(() => {
10497
10497
  // src/commands/dashboard.ts
10498
10498
  var exports_dashboard = {};
10499
10499
  __export(exports_dashboard, {
10500
+ resolveStartupCwd: () => resolveStartupCwd,
10500
10501
  dashboard: () => dashboard
10501
10502
  });
10502
10503
  import { existsSync as existsSync31 } from "fs";
10504
+ function resolveStartupCwd(cwd, registered = listRegisteredProjects()) {
10505
+ if (existsSync31(projectDir(cwd))) {
10506
+ return { kind: "active", cwd };
10507
+ }
10508
+ if (registered.length === 0) {
10509
+ return { kind: "none" };
10510
+ }
10511
+ const fallback = [...registered].sort((a, b) => a.name.localeCompare(b.name))[0];
10512
+ return { kind: "fallback", cwd: fallback.cwd, project: fallback };
10513
+ }
10503
10514
  async function dashboard(cwd, args) {
10504
- if (!existsSync31(projectDir(cwd))) {
10505
- console.error("[mink] project not initialized. Run: mink init");
10515
+ const resolution = resolveStartupCwd(cwd);
10516
+ if (resolution.kind === "none") {
10517
+ console.error("[mink] no mink projects found. Run `mink init` in a project first.");
10506
10518
  process.exit(1);
10507
10519
  }
10520
+ if (resolution.kind === "fallback") {
10521
+ console.log(`[mink] not in a mink project — starting dashboard with "${resolution.project.name}". ` + "Use the in-app project switcher to change projects.");
10522
+ }
10523
+ const startupCwd = resolution.cwd;
10508
10524
  const portArg = args.find((a) => a.startsWith("--port="));
10509
10525
  const port = portArg ? parseInt(portArg.split("=")[1], 10) : 4040;
10510
10526
  const noOpen = args.includes("--no-open");
10511
10527
  const { startDashboardServer: startDashboardServer2 } = await Promise.resolve().then(() => (init_dashboard_server(), exports_dashboard_server));
10512
- const { url } = await startDashboardServer2(cwd, { port, open: !noOpen });
10528
+ const { url } = await startDashboardServer2(startupCwd, {
10529
+ port,
10530
+ open: !noOpen
10531
+ });
10513
10532
  console.log(`[mink] dashboard running at ${url}`);
10514
10533
  console.log("[mink] press Ctrl+C to stop");
10515
10534
  await new Promise(() => {});
10516
10535
  }
10517
10536
  var init_dashboard = __esm(() => {
10518
10537
  init_paths();
10538
+ init_project_registry();
10519
10539
  });
10520
10540
 
10521
10541
  // src/commands/init.ts
@@ -93866,8 +93886,9 @@ switch (command2) {
93866
93886
  case "version":
93867
93887
  case "--version":
93868
93888
  case "-v": {
93869
- const { resolve: resolve18, dirname: dirname20 } = await import("path");
93870
- const cliPath = resolve18(dirname20(new URL(import.meta.url).pathname));
93889
+ const { resolve: resolve18, dirname: dirname20, basename: basename10 } = await import("path");
93890
+ const bundlePath = new URL(import.meta.url).pathname;
93891
+ const cliPath = resolve18(dirname20(bundlePath));
93871
93892
  const { readFileSync: readFileSync32 } = await import("fs");
93872
93893
  try {
93873
93894
  const pkg = JSON.parse(readFileSync32(resolve18(cliPath, "../package.json"), "utf-8"));
@@ -93876,6 +93897,13 @@ switch (command2) {
93876
93897
  console.log("mink (unknown version)");
93877
93898
  }
93878
93899
  console.log(` location: ${cliPath}`);
93900
+ const bunVersion = globalThis.Bun?.version;
93901
+ if (bunVersion) {
93902
+ console.log(` runtime: bun ${bunVersion}`);
93903
+ } else {
93904
+ console.log(` runtime: node ${process.versions.node}`);
93905
+ }
93906
+ console.log(` bundle: ${basename10(bundlePath)}`);
93879
93907
  break;
93880
93908
  }
93881
93909
  case "help":
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drewpayment/mink",
3
- "version": "0.12.0-beta.2",
3
+ "version": "0.12.0-beta.4",
4
4
  "description": "A hidden presence that moves alongside the developer — token efficiency and cross-project wiki for AI coding assistants",
5
5
  "type": "module",
6
6
  "bin": {
package/src/cli.ts CHANGED
@@ -190,8 +190,9 @@ switch (command) {
190
190
  case "version":
191
191
  case "--version":
192
192
  case "-v": {
193
- const { resolve, dirname } = await import("path");
194
- const cliPath = resolve(dirname(new URL(import.meta.url).pathname));
193
+ const { resolve, dirname, basename } = await import("path");
194
+ const bundlePath = new URL(import.meta.url).pathname;
195
+ const cliPath = resolve(dirname(bundlePath));
195
196
  const { readFileSync } = await import("fs");
196
197
  try {
197
198
  const pkg = JSON.parse(
@@ -202,6 +203,13 @@ switch (command) {
202
203
  console.log("mink (unknown version)");
203
204
  }
204
205
  console.log(` location: ${cliPath}`);
206
+ const bunVersion = (globalThis as { Bun?: { version: string } }).Bun?.version;
207
+ if (bunVersion) {
208
+ console.log(` runtime: bun ${bunVersion}`);
209
+ } else {
210
+ console.log(` runtime: node ${process.versions.node}`);
211
+ }
212
+ console.log(` bundle: ${basename(bundlePath)}`);
205
213
  break;
206
214
  }
207
215
 
@@ -1,18 +1,64 @@
1
1
  import { existsSync } from "fs";
2
2
  import { projectDir } from "../core/paths";
3
+ import {
4
+ listRegisteredProjects,
5
+ type RegisteredProject,
6
+ } from "../core/project-registry";
7
+
8
+ export type StartupResolution =
9
+ | { kind: "active"; cwd: string }
10
+ | { kind: "fallback"; cwd: string; project: RegisteredProject }
11
+ | { kind: "none" };
12
+
13
+ /**
14
+ * Resolve which project's cwd to hand to the dashboard server at startup.
15
+ *
16
+ * The dashboard UI has an in-app project switcher, so `mink dashboard` does
17
+ * not need to be launched from inside an active mink project. When the cwd
18
+ * is not an initialized project, fall back to any registered project — the
19
+ * user can switch from there.
20
+ */
21
+ export function resolveStartupCwd(
22
+ cwd: string,
23
+ registered: RegisteredProject[] = listRegisteredProjects(),
24
+ ): StartupResolution {
25
+ if (existsSync(projectDir(cwd))) {
26
+ return { kind: "active", cwd };
27
+ }
28
+ if (registered.length === 0) {
29
+ return { kind: "none" };
30
+ }
31
+ const fallback = [...registered].sort((a, b) =>
32
+ a.name.localeCompare(b.name),
33
+ )[0];
34
+ return { kind: "fallback", cwd: fallback.cwd, project: fallback };
35
+ }
3
36
 
4
37
  export async function dashboard(cwd: string, args: string[]): Promise<void> {
5
- if (!existsSync(projectDir(cwd))) {
6
- console.error("[mink] project not initialized. Run: mink init");
38
+ const resolution = resolveStartupCwd(cwd);
39
+ if (resolution.kind === "none") {
40
+ console.error(
41
+ "[mink] no mink projects found. Run `mink init` in a project first.",
42
+ );
7
43
  process.exit(1);
8
44
  }
45
+ if (resolution.kind === "fallback") {
46
+ console.log(
47
+ `[mink] not in a mink project — starting dashboard with "${resolution.project.name}". ` +
48
+ "Use the in-app project switcher to change projects.",
49
+ );
50
+ }
51
+ const startupCwd = resolution.cwd;
9
52
 
10
53
  const portArg = args.find((a) => a.startsWith("--port="));
11
54
  const port = portArg ? parseInt(portArg.split("=")[1], 10) : 4040;
12
55
  const noOpen = args.includes("--no-open");
13
56
 
14
57
  const { startDashboardServer } = await import("../core/dashboard-server");
15
- const { url } = await startDashboardServer(cwd, { port, open: !noOpen });
58
+ const { url } = await startDashboardServer(startupCwd, {
59
+ port,
60
+ open: !noOpen,
61
+ });
16
62
 
17
63
  console.log(`[mink] dashboard running at ${url}`);
18
64
  console.log("[mink] press Ctrl+C to stop");