@mneme-ai/xray 2.159.0 → 2.160.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/dist/pack.d.ts.map +1 -1
- package/dist/pack.js +28 -2
- package/dist/pack.js.map +1 -1
- package/package.json +1 -1
- package/public/card.js +4 -0
- package/public/index.html +61 -74
- package/public/report.html +4 -0
package/dist/pack.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../src/pack.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAgCD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../src/pack.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAgCD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,WAAW,CAiI5G"}
|
package/dist/pack.js
CHANGED
|
@@ -151,12 +151,38 @@ export function buildContextPack(repoPath, opts = {}) {
|
|
|
151
151
|
const coverage = omitted === 0
|
|
152
152
|
? `Complete: all ${files.length} source files are included.`
|
|
153
153
|
: `${full + outl} of ${files.length} files included as content (the highest-signal ones); the remaining ${omitted} are listed in the Structure tree below but their contents were omitted to fit the model. Raise the budget or pack a sub-folder for full contents.`;
|
|
154
|
-
const header =
|
|
154
|
+
const header = `SYSTEM / INSTRUCTIONS FOR THE AI ASSISTANT — read this first.
|
|
155
155
|
|
|
156
|
-
|
|
156
|
+
You have just been given a complete CONTEXT PACK of a software project named "${repoName}".
|
|
157
|
+
It contains the repo's full structure plus its highest-signal files (FULL = verbatim
|
|
158
|
+
content; OUTLINE = exact function/class SIGNATURES with bodies elided to save space;
|
|
159
|
+
secrets shown as «REDACTED:…»). Treat it as the ground truth for this codebase.
|
|
160
|
+
|
|
161
|
+
YOUR TASK, right now, before anything else:
|
|
162
|
+
1. Read the whole pack.
|
|
163
|
+
2. Reply with a 3–4 sentence summary of what this project does and how it's architected.
|
|
164
|
+
3. List the 3 areas most likely to hold bugs or need refactoring (cite file paths).
|
|
165
|
+
4. Then ask: "What would you like help with?" and wait for me.
|
|
166
|
+
|
|
167
|
+
RULES: Ground every answer in the files below. If something I ask about isn't in the
|
|
168
|
+
pack, say "that file isn't in the pack" instead of guessing — do not invent code.
|
|
169
|
+
|
|
170
|
+
═══════════════════════════════════════════════════════════════════════════════
|
|
171
|
+
|
|
172
|
+
# 📦 AI Context Pack — ${repoName}
|
|
173
|
+
|
|
174
|
+
> Built by Mneme X-Ray: **prioritized** by real signals (not a raw dump),
|
|
175
|
+
> **secret-redacted**, and **token-budgeted** to fit your model. ~${used.toLocaleString()} tokens.
|
|
157
176
|
>
|
|
158
177
|
> **Coverage:** ${coverage}
|
|
159
178
|
|
|
179
|
+
## 💡 After the AI summarises, try asking:
|
|
180
|
+
- "Explain how <feature> works and which files it lives in."
|
|
181
|
+
- "Find the riskiest code here and suggest concrete fixes."
|
|
182
|
+
- "I want to add <feature> — exactly which files do I change, and how?"
|
|
183
|
+
- "Review <path> for bugs, security and edge cases."
|
|
184
|
+
- "Draw the architecture / data flow of this project."
|
|
185
|
+
|
|
160
186
|
## 🧭 Read this first (highest-signal files)
|
|
161
187
|
${top}
|
|
162
188
|
|
package/dist/pack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack.js","sourceRoot":"","sources":["../src/pack.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pack.js","sourceRoot":"","sources":["../src/pack.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mneme-ai/xray",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.160.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/card.js
CHANGED
|
@@ -56,6 +56,10 @@
|
|
|
56
56
|
<div><div class="repo">${esc(r.subject.repoName)}</div>
|
|
57
57
|
<div class="head">${esc(s.headline)} · ${s.signalsRun} signals · @ ${esc(String(r.subject.commitHash).slice(0, 10))}</div></div>
|
|
58
58
|
</div>
|
|
59
|
+
<div class="trustbar">
|
|
60
|
+
<span class="hgauge"><span class="hdot"></span>0% hallucination risk</span>
|
|
61
|
+
<span class="htext">Every number is computed from git, code & package metadata — <b>no AI guessed anything</b>. ${s.signalsRun} deterministic signals${verified ? ` · <b>signed</b>, verifies offline` : ""}.</span>
|
|
62
|
+
</div>
|
|
59
63
|
<div class="rows">
|
|
60
64
|
<div class="row">${kcell("Dependencies")}<div class="v"><span class="big">${dep.total}</span> total · ${dep.byBand.dead + dep.byBand.moribund} dying · ${(lic["strong-copyleft"] + lic["weak-copyleft"])} copyleft<div class="chips">${depChips}${licChips}</div></div></div>
|
|
61
65
|
<div class="row">${kcell("Secrets")}<div class="v"><span class="big">${sec.totalFindings}</span> in production code · ${sec.filesScanned} files${sec.excludedTestHits ? ` · <span class="muted">+${sec.excludedTestHits} in tests/docs (excluded)</span>` : ""}<div class="chips">${secChips}</div></div></div>
|
package/public/index.html
CHANGED
|
@@ -22,19 +22,13 @@
|
|
|
22
22
|
font-feature-settings:"cv11","ss01";letter-spacing:-0.011em}
|
|
23
23
|
::selection{background:var(--a-soft)}
|
|
24
24
|
.wrap{max-width:720px;margin:0 auto;padding:0 24px;position:relative;z-index:1}
|
|
25
|
-
/*
|
|
25
|
+
/* grand meteor-impact illustration — wide screens only (desktop / iPad), static */
|
|
26
26
|
.comet{position:fixed;pointer-events:none;z-index:0;opacity:0;display:none}
|
|
27
|
-
.comet-a{top:
|
|
28
|
-
.comet-
|
|
29
|
-
@media (min-width:
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
.comet-b{animation:cometIn 1.2s ease .6s forwards, driftB 19s ease-in-out 2s infinite alternate}
|
|
33
|
-
}
|
|
34
|
-
@keyframes cometIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
|
|
35
|
-
@keyframes driftA{from{transform:translate(0,0) rotate(0deg)}to{transform:translate(-14px,18px) rotate(-3deg)}}
|
|
36
|
-
@keyframes driftB{from{transform:translate(0,0) rotate(0deg)}to{transform:translate(16px,-14px) rotate(3deg)}}
|
|
37
|
-
@media (prefers-reduced-motion:reduce){.comet{animation:none!important;opacity:1!important}}
|
|
27
|
+
.comet-a{top:7%;right:1.5vw}
|
|
28
|
+
@media (min-width:1180px){ .comet-a{display:block;animation:cometIn 1.1s cubic-bezier(.2,.7,.2,1) .25s forwards} }
|
|
29
|
+
@media (min-width:1500px){ .comet-a{right:4vw} }
|
|
30
|
+
@keyframes cometIn{from{opacity:0;transform:translateY(-12px) scale(.97)}to{opacity:.92;transform:none}}
|
|
31
|
+
@media (prefers-reduced-motion:reduce){.comet{animation:none!important;opacity:.92!important}}
|
|
38
32
|
/* hero */
|
|
39
33
|
header{padding:96px 0 40px;text-align:center}
|
|
40
34
|
.mark{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--sub);font-weight:600}
|
|
@@ -73,6 +67,10 @@
|
|
|
73
67
|
.g-F{background:linear-gradient(135deg,#f43f5e,#be123c)}
|
|
74
68
|
.top .repo{font-size:22px;font-weight:640;letter-spacing:-.02em;color:var(--ink);word-break:break-all;line-height:1.2}
|
|
75
69
|
.top .head{color:var(--sub);font-size:14px;margin-top:4px}
|
|
70
|
+
.trustbar{display:flex;align-items:center;gap:14px;padding:13px 30px;background:#f0fdf4;border-bottom:1px solid #dcfce7;flex-wrap:wrap}
|
|
71
|
+
.hgauge{display:inline-flex;align-items:center;gap:8px;font-weight:680;color:#15803d;font-size:14px;white-space:nowrap}
|
|
72
|
+
.hdot{width:10px;height:10px;border-radius:50%;background:#16a34a;box-shadow:0 0 0 4px rgba(22,163,74,.16)}
|
|
73
|
+
.htext{font-size:12.5px;color:#3f6b4e;line-height:1.5}.htext b{color:#14532d;font-weight:640}
|
|
76
74
|
.rows{padding:6px 30px 16px}
|
|
77
75
|
.row{display:flex;gap:18px;padding:17px 0;border-bottom:1px solid var(--line2);align-items:baseline}
|
|
78
76
|
.row:last-child{border-bottom:0}
|
|
@@ -110,10 +108,11 @@
|
|
|
110
108
|
.kstate{align-self:center;color:var(--green);font-size:12.5px;white-space:nowrap}
|
|
111
109
|
/* board / listview */
|
|
112
110
|
.board{margin:60px 0 30px}
|
|
113
|
-
.tabs{display:flex;gap:
|
|
114
|
-
.tab{background:none;border:0;padding:
|
|
115
|
-
|
|
116
|
-
.tab
|
|
111
|
+
.tabs{display:inline-flex;gap:6px;margin-bottom:14px;background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:5px}
|
|
112
|
+
.tab{background:none;border:0;padding:9px 18px;border-radius:9px;font-size:13px;letter-spacing:.02em;
|
|
113
|
+
color:var(--sub);cursor:pointer;font-weight:700;transition:background .15s,color .15s;white-space:nowrap}
|
|
114
|
+
.tab:hover{background:#1a1b22;color:#fff}
|
|
115
|
+
.tab.on{background:var(--ink);color:#fff}
|
|
117
116
|
.listbox{max-height:440px;overflow:auto;border:1px solid var(--line);border-radius:var(--r);background:#fff;box-shadow:var(--sh-sm)}
|
|
118
117
|
.bitem{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid var(--line2);font-size:14.5px;cursor:pointer;transition:background .12s}
|
|
119
118
|
.bitem:last-child{border-bottom:0}
|
|
@@ -126,6 +125,8 @@
|
|
|
126
125
|
.bitem .arr{color:#c2c6cd}
|
|
127
126
|
.bitem.muted{cursor:default;color:var(--sub)}.bitem.muted:hover{background:none}
|
|
128
127
|
.lock{margin-right:4px}
|
|
128
|
+
.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
|
+
.signincta b{color:var(--ink)}
|
|
129
130
|
.listfoot{display:flex;justify-content:space-between;align-items:center;padding:14px 4px 0;font-size:13px}
|
|
130
131
|
.moreb{height:38px;padding:0 18px;border:1px solid var(--line);background:#fff;border-radius:10px;cursor:pointer;font-size:13px;font-weight:540;transition:border-color .15s}
|
|
131
132
|
.moreb:hover{border-color:var(--ink)}
|
|
@@ -196,70 +197,50 @@
|
|
|
196
197
|
</style>
|
|
197
198
|
</head>
|
|
198
199
|
<body>
|
|
199
|
-
<!--
|
|
200
|
+
<!-- grand meteor-impact illustration — desktop / iPad only, behind content -->
|
|
200
201
|
<div class="comet comet-a" aria-hidden="true">
|
|
201
|
-
<svg viewBox="0 0
|
|
202
|
+
<svg viewBox="0 0 360 420" width="360" height="420">
|
|
202
203
|
<defs>
|
|
203
204
|
<linearGradient id="mtail" x1="1" y1="0" x2="0" y2="1">
|
|
204
|
-
<stop offset="0" stop-color="#0b0b0f" stop-opacity=".
|
|
205
|
-
|
|
206
|
-
<
|
|
205
|
+
<stop offset="0" stop-color="#0b0b0f" stop-opacity=".55"/><stop offset="1" stop-color="#0b0b0f" stop-opacity="0"/></linearGradient>
|
|
206
|
+
<radialGradient id="dust" cx="50%" cy="60%"><stop offset="0" stop-color="#0b0b0f" stop-opacity=".16"/><stop offset="1" stop-color="#0b0b0f" stop-opacity="0"/></radialGradient>
|
|
207
|
+
<linearGradient id="rock" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#22232b"/><stop offset="1" stop-color="#0b0b0f"/></linearGradient>
|
|
207
208
|
</defs>
|
|
208
|
-
<!--
|
|
209
|
-
<
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
<circle cx="74" cy="266" r="46" fill="url(#dust)">
|
|
216
|
-
<animate attributeName="opacity" dur="9s" repeatCount="indefinite" values="0;0;1;0" keyTimes="0;.34;.4;.66"/>
|
|
217
|
-
</circle>
|
|
218
|
-
<!-- the meteor: rocky head + burning tail, streaks in then vanishes at impact -->
|
|
219
|
-
<g>
|
|
220
|
-
<animate attributeName="opacity" dur="9s" repeatCount="indefinite" values="0;.95;.95;0;0" keyTimes="0;.07;.32;.35;1"/>
|
|
221
|
-
<animateTransform attributeName="transform" type="translate" dur="9s" repeatCount="indefinite"
|
|
222
|
-
values="190 -150; 0 0; 0 0" keyTimes="0;.34;1" calcMode="spline" keySplines="0.5 0 0.9 1; 0 0 1 1"/>
|
|
223
|
-
<path d="M246 40 Q150 110 78 258 Q150 122 236 52 Z" fill="url(#mtail)"/>
|
|
224
|
-
<polygon points="250,30 268,42 263,62 243,60 236,42" fill="#0b0b0f"/>
|
|
225
|
-
<polygon points="250,30 268,42 256,48" fill="#34343d"/>
|
|
209
|
+
<!-- ground + crater -->
|
|
210
|
+
<path d="M-20 322 Q90 300 150 330 Q175 344 200 330 Q280 300 380 320" fill="none" stroke="#0b0b0f" stroke-width="2" opacity=".5"/>
|
|
211
|
+
<ellipse cx="172" cy="332" rx="78" ry="20" fill="url(#dust)"/>
|
|
212
|
+
<path d="M150 330 Q172 318 196 330 Q176 340 150 330 Z" fill="#0b0b0f" opacity=".55"/>
|
|
213
|
+
<!-- crater cracks -->
|
|
214
|
+
<g stroke="#0b0b0f" stroke-width="1.4" opacity=".4" fill="none">
|
|
215
|
+
<path d="M150 332 L96 352"/><path d="M196 330 L256 350"/><path d="M172 340 L168 372"/><path d="M150 330 L110 318"/>
|
|
226
216
|
</g>
|
|
227
|
-
<!--
|
|
228
|
-
<
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
<animateTransform attributeName="transform" type="rotate" additive="sum" dur="9s" repeatCount="indefinite" values="0;0;-180" keyTimes="0;.34;.62"/></g>
|
|
237
|
-
<g opacity="0"><polygon points="0,0 10,2 7,11 -1,8"/>
|
|
238
|
-
<animate attributeName="opacity" dur="9s" repeatCount="indefinite" values="0;0;1;0" keyTimes="0;.34;.37;.6"/>
|
|
239
|
-
<animateTransform attributeName="transform" type="translate" additive="sum" dur="9s" repeatCount="indefinite" values="74 266;74 266;112 196;120 222" keyTimes="0;.34;.52;.6" calcMode="spline" keySplines="0 0 1 1;0.3 0 0.8 1;0.4 0 1 1"/>
|
|
240
|
-
<animateTransform attributeName="transform" type="rotate" additive="sum" dur="9s" repeatCount="indefinite" values="0;0;300" keyTimes="0;.34;.6"/></g>
|
|
241
|
-
<g opacity="0"><polygon points="0,0 7,2 5,8 -1,6"/>
|
|
242
|
-
<animate attributeName="opacity" dur="9s" repeatCount="indefinite" values="0;0;1;0" keyTimes="0;.34;.37;.64"/>
|
|
243
|
-
<animateTransform attributeName="transform" type="translate" additive="sum" dur="9s" repeatCount="indefinite" values="74 266;74 266;146 226;156 248" keyTimes="0;.34;.52;.64" calcMode="spline" keySplines="0 0 1 1;0.3 0 0.8 1;0.4 0 1 1"/>
|
|
244
|
-
<animateTransform attributeName="transform" type="rotate" additive="sum" dur="9s" repeatCount="indefinite" values="0;0;160" keyTimes="0;.34;.64"/></g>
|
|
245
|
-
<g opacity="0"><polygon points="0,0 8,2 6,10 -2,7"/>
|
|
246
|
-
<animate attributeName="opacity" dur="9s" repeatCount="indefinite" values="0;0;1;0" keyTimes="0;.34;.37;.58"/>
|
|
247
|
-
<animateTransform attributeName="transform" type="translate" additive="sum" dur="9s" repeatCount="indefinite" values="74 266;74 266;10 244;4 262" keyTimes="0;.34;.52;.58" calcMode="spline" keySplines="0 0 1 1;0.3 0 0.8 1;0.4 0 1 1"/>
|
|
248
|
-
<animateTransform attributeName="transform" type="rotate" additive="sum" dur="9s" repeatCount="indefinite" values="0;0;-120" keyTimes="0;.34;.58"/></g>
|
|
217
|
+
<!-- motion streak of the descending meteor -->
|
|
218
|
+
<path d="M300 24 Q236 96 196 250 Q244 110 296 40 Z" fill="url(#mtail)"/>
|
|
219
|
+
<!-- the meteor: a faceted rock, mid-descent -->
|
|
220
|
+
<g transform="translate(196 250)">
|
|
221
|
+
<polygon points="-34,-6 -18,-34 14,-40 36,-18 30,18 2,34 -28,22" fill="url(#rock)"/>
|
|
222
|
+
<g stroke="#3a3b45" stroke-width="1.3" opacity=".7" fill="none">
|
|
223
|
+
<path d="M-18 -34 L2 -6 L36 -18"/><path d="M2 -6 L-28 22"/><path d="M2 -6 L2 34"/><path d="M2 -6 L30 18"/>
|
|
224
|
+
</g>
|
|
225
|
+
<polygon points="-18,-34 14,-40 2,-6" fill="#2c2d36"/>
|
|
249
226
|
</g>
|
|
250
|
-
<!--
|
|
251
|
-
<g
|
|
252
|
-
<
|
|
253
|
-
<polygon points="
|
|
227
|
+
<!-- big angular rock shards flung upward (grand) -->
|
|
228
|
+
<g>
|
|
229
|
+
<polygon points="86,178 110,150 128,170 116,210 92,206" fill="url(#rock)"/>
|
|
230
|
+
<polygon points="86,178 110,150 116,184" fill="#2c2d36"/>
|
|
231
|
+
<polygon points="248,170 276,150 296,184 272,206 250,194" fill="url(#rock)"/>
|
|
232
|
+
<polygon points="248,170 276,150 272,188" fill="#2c2d36"/>
|
|
233
|
+
<polygon points="150,128 168,104 186,124 178,156 154,152" fill="url(#rock)"/>
|
|
234
|
+
<polygon points="150,128 168,104 172,138" fill="#2c2d36"/>
|
|
235
|
+
<polygon points="44,256 64,242 74,266 56,278" fill="#0b0b0f"/>
|
|
236
|
+
<polygon points="300,250 318,238 326,262 306,272" fill="#0b0b0f"/>
|
|
237
|
+
<polygon points="208,150 222,134 234,150 226,170" fill="#0b0b0f" opacity=".82"/>
|
|
238
|
+
</g>
|
|
239
|
+
<!-- small flying debris -->
|
|
240
|
+
<g fill="#0b0b0f" opacity=".7">
|
|
241
|
+
<polygon points="130,96 140,90 142,102 132,104"/><polygon points="232,108 242,102 244,114 234,116"/>
|
|
242
|
+
<polygon points="70,150 79,145 81,156 71,158"/><polygon points="286,138 295,133 297,144 287,146"/>
|
|
254
243
|
</g>
|
|
255
|
-
</svg>
|
|
256
|
-
</div>
|
|
257
|
-
<div class="comet comet-b" aria-hidden="true">
|
|
258
|
-
<svg viewBox="0 0 300 300" width="220" height="220"><defs>
|
|
259
|
-
<linearGradient id="tb" x1="0" y1="1" x2="1" y2="0"><stop offset="0" stop-color="#0b0b0f" stop-opacity=".5"/><stop offset="1" stop-color="#0b0b0f" stop-opacity="0"/></linearGradient></defs>
|
|
260
|
-
<path d="M38 256 Q150 182 270 48 Q150 168 48 246 Z" fill="url(#tb)"/>
|
|
261
|
-
<circle cx="38" cy="256" r="12" fill="#0b0b0f" opacity=".12"/>
|
|
262
|
-
<circle cx="38" cy="256" r="6" fill="#0b0b0f"/>
|
|
263
244
|
</svg>
|
|
264
245
|
</div>
|
|
265
246
|
<div class="wrap">
|
|
@@ -396,6 +377,12 @@ async function fetchPage(off){
|
|
|
396
377
|
async function loadList(reset=true){
|
|
397
378
|
const el=document.getElementById("board");
|
|
398
379
|
if(reset){ offset=0; loaded=[]; el.innerHTML='<div class="bitem muted">Loading…</div>'; }
|
|
380
|
+
// My repos needs a key — guide the user instead of showing a blank list
|
|
381
|
+
if(tab==="mine" && !getKey()){
|
|
382
|
+
el.innerHTML=`<div class="signincta"><b>My repos</b> keeps every X-Ray & AI Pack you run.<br/>Create a key to start — it’s just a password you make up.<br/><button class="moreb" id="gokey" style="margin-top:12px">Create a key ↑</button></div>`;
|
|
383
|
+
const g=document.getElementById("gokey"); if(g) g.addEventListener("click",()=>{ const kb=document.querySelector(".keybox"); if(kb) kb.open=true; document.getElementById("key").focus(); window.scrollTo({top:0,behavior:"smooth"}); });
|
|
384
|
+
return;
|
|
385
|
+
}
|
|
399
386
|
try{
|
|
400
387
|
const data=await fetchPage(offset);
|
|
401
388
|
loaded=loaded.concat(data.items||[]);
|
|
@@ -483,7 +470,7 @@ function renderPack(p){
|
|
|
483
470
|
<button class="sbtn ghost" id="pdl">Download .md</button>
|
|
484
471
|
<span class="paste-hint">→ paste into <b>any</b> AI chat (ChatGPT · Claude · Grok · Gemini · Copilot…) so it understands your whole codebase</span>
|
|
485
472
|
</div>
|
|
486
|
-
<div class="pwhy">
|
|
473
|
+
<div class="pwhy"><b>What you get:</b> paste this into any AI chat and it instantly understands your <b>whole repo</b> — the pack even tells the AI what to do, so it replies with a summary + risks and asks how to help. Then ask it to explain code, find bugs, or add a feature. Prioritized · secret-redacted · fits the model (not millions of unusable tokens).</div>
|
|
487
474
|
<pre class="pre">${esc(md.slice(0,20000))}${md.length>20000?"\n\n… (truncated preview — Copy/Download for the full pack)":""}</pre>
|
|
488
475
|
</div>`;
|
|
489
476
|
document.getElementById("pcopy").addEventListener("click",async e=>{try{await navigator.clipboard.writeText(md);e.target.textContent="Copied ✓ — paste into any AI";setTimeout(()=>e.target.textContent="📋 Copy for your AI",1600);}catch{}});
|
package/public/report.html
CHANGED
|
@@ -19,6 +19,10 @@
|
|
|
19
19
|
.grade{width:78px;height:78px;border-radius:18px;display:grid;place-items:center;font-size:40px;font-weight:720;color:#fff;flex:none}
|
|
20
20
|
.g-A{background:var(--green)}.g-B{background:#65a30d}.g-C{background:var(--amber)}.g-D{background:#ea580c}.g-F{background:var(--red)}
|
|
21
21
|
.top .repo{font-size:21px;font-weight:620;word-break:break-all}.top .head{color:var(--sub);font-size:14.5px;margin-top:2px}
|
|
22
|
+
.trustbar{display:flex;align-items:center;gap:14px;padding:13px 28px;background:#f0fdf4;border-bottom:1px solid #dcfce7;flex-wrap:wrap}
|
|
23
|
+
.hgauge{display:inline-flex;align-items:center;gap:8px;font-weight:680;color:#15803d;font-size:14px}
|
|
24
|
+
.hdot{width:10px;height:10px;border-radius:50%;background:#16a34a;box-shadow:0 0 0 4px rgba(22,163,74,.16)}
|
|
25
|
+
.htext{font-size:12.5px;color:#3f6b4e;line-height:1.5}.htext b{color:#14532d;font-weight:640}
|
|
22
26
|
.rows{padding:8px 28px 14px}
|
|
23
27
|
.row{display:flex;gap:14px;padding:15px 0;border-bottom:1px solid var(--soft);align-items:baseline}.row:last-child{border-bottom:0}
|
|
24
28
|
.row .k{font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--sub);width:140px;flex:none;display:flex;flex-direction:column;gap:3px}
|