@mneme-ai/xray 2.160.0 โ 2.162.0
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/package.json +1 -1
- package/public/index.html +11 -3
- package/public/report.html +32 -28
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mneme-ai/xray",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.162.0",
|
|
4
4
|
"description": "Mneme Repo X-Ray โ a signed, raw-free, deterministic X-Ray of any repo. Every number is reproducible from git/AST/metadata and sealed with an offline-verifiable NOTARY receipt. No source code ever leaves the machine; no LLM guesses anything.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
package/public/index.html
CHANGED
|
@@ -125,6 +125,7 @@
|
|
|
125
125
|
.bitem .arr{color:#c2c6cd}
|
|
126
126
|
.bitem.muted{cursor:default;color:var(--sub)}.bitem.muted:hover{background:none}
|
|
127
127
|
.lock{margin-right:4px}
|
|
128
|
+
.boardnote{font-size:12.5px;color:var(--sub);margin:0 0 14px;line-height:1.5}.boardnote b{color:var(--ink2);font-weight:600}
|
|
128
129
|
.signincta{border:1px dashed var(--line);border-radius:var(--r);padding:28px;text-align:center;color:var(--sub);font-size:14px;line-height:1.7;background:var(--soft)}
|
|
129
130
|
.signincta b{color:var(--ink)}
|
|
130
131
|
.listfoot{display:flex;justify-content:space-between;align-items:center;padding:14px 4px 0;font-size:13px}
|
|
@@ -287,6 +288,7 @@
|
|
|
287
288
|
|
|
288
289
|
<div class="board">
|
|
289
290
|
<div class="tabs"><button id="tabBoard" class="tab on">Recently X-rayed</button><button id="tabMine" class="tab" style="display:none">My repos</button></div>
|
|
291
|
+
<p class="boardnote" id="boardnote">๐ <b>Public</b> โ recent X-Rays of <b>public</b> repos, visible to everyone. Private repos never appear here.</p>
|
|
290
292
|
<div id="board"></div>
|
|
291
293
|
</div>
|
|
292
294
|
</div>
|
|
@@ -408,8 +410,14 @@ async function openReport(fp, isPrivate){
|
|
|
408
410
|
if(signed&&signed.report){ render(signed); window.scrollTo({top:0,behavior:"smooth"}); }
|
|
409
411
|
}catch{}
|
|
410
412
|
}
|
|
411
|
-
|
|
412
|
-
document.getElementById("
|
|
413
|
+
function updateBoardNote(){
|
|
414
|
+
const n=document.getElementById("boardnote"); if(!n) return;
|
|
415
|
+
n.innerHTML = tab==="mine"
|
|
416
|
+
? "๐ <b>Private to you</b> โ only someone with your key sees these. Includes your private/local repos."
|
|
417
|
+
: "๐ <b>Public</b> โ recent X-Rays of <b>public</b> repos, visible to everyone. Private repos never appear here.";
|
|
418
|
+
}
|
|
419
|
+
document.getElementById("tabBoard").addEventListener("click",e=>{tab="board";setTab(e.target);updateBoardNote();loadList();});
|
|
420
|
+
document.getElementById("tabMine").addEventListener("click",e=>{tab="mine";setTab(e.target);updateBoardNote();loadList();});
|
|
413
421
|
function setTab(t){document.querySelectorAll(".tab").forEach(x=>x.classList.remove("on"));t.classList.add("on");}
|
|
414
422
|
|
|
415
423
|
document.getElementById("f").addEventListener("submit", async e=>{
|
|
@@ -524,7 +532,7 @@ document.getElementById("localpack").addEventListener("click", async ()=>{
|
|
|
524
532
|
}catch(ex){ err.textContent="Could not reach the local agent. Run: npx @mneme-ai/xray bridge"; err.style.display="block"; }
|
|
525
533
|
finally{ btn.disabled=false; btn.textContent="๐ฆ Pack"; }
|
|
526
534
|
});
|
|
527
|
-
document.getElementById("copyr").textContent = "ยฉ " + new Date().getFullYear() + " Mneme
|
|
535
|
+
document.getElementById("copyr").textContent = "ยฉ " + new Date().getFullYear() + " Mneme";
|
|
528
536
|
detectBridge();
|
|
529
537
|
refreshKeyState();
|
|
530
538
|
loadList();
|
package/public/report.html
CHANGED
|
@@ -7,43 +7,47 @@
|
|
|
7
7
|
<link rel="icon" href="/favicon.svg" />
|
|
8
8
|
<!--OGMETA-->
|
|
9
9
|
<style>
|
|
10
|
-
:root{--ink:#
|
|
10
|
+
:root{--ink:#0b0b0f;--ink2:#33333b;--sub:#8b8f98;--line:#ececef;--line2:#f3f3f5;--soft:#fafafb;
|
|
11
|
+
--a:#5b5bf6;--green:#16a34a;--amber:#d97706;--red:#e11d48;--r:18px;
|
|
12
|
+
--sh:0 1px 2px rgba(11,11,20,.04),0 14px 44px -12px rgba(11,11,20,.10)}
|
|
11
13
|
*{box-sizing:border-box}
|
|
12
|
-
body{margin:0;background:#fff;color:var(--
|
|
13
|
-
.wrap{max-width:
|
|
14
|
-
.nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:
|
|
15
|
-
.mark{font-size:
|
|
16
|
-
.home{font-size:13px;color:var(--ink);text-decoration:none;border:1px solid var(--line);border-radius:
|
|
17
|
-
.
|
|
18
|
-
.card
|
|
19
|
-
.
|
|
20
|
-
.
|
|
21
|
-
.
|
|
22
|
-
.
|
|
14
|
+
body{margin:0;background:#fff;color:var(--ink2);font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,"Helvetica Neue",Roboto,sans-serif;-webkit-font-smoothing:antialiased;letter-spacing:-.011em}
|
|
15
|
+
.wrap{max-width:720px;margin:0 auto;padding:46px 24px 70px}
|
|
16
|
+
.nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}
|
|
17
|
+
.mark{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--sub);font-weight:600}
|
|
18
|
+
.home{font-size:13px;color:var(--ink);text-decoration:none;border:1px solid var(--line);border-radius:10px;padding:9px 14px;font-weight:540;transition:border-color .15s}
|
|
19
|
+
.home:hover{border-color:var(--ink)}
|
|
20
|
+
.card{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff;box-shadow:var(--sh)}
|
|
21
|
+
.card .top{display:flex;align-items:center;gap:22px;padding:28px 30px;border-bottom:1px solid var(--line2);background:linear-gradient(180deg,#fff,#fcfcfd)}
|
|
22
|
+
.grade{width:72px;height:72px;border-radius:16px;display:grid;place-items:center;font-size:36px;font-weight:740;color:#fff;flex:none;box-shadow:inset 0 -2px 6px rgba(0,0,0,.12)}
|
|
23
|
+
.g-A{background:linear-gradient(135deg,#1fb255,#15863f)}.g-B{background:linear-gradient(135deg,#7bb736,#5c8f1e)}
|
|
24
|
+
.g-C{background:linear-gradient(135deg,#eaa83a,#c9821a)}.g-D{background:linear-gradient(135deg,#f0742e,#d4571a)}.g-F{background:linear-gradient(135deg,#f43f5e,#be123c)}
|
|
25
|
+
.top .repo{font-size:22px;font-weight:640;letter-spacing:-.02em;color:var(--ink);word-break:break-all;line-height:1.2}.top .head{color:var(--sub);font-size:14px;margin-top:4px}
|
|
26
|
+
.trustbar{display:flex;align-items:center;gap:14px;padding:13px 30px;background:#f0fdf4;border-bottom:1px solid #dcfce7;flex-wrap:wrap}
|
|
23
27
|
.hgauge{display:inline-flex;align-items:center;gap:8px;font-weight:680;color:#15803d;font-size:14px}
|
|
24
28
|
.hdot{width:10px;height:10px;border-radius:50%;background:#16a34a;box-shadow:0 0 0 4px rgba(22,163,74,.16)}
|
|
25
29
|
.htext{font-size:12.5px;color:#3f6b4e;line-height:1.5}.htext b{color:#14532d;font-weight:640}
|
|
26
|
-
.rows{padding:
|
|
27
|
-
.row{display:flex;gap:
|
|
28
|
-
.row .k{font-size:
|
|
29
|
-
.kdesc{font-size:
|
|
30
|
-
.spark{font-family:ui-monospace,Menlo,monospace;letter-spacing:1px;color
|
|
30
|
+
.rows{padding:6px 30px 16px}
|
|
31
|
+
.row{display:flex;gap:18px;padding:17px 0;border-bottom:1px solid var(--line2);align-items:baseline}.row:last-child{border-bottom:0}
|
|
32
|
+
.row .k{width:138px;flex:none;display:flex;flex-direction:column;gap:4px;font-size:12.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink);font-weight:700}
|
|
33
|
+
.kdesc{font-size:11.5px;color:#5e636d;text-transform:none;letter-spacing:0;font-weight:400;line-height:1.4}
|
|
34
|
+
.spark{font-family:ui-monospace,Menlo,monospace;letter-spacing:1px;color:var(--a)}
|
|
31
35
|
.muted{color:var(--sub)}
|
|
32
|
-
|
|
33
|
-
.
|
|
34
|
-
.
|
|
35
|
-
.chip{
|
|
36
|
-
.
|
|
37
|
-
.foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 28px;background:var(--soft);font-size:13px;color:var(--sub);flex-wrap:wrap}
|
|
36
|
+
.row .v{font-size:15px;color:var(--ink2)}.row .v .big{font-weight:660;color:var(--ink);font-size:16px}
|
|
37
|
+
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
|
|
38
|
+
.chip{font-size:12px;padding:4px 10px;border-radius:8px;background:var(--soft);border:1px solid var(--line);color:#5c616b}
|
|
39
|
+
.chip.bad{background:#fff1f3;border-color:#ffe0e6;color:var(--red)}.chip.warn{background:#fff8ed;border-color:#fde6cc;color:#b45309}
|
|
40
|
+
.foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 30px;background:var(--soft);font-size:13px;color:var(--sub);flex-wrap:wrap}
|
|
38
41
|
.verified{display:inline-flex;align-items:center;gap:7px;color:var(--green);font-weight:560}
|
|
39
|
-
.dot{width:8px;height:8px;border-radius:50%;background:var(--green)}
|
|
40
|
-
code{font-family:ui-monospace,Menlo,monospace;font-size:12.5px}
|
|
41
|
-
.share{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:
|
|
42
|
+
.dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px rgba(22,163,74,.14)}
|
|
43
|
+
code{font-family:ui-monospace,Menlo,monospace;font-size:12.5px;background:var(--soft);padding:2px 6px;border-radius:6px;border:1px solid var(--line)}
|
|
44
|
+
.share{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:18px 30px;border-top:1px solid var(--line2)}
|
|
42
45
|
.badgeimg{height:20px}
|
|
43
|
-
.sbtn{padding:
|
|
46
|
+
.sbtn{height:38px;display:inline-flex;align-items:center;padding:0 15px;border:1px solid var(--ink);background:var(--ink);color:#fff;border-radius:10px;font-size:13px;font-weight:540;cursor:pointer;text-decoration:none}
|
|
44
47
|
.sbtn.ghost{background:#fff;color:var(--ink)}
|
|
45
48
|
.miss{color:var(--sub);text-align:center;padding:60px 0}
|
|
46
|
-
.vbadge{margin-top:16px;font-size:13px;color:var(--
|
|
49
|
+
.vbadge{margin-top:16px;font-size:13px;color:var(--green);text-align:center;font-weight:560}
|
|
50
|
+
@media (max-width:640px){.wrap{padding:32px 18px 60px}.card .top{gap:16px;padding:20px}.grade{width:58px;height:58px;font-size:27px}.rows{padding:2px 18px 10px}.row{flex-direction:column;gap:5px;padding:14px 0}.row .k{width:auto;flex-direction:row;align-items:baseline;gap:8px}.kdesc{display:none}.foot,.share,.trustbar{padding-left:18px;padding-right:18px}.sbtn{flex:1;justify-content:center}}
|
|
47
51
|
</style>
|
|
48
52
|
</head>
|
|
49
53
|
<body>
|