@mneme-ai/xray 2.181.0 → 2.183.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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/intel.d.ts +43 -0
- package/dist/intel.d.ts.map +1 -0
- package/dist/intel.js +172 -0
- package/dist/intel.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +40 -10
- package/dist/server.js.map +1 -1
- package/dist/sign.d.ts +15 -2
- package/dist/sign.d.ts.map +1 -1
- package/dist/sign.js +14 -6
- package/dist/sign.js.map +1 -1
- package/package.json +1 -1
- package/public/card.js +72 -9
- package/public/index.html +46 -0
- package/public/report.html +46 -0
package/dist/index.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export { isAllowedPublicUrl, isSafeBranch } from "./clone.js";
|
|
|
17
17
|
export { listRemoteBranches, remoteRef, reportDelta, trackerTick, trackGauntlet, type RemoteBranch, type ReportDelta, type Drift, type TrackState, type TickResult } from "./track.js";
|
|
18
18
|
export { TrackerHub, trackId, hubGauntlet, verifyWebhookSig, type SseSink, type BuildFn, type RefFn, type TrackRecord, type HistoryEntry } from "./tracker_server.js";
|
|
19
19
|
export { buildRiskMap, buildBlastRadius, riskMapGauntlet, MAP_W, MAP_H, MAP_CAP, type RiskMap, type RiskNode, type RiskEdge, type BlastTarget, type BlastPartner } from "./riskmap.js";
|
|
20
|
+
export { buildKeystones, buildActionPlan, intelGauntlet, KEYSTONE_OWNER, type Keystone, type ActionItem, type Sev } from "./intel.js";
|
|
20
21
|
export { defaultFetcher, type MetaFetcher } from "./battery/deps.js";
|
|
21
22
|
export { publishReport, type PublishResult } from "./publish.js";
|
|
22
23
|
export { createXRayServer } from "./server.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AACvL,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACtK,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AACvL,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAC3G,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AACvL,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACtK,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AACvL,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AACtI,OAAO,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAC3G,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -17,6 +17,7 @@ export { isAllowedPublicUrl, isSafeBranch } from "./clone.js";
|
|
|
17
17
|
export { listRemoteBranches, remoteRef, reportDelta, trackerTick, trackGauntlet } from "./track.js";
|
|
18
18
|
export { TrackerHub, trackId, hubGauntlet, verifyWebhookSig } from "./tracker_server.js";
|
|
19
19
|
export { buildRiskMap, buildBlastRadius, riskMapGauntlet, MAP_W, MAP_H, MAP_CAP } from "./riskmap.js";
|
|
20
|
+
export { buildKeystones, buildActionPlan, intelGauntlet, KEYSTONE_OWNER } from "./intel.js";
|
|
20
21
|
export { defaultFetcher } from "./battery/deps.js";
|
|
21
22
|
export { publishReport } from "./publish.js";
|
|
22
23
|
export { createXRayServer } from "./server.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAqB,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,YAAY,EAAoB,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAqB,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAqF,MAAM,YAAY,CAAC;AACvL,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAA+E,MAAM,qBAAqB,CAAC;AACtK,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAmF,MAAM,cAAc,CAAC;AACvL,OAAO,EAAE,cAAc,EAAoB,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAsB,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAkC,MAAM,aAAa,CAAC;AAC3G,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAoB,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAqB,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,YAAY,EAAoB,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAqB,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAqF,MAAM,YAAY,CAAC;AACvL,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAA+E,MAAM,qBAAqB,CAAC;AACtK,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAmF,MAAM,cAAc,CAAC;AACvL,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAA4C,MAAM,YAAY,CAAC;AACtI,OAAO,EAAE,cAAc,EAAoB,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAsB,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAkC,MAAM,aAAa,CAAC;AAC3G,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAoB,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/intel.d.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export interface Keystone {
|
|
2
|
+
file: string;
|
|
3
|
+
/** sum of co-change confidence to other files (how far an edit ripples). */
|
|
4
|
+
reach: number;
|
|
5
|
+
/** number of files it historically pulls along. */
|
|
6
|
+
partners: number;
|
|
7
|
+
/** single-author share of this file's history, [0,1]. */
|
|
8
|
+
ownerPct: number;
|
|
9
|
+
/** factual top author of the file (who to ask for a handoff), if known. */
|
|
10
|
+
expert: string | null;
|
|
11
|
+
/** reach × ownerPct — the catastrophe score. */
|
|
12
|
+
score: number;
|
|
13
|
+
}
|
|
14
|
+
/** Single-owner threshold: a file is "key-person held" at ≥60% one-author share. */
|
|
15
|
+
export declare const KEYSTONE_OWNER = 0.6;
|
|
16
|
+
export declare function buildKeystones(report: unknown, max?: number): {
|
|
17
|
+
keystones: Keystone[];
|
|
18
|
+
note: string;
|
|
19
|
+
};
|
|
20
|
+
export type Sev = "high" | "med" | "low";
|
|
21
|
+
export interface ActionItem {
|
|
22
|
+
sev: Sev;
|
|
23
|
+
icon: string;
|
|
24
|
+
title: string;
|
|
25
|
+
detail: string;
|
|
26
|
+
source: string;
|
|
27
|
+
}
|
|
28
|
+
export declare function buildActionPlan(report: unknown, max?: number): {
|
|
29
|
+
items: ActionItem[];
|
|
30
|
+
note: string;
|
|
31
|
+
};
|
|
32
|
+
export interface IntelCheck {
|
|
33
|
+
name: string;
|
|
34
|
+
pass: boolean;
|
|
35
|
+
detail: string;
|
|
36
|
+
}
|
|
37
|
+
export interface IntelGauntlet {
|
|
38
|
+
score: number;
|
|
39
|
+
iterations: number;
|
|
40
|
+
checks: IntelCheck[];
|
|
41
|
+
}
|
|
42
|
+
export declare function intelGauntlet(iterations?: number): IntelGauntlet;
|
|
43
|
+
//# sourceMappingURL=intel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intel.d.ts","sourceRoot":"","sources":["../src/intel.ts"],"names":[],"mappings":"AA8BA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,oFAAoF;AACpF,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAI,GAAG;IAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CA2BhG;AAGD,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AACzC,MAAM,WAAW,UAAU;IAAG,GAAG,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AAGrG,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAI,GAAG;IAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAwD/F;AAGD,MAAM,WAAW,UAAU;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AAC3E,MAAM,WAAW,aAAa;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,EAAE,CAAA;CAAE;AAiB1F,wBAAgB,aAAa,CAAC,UAAU,SAAU,GAAG,aAAa,CAwBjE"}
|
package/dist/intel.js
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TEAM INTELLIGENCE — turn the raw technical signals into ranked, ACTIONABLE,
|
|
3
|
+
* fully-traceable next-steps a CEO / lead / dev acts on, WITHOUT inventing a
|
|
4
|
+
* single number, dollar figure, or accusation about a named person.
|
|
5
|
+
*
|
|
6
|
+
* Two gems, both composed only from fields already in the signed report:
|
|
7
|
+
*
|
|
8
|
+
* 1. KEYSTONE RISK ("single point of catastrophe") — the novel composite no
|
|
9
|
+
* SonarQube/Snyk computes: a file whose change historically RIPPLES to many
|
|
10
|
+
* others (temporal-coupling reach) AND is written almost entirely by ONE
|
|
11
|
+
* author (authorship concentration). If that person is unavailable, a wide
|
|
12
|
+
* blast radius has no second expert. Pure git facts (co-change rate + author
|
|
13
|
+
* share) — same data class as `git shortlog`. No money, no blame, no LLM.
|
|
14
|
+
*
|
|
15
|
+
* 2. ACTION PLAN — every signal (secrets, destructive commands, dead deps,
|
|
16
|
+
* single-owner files, licenses, hidden coupling, complexity) folded into a
|
|
17
|
+
* severity-ranked to-do list where EVERY line cites the metric it came from.
|
|
18
|
+
*
|
|
19
|
+
* Pure + total: missing/garbage fields never throw. Proven over 100,000 random
|
|
20
|
+
* reports (intelGauntlet).
|
|
21
|
+
*/
|
|
22
|
+
import { buildBlastRadius } from "./riskmap.js";
|
|
23
|
+
const clamp = (v, lo, hi) => (v < lo ? lo : v > hi ? hi : v);
|
|
24
|
+
const num = (x) => (Number.isFinite(Number(x)) ? Number(x) : 0);
|
|
25
|
+
const str = (x) => (typeof x === "string" ? x : "");
|
|
26
|
+
const arr = (x) => (Array.isArray(x) ? x : []);
|
|
27
|
+
const base = (f) => { const p = String(f).split("/"); return p[p.length - 1] || f; };
|
|
28
|
+
/** Single-owner threshold: a file is "key-person held" at ≥60% one-author share. */
|
|
29
|
+
export const KEYSTONE_OWNER = 0.6;
|
|
30
|
+
export function buildKeystones(report, max = 5) {
|
|
31
|
+
const r = (report && typeof report === "object" ? report : {});
|
|
32
|
+
const bf = (r["busFactor"] || {});
|
|
33
|
+
const hs = (r["hotspots"] || {});
|
|
34
|
+
// file → single-author share (verbatim from busFactor.fragileFiles)
|
|
35
|
+
const owner = new Map();
|
|
36
|
+
for (const x of arr(bf["fragileFiles"])) {
|
|
37
|
+
const f = str(x?.["file"]);
|
|
38
|
+
if (f)
|
|
39
|
+
owner.set(f, Math.max(owner.get(f) ?? 0, clamp(num(x?.["topAuthorShare"]), 0, 1)));
|
|
40
|
+
}
|
|
41
|
+
// file → factual top author (verbatim from hotspots.expert)
|
|
42
|
+
const expertOf = new Map();
|
|
43
|
+
for (const x of arr(hs["hotspots"])) {
|
|
44
|
+
const f = str(x?.["file"]);
|
|
45
|
+
const e = str(x?.["expert"]);
|
|
46
|
+
if (f && e)
|
|
47
|
+
expertOf.set(f, e);
|
|
48
|
+
}
|
|
49
|
+
const { targets } = buildBlastRadius(report, 100, 8);
|
|
50
|
+
const keystones = [];
|
|
51
|
+
for (const t of targets) {
|
|
52
|
+
const ownerPct = owner.get(t.file) ?? 0;
|
|
53
|
+
if (ownerPct < KEYSTONE_OWNER)
|
|
54
|
+
continue; // requires the key-person angle
|
|
55
|
+
keystones.push({ file: t.file, reach: t.reach, partners: t.partners.length, ownerPct, expert: expertOf.get(t.file) ?? null, score: t.reach * ownerPct });
|
|
56
|
+
}
|
|
57
|
+
keystones.sort((a, b) => (b.score - a.score) || (b.reach - a.reach) || a.file.localeCompare(b.file));
|
|
58
|
+
const top = keystones.slice(0, max);
|
|
59
|
+
return {
|
|
60
|
+
keystones: top,
|
|
61
|
+
note: top.length
|
|
62
|
+
? `${top.length} keystone path(s): high change-ripple AND single-owner`
|
|
63
|
+
: "no keystone paths — change-ripple and ownership do not overlap",
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
const SEV_RANK = { high: 0, med: 1, low: 2 };
|
|
67
|
+
export function buildActionPlan(report, max = 8) {
|
|
68
|
+
const r = (report && typeof report === "object" ? report : {});
|
|
69
|
+
const items = [];
|
|
70
|
+
const push = (sev, icon, title, detail, source) => items.push({ sev, icon, title, detail, source });
|
|
71
|
+
const secrets = (r["secrets"] || {});
|
|
72
|
+
const sFind = num(secrets["totalFindings"]);
|
|
73
|
+
if (sFind > 0) {
|
|
74
|
+
const hit = arr(secrets["hits"])[0];
|
|
75
|
+
const src = hit ? `${base(str(hit["file"]))}:${num(hit["line"])}` : "secret scan";
|
|
76
|
+
push("high", "🔑", `Rotate ${sFind} exposed credential pattern${sFind > 1 ? "s" : ""}`, "Found in production code — rotate the key(s) and purge them from git history.", src);
|
|
77
|
+
}
|
|
78
|
+
const security = (r["security"] || {});
|
|
79
|
+
const destr = arr(security["destructive"]);
|
|
80
|
+
if (destr.length > 0) {
|
|
81
|
+
const where = str(destr[0]?.["where"]);
|
|
82
|
+
push("high", "💣", `Review ${destr.length} destructive command${destr.length > 1 ? "s" : ""}`, "rm -rf / curl|bash in build or CI scripts can wipe data or run remote code unattended.", where ? base(where) : "security scan");
|
|
83
|
+
}
|
|
84
|
+
const deps = (r["deps"] || {});
|
|
85
|
+
const band = (deps["byBand"] || {});
|
|
86
|
+
const dead = num(band["dead"]), morib = num(band["moribund"]);
|
|
87
|
+
const atRisk = arr(deps["atRisk"]);
|
|
88
|
+
if (dead > 0) {
|
|
89
|
+
const d = atRisk.find((x) => str(x["band"]) === "dead") || atRisk[0];
|
|
90
|
+
const succ = d && str(d["successor"]) ? ` → ${str(d["successor"])}` : "";
|
|
91
|
+
push("high", "📦", `Replace ${dead} dead dependenc${dead > 1 ? "ies" : "y"}`, `Unmaintained — a known-good successor exists${succ}.`, d ? str(d["name"]) : "dependency scan");
|
|
92
|
+
}
|
|
93
|
+
if (morib > 0)
|
|
94
|
+
push("med", "📦", `Plan to replace ${morib} moribund dependenc${morib > 1 ? "ies" : "y"}`, "Maintenance is slowing — schedule a migration before it goes dead.", "dependency scan");
|
|
95
|
+
// GEM 1 folded into the plan — the keystone is the single highest-leverage action.
|
|
96
|
+
const ks = buildKeystones(report, 1).keystones[0];
|
|
97
|
+
if (ks) {
|
|
98
|
+
const who = ks.expert ? ` Only ${ks.expert} knows it best.` : "";
|
|
99
|
+
push("high", "🔑", `Protect the keystone: ${base(ks.file)}`, `Editing it historically ripples to ${ks.partners} file${ks.partners > 1 ? "s" : ""}, and ~${Math.round(ks.ownerPct * 100)}% is one author.${who} Document it and pair a second dev.`, "coupling × bus-factor");
|
|
100
|
+
}
|
|
101
|
+
const bf = (r["busFactor"] || {});
|
|
102
|
+
const single = arr(bf["fragileFiles"]).filter((x) => clamp(num(x["topAuthorShare"]), 0, 1) >= KEYSTONE_OWNER).length;
|
|
103
|
+
if (single > 0)
|
|
104
|
+
push("med", "👥", `Spread ownership of ${single} single-owner file${single > 1 ? "s" : ""}`, "These have no documented second contributor — a knowledge-loss risk if the owner is away.", "bus-factor");
|
|
105
|
+
const lic = arr(deps["licenseFlags"]);
|
|
106
|
+
if (lic.length > 0)
|
|
107
|
+
push("med", "⚖️", `Legal review: ${lic.length} copyleft/unknown-license dep${lic.length > 1 ? "s" : ""}`, "Copyleft or unknown licenses can constrain commercial/closed-source use — confirm with counsel.", lic[0] ? str(lic[0]["name"]) : "license scan");
|
|
108
|
+
const cp = (r["coupling"] || {});
|
|
109
|
+
const hidden = arr(cp["pairs"]).filter((p) => !!p["hidden"]);
|
|
110
|
+
if (hidden.length > 0) {
|
|
111
|
+
const h = hidden[0];
|
|
112
|
+
push("med", "🔗", `Document a hidden dependency`, `${base(str(h["a"]))} and ${base(str(h["b"]))} live in different modules but always change together — make the link explicit.`, "coupling");
|
|
113
|
+
}
|
|
114
|
+
const cx = (r["complexity"] || {});
|
|
115
|
+
const hot = arr(cx["hotspots"])[0];
|
|
116
|
+
if (hot && num(hot["bodyLines"]) >= 120)
|
|
117
|
+
push("low", "🔧", `Refactor the longest function`, `${num(hot["bodyLines"])} lines in one symbol is hard to test and review.`, `${base(str(hot["file"]))}:${num(hot["startLine"])}`);
|
|
118
|
+
items.sort((a, b) => SEV_RANK[a.sev] - SEV_RANK[b.sev]);
|
|
119
|
+
const top = items.slice(0, max);
|
|
120
|
+
return { items: top, note: top.length ? `${top.length} prioritised action${top.length > 1 ? "s" : ""}` : "No action items — every signal is clear. ✓" };
|
|
121
|
+
}
|
|
122
|
+
function lcg(seed) { let s = seed >>> 0; return () => (s = (s * 1664525 + 1013904223) >>> 0) / 4294967296; }
|
|
123
|
+
function randomReport(rnd) {
|
|
124
|
+
const file = () => `src/${Math.floor(rnd() * 1000)}/${Math.floor(rnd() * 1000)}.ts`;
|
|
125
|
+
const n = (k) => Math.floor(rnd() * k);
|
|
126
|
+
return {
|
|
127
|
+
secrets: { totalFindings: rnd() < 0.4 ? n(20) : 0, hits: Array.from({ length: n(5) }, () => ({ kind: "aws", file: rnd() < 0.05 ? "" : file(), line: n(500) })) },
|
|
128
|
+
security: { destructive: Array.from({ length: rnd() < 0.4 ? n(6) : 0 }, () => ({ command: "rm -rf x", where: rnd() < 0.1 ? "" : file(), signals: [] })) },
|
|
129
|
+
deps: { byBand: { dead: rnd() < 0.3 ? n(5) : 0, moribund: rnd() < 0.3 ? n(5) : 0 }, atRisk: Array.from({ length: n(4) }, () => ({ name: "pkg", band: rnd() < 0.5 ? "dead" : "moribund", successor: rnd() < 0.5 ? "newpkg" : null })), licenseFlags: Array.from({ length: rnd() < 0.3 ? n(4) : 0 }, () => ({ name: "gpllib", license: "GPL-3.0", class: "strong-copyleft" })) },
|
|
130
|
+
busFactor: { fragileFiles: Array.from({ length: n(40) }, () => ({ file: rnd() < 0.05 ? "" : file(), topAuthorShare: rnd() < 0.05 ? NaN : rnd() * 1.2, commits: n(100) })) },
|
|
131
|
+
hotspots: { hotspots: Array.from({ length: n(40) }, () => ({ file: file(), changes: n(500), loc: n(3000), expert: rnd() < 0.1 ? "" : `dev${n(20)}` })) },
|
|
132
|
+
complexity: { hotspots: Array.from({ length: n(20) }, () => ({ file: file(), bodyLines: n(800), startLine: n(2000) })) },
|
|
133
|
+
coupling: { pairs: Array.from({ length: n(40) }, () => ({ a: file(), b: rnd() < 0.1 ? "" : file(), confidence: rnd() < 0.05 ? NaN : rnd(), coChanges: n(40), hidden: rnd() < 0.3 })) },
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
export function intelGauntlet(iterations = 100_000) {
|
|
137
|
+
const rnd = lcg(987654321);
|
|
138
|
+
let threw = 0, badSev = 0, badSrc = 0, badKs = 0;
|
|
139
|
+
const SEV = new Set(["high", "med", "low"]);
|
|
140
|
+
for (let i = 0; i < iterations; i++) {
|
|
141
|
+
const rep = randomReport(rnd);
|
|
142
|
+
try {
|
|
143
|
+
const plan = buildActionPlan(rep);
|
|
144
|
+
for (const it of plan.items) {
|
|
145
|
+
if (!SEV.has(it.sev))
|
|
146
|
+
badSev++;
|
|
147
|
+
if (!it.title || !it.source || typeof it.detail !== "string")
|
|
148
|
+
badSrc++;
|
|
149
|
+
}
|
|
150
|
+
const { keystones } = buildKeystones(rep);
|
|
151
|
+
for (const k of keystones) {
|
|
152
|
+
if (!(k.ownerPct >= KEYSTONE_OWNER && k.ownerPct <= 1) || !Number.isFinite(k.score) || k.reach < 0 || typeof k.file !== "string" || !k.file)
|
|
153
|
+
badKs++;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
catch {
|
|
157
|
+
threw++;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
const fixed = randomReport(lcg(2024));
|
|
161
|
+
const det = JSON.stringify(buildActionPlan(fixed)) === JSON.stringify(buildActionPlan(fixed)) && JSON.stringify(buildKeystones(fixed)) === JSON.stringify(buildKeystones(fixed));
|
|
162
|
+
const checks = [
|
|
163
|
+
{ name: "TOTAL", pass: threw === 0, detail: `0 throws over ${iterations.toLocaleString()} random reports (got ${threw})` },
|
|
164
|
+
{ name: "SEV-VALID", pass: badSev === 0, detail: `every action item severity ∈ {high,med,low} (violations ${badSev})` },
|
|
165
|
+
{ name: "TRACEABLE", pass: badSrc === 0, detail: `every action item has a title + source + detail (violations ${badSrc})` },
|
|
166
|
+
{ name: "KEYSTONE-SOUND", pass: badKs === 0, detail: `keystones: owner≥${KEYSTONE_OWNER}, finite score, named file (violations ${badKs})` },
|
|
167
|
+
{ name: "DETERMINISTIC", pass: det, detail: "same report → byte-identical plan + keystones" },
|
|
168
|
+
];
|
|
169
|
+
const passed = checks.filter((c) => c.pass).length;
|
|
170
|
+
return { score: Math.round((passed / checks.length) * 100), iterations, checks };
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=intel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intel.js","sourceRoot":"","sources":["../src/intel.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAgB,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAUpF,OAAO,EAAE,UAAU,EAAoB,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAoC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAgB,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAUpF,OAAO,EAAE,UAAU,EAAoB,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAoC,MAAM,aAAa,CAAC;AA2S9E,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,UAAU,wEAwOjF"}
|
package/dist/server.js
CHANGED
|
@@ -277,17 +277,47 @@ function badgeSvg(grade) {
|
|
|
277
277
|
* rasteriser is the future upgrade. */
|
|
278
278
|
function socialCardSvg(r) {
|
|
279
279
|
const color = GRADE_COLOR[r.summary.grade] || "#6b7280";
|
|
280
|
-
|
|
281
|
-
|
|
280
|
+
// SVG <text> does not wrap — clip every string to a width budget so nothing
|
|
281
|
+
// ever bleeds off the right edge (the bug that made the card look broken).
|
|
282
|
+
const ascii = (s) => String(s || "").replace(/[^\x20-\x7E]/g, "").replace(/\s+/g, " ").trim();
|
|
283
|
+
const clip = (s, n) => { const a = ascii(s); return a.length > n ? a.slice(0, n - 1).trimEnd() + "…" : a; };
|
|
284
|
+
const repo = clip(r.subject.repoName, 26);
|
|
285
|
+
const head = clip(r.summary.headline, 64);
|
|
286
|
+
// four hard metrics (always present, never overflow) → a clean stat strip
|
|
287
|
+
const bf = r.busFactor || {};
|
|
288
|
+
const stat = (x, lbl) => ({ x, lbl });
|
|
289
|
+
const stats = [
|
|
290
|
+
stat(r.secrets?.totalFindings ?? 0, "secrets"),
|
|
291
|
+
stat(bf.busFactor ?? 0, "bus factor"),
|
|
292
|
+
stat((r.security?.destructive || []).length, "risky cmds"),
|
|
293
|
+
stat(r.deps?.byBand?.dead ?? 0, "dead deps"),
|
|
294
|
+
];
|
|
295
|
+
const sx = 92, sgap = 256;
|
|
296
|
+
const statCells = stats.map((s, i) => `
|
|
297
|
+
<text x="${sx + i * sgap}" y="406" font-family="Verdana,sans-serif" font-size="62" font-weight="bold" fill="#0a0a0a">${s.x}</text>
|
|
298
|
+
<text x="${sx + i * sgap}" y="438" font-family="Verdana,sans-serif" font-size="22" fill="#8b8f98">${s.lbl}</text>`).join("");
|
|
299
|
+
const fp = xesc(clip(r.fingerprint, 18));
|
|
300
|
+
// A 3-ACT STORY no other code-tool's social card tells: ① our VERDICT → ② the
|
|
301
|
+
// EVIDENCE behind it → ③ the PROOF you can re-run yourself. Claim, then evidence,
|
|
302
|
+
// then proof. The fingerprint is a top-right watermark (no longer overlapping the
|
|
303
|
+
// footer — the bug in the previous card). Every string is width-clipped.
|
|
282
304
|
return `<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="630" viewBox="0 0 1200 630">
|
|
283
|
-
<
|
|
284
|
-
<
|
|
285
|
-
<
|
|
286
|
-
<text x="
|
|
287
|
-
<text x="
|
|
288
|
-
<
|
|
289
|
-
|
|
290
|
-
<text x="
|
|
305
|
+
<defs><filter id="sh" x="-20%" y="-20%" width="140%" height="140%"><feDropShadow dx="0" dy="10" stdDeviation="16" flood-color="${color}" flood-opacity="0.28"/></filter></defs>
|
|
306
|
+
<rect width="1200" height="630" fill="#ffffff"/><rect x="0" y="0" width="1200" height="10" fill="${color}"/>
|
|
307
|
+
<text x="92" y="74" font-family="Verdana,sans-serif" font-size="22" letter-spacing="5" fill="#9aa0aa">MNEME · REPO X-RAY</text>
|
|
308
|
+
<text x="1108" y="74" font-family="ui-monospace,Menlo,monospace" font-size="15" fill="#c8ccd3" text-anchor="end">${fp}…</text>
|
|
309
|
+
<text x="92" y="118" font-family="Verdana,sans-serif" font-size="16" letter-spacing="3" fill="#b6bac2">① THE VERDICT</text>
|
|
310
|
+
<rect x="92" y="138" width="112" height="112" rx="26" fill="${color}" filter="url(#sh)"/>
|
|
311
|
+
<text x="148" y="226" font-family="Verdana,sans-serif" font-size="70" font-weight="bold" fill="#fff" text-anchor="middle">${xesc(r.summary.grade)}</text>
|
|
312
|
+
<text x="232" y="196" font-family="Verdana,sans-serif" font-size="44" font-weight="bold" fill="#0a0a0a">${xesc(repo)}</text>
|
|
313
|
+
<text x="232" y="236" font-family="Verdana,sans-serif" font-size="23" fill="#6b7280">${xesc(head)}</text>
|
|
314
|
+
<text x="92" y="312" font-family="Verdana,sans-serif" font-size="16" letter-spacing="3" fill="#b6bac2">② THE EVIDENCE — measured from git, nothing invented</text>
|
|
315
|
+
<line x1="92" y1="328" x2="1108" y2="328" stroke="#eef0f2" stroke-width="2"/>
|
|
316
|
+
${statCells}
|
|
317
|
+
<line x1="92" y1="478" x2="1108" y2="478" stroke="#eef0f2" stroke-width="2"/>
|
|
318
|
+
<text x="92" y="516" font-family="Verdana,sans-serif" font-size="16" letter-spacing="3" fill="#b6bac2">③ THE PROOF — you don't have to trust us</text>
|
|
319
|
+
<text x="92" y="558" font-family="Verdana,sans-serif" font-size="24" font-weight="bold" fill="#16a34a">✓ deterministic · Ed25519-signed · verifiable offline</text>
|
|
320
|
+
<text x="92" y="592" font-family="Verdana,sans-serif" font-size="19" fill="#9aa0aa">Re-run this commit → the identical fingerprint. No AI guessed any number.</text></svg>`;
|
|
291
321
|
}
|
|
292
322
|
/** latest stored report fingerprint for a repo slug like "github/owner/repo". */
|
|
293
323
|
function latestByRepoSlug(slug) {
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/sign.d.ts
CHANGED
|
@@ -1,7 +1,20 @@
|
|
|
1
1
|
import type { XRayReport, SignedXRay } from "./types.js";
|
|
2
2
|
export declare function sealXRay(repoRoot: string, report: XRayReport, issuedAt?: number): SignedXRay;
|
|
3
|
-
export
|
|
3
|
+
export interface XRayVerifyResult {
|
|
4
4
|
valid: boolean;
|
|
5
5
|
reason: string;
|
|
6
|
-
|
|
6
|
+
/** Signature algorithm (Ed25519 — asymmetric, offline-verifiable). */
|
|
7
|
+
algorithm: string;
|
|
8
|
+
/** sha256 fingerprint of the issuer's public key (who signed it). */
|
|
9
|
+
issuerFingerprint: string;
|
|
10
|
+
/** The sha256 the engine signed over the canonical metric blocks. */
|
|
11
|
+
signedHash: string;
|
|
12
|
+
/** The sha256 recomputed NOW from the report you are reading. */
|
|
13
|
+
recomputedHash: string;
|
|
14
|
+
/** True iff signedHash === recomputedHash — i.e. not one number was edited. */
|
|
15
|
+
hashesMatch: boolean;
|
|
16
|
+
/** When the report was sealed (ms epoch), when present. */
|
|
17
|
+
signedAt: number | null;
|
|
18
|
+
}
|
|
19
|
+
export declare function verifyXRay(signed: SignedXRay): XRayVerifyResult;
|
|
7
20
|
//# sourceMappingURL=sign.d.ts.map
|
package/dist/sign.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sign.d.ts","sourceRoot":"","sources":["../src/sign.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEzD,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,CAS5F;AAED,
|
|
1
|
+
{"version":3,"file":"sign.d.ts","sourceRoot":"","sources":["../src/sign.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEzD,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,CAS5F;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,WAAW,EAAE,OAAO,CAAC;IACrB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,gBAAgB,CAsB/D"}
|
package/dist/sign.js
CHANGED
|
@@ -17,17 +17,25 @@ export function sealXRay(repoRoot, report, issuedAt) {
|
|
|
17
17
|
return { report, receipt };
|
|
18
18
|
}
|
|
19
19
|
export function verifyXRay(signed) {
|
|
20
|
+
const rec = (signed.receipt || {});
|
|
21
|
+
const recomputedHash = createHash("sha256").update(notary.canonicalJson(signed.report)).digest("hex");
|
|
22
|
+
const base = {
|
|
23
|
+
algorithm: (rec.alg || "ed25519").toUpperCase(),
|
|
24
|
+
issuerFingerprint: rec.issuerFingerprint || "",
|
|
25
|
+
signedHash: rec.payloadHash || "",
|
|
26
|
+
recomputedHash,
|
|
27
|
+
hashesMatch: !!rec.payloadHash && rec.payloadHash === recomputedHash,
|
|
28
|
+
signedAt: typeof rec.issuedAt === "number" ? rec.issuedAt : null,
|
|
29
|
+
};
|
|
20
30
|
const r = notary.verifyReceipt(signed.receipt);
|
|
21
31
|
if (!r.valid)
|
|
22
|
-
return { valid: false, reason: r.reason };
|
|
32
|
+
return { valid: false, reason: r.reason, ...base };
|
|
23
33
|
// BIND the outer report to the signature: verifyReceipt only checks the
|
|
24
34
|
// receipt's own inline payload, so we must confirm signed.report hashes to
|
|
25
35
|
// the receipt's payloadHash — otherwise a tampered outer report would pass.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (!rec.payloadHash || rec.payloadHash !== h) {
|
|
29
|
-
return { valid: false, reason: "report does not match the signed payloadHash (tampered)" };
|
|
36
|
+
if (!base.hashesMatch) {
|
|
37
|
+
return { valid: false, reason: "report does not match the signed payloadHash (tampered)", ...base };
|
|
30
38
|
}
|
|
31
|
-
return { valid: true, reason: r.reason };
|
|
39
|
+
return { valid: true, reason: r.reason, ...base };
|
|
32
40
|
}
|
|
33
41
|
//# sourceMappingURL=sign.js.map
|
package/dist/sign.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sign.js","sourceRoot":"","sources":["../src/sign.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,UAAU,QAAQ,CAAC,QAAgB,EAAE,MAAkB,EAAE,QAAiB;IAC9E,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE;QAC5C,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,QAAQ,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;QACpF,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,IAAI;QACpB,QAAQ;KACT,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC;
|
|
1
|
+
{"version":3,"file":"sign.js","sourceRoot":"","sources":["../src/sign.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,UAAU,QAAQ,CAAC,QAAgB,EAAE,MAAkB,EAAE,QAAiB;IAC9E,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE;QAC5C,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,QAAQ,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;QACpF,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,IAAI;QACpB,QAAQ;KACT,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC;AAmBD,MAAM,UAAU,UAAU,CAAC,MAAkB;IAC3C,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAEhC,CAAC;IACF,MAAM,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtG,MAAM,IAAI,GAAG;QACX,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,WAAW,EAAE;QAC/C,iBAAiB,EAAE,GAAG,CAAC,iBAAiB,IAAI,EAAE;QAC9C,UAAU,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE;QACjC,cAAc;QACd,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,KAAK,cAAc;QACpE,QAAQ,EAAE,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;KACjE,CAAC;IACF,MAAM,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,CAAC,CAAC,CAAC,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;IACjE,wEAAwE;IACxE,2EAA2E;IAC3E,4EAA4E;IAC5E,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACtB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,yDAAyD,EAAE,GAAG,IAAI,EAAE,CAAC;IACtG,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;AACpD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mneme-ai/xray",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.183.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
|
@@ -167,6 +167,30 @@
|
|
|
167
167
|
</div>`;
|
|
168
168
|
}
|
|
169
169
|
|
|
170
|
+
// KEYSTONE RISK — mirrors packages/xray/src/intel.ts buildKeystones (tested + 100k).
|
|
171
|
+
// The novel composite no SonarQube/Snyk computes: a file whose change RIPPLES widely
|
|
172
|
+
// (temporal coupling) AND is written almost entirely by one author. Both are git facts.
|
|
173
|
+
function keystoneHTML(r) {
|
|
174
|
+
const num = (x) => (Number.isFinite(Number(x)) ? Number(x) : 0), strv = (x) => (typeof x === "string" ? x : "");
|
|
175
|
+
const baseN = (f) => { const p = String(f).split("/"); return p[p.length - 1] || f; };
|
|
176
|
+
const pairs = ((r.coupling || {}).pairs) || []; const adj = new Map();
|
|
177
|
+
const add = (f, t, c) => { if (!f || !t || f === t) return; if (!adj.has(f)) adj.set(f, { reach: 0, parts: new Set() }); const o = adj.get(f); o.reach += Math.min(1, Math.max(0, c)); o.parts.add(t); };
|
|
178
|
+
pairs.forEach((p) => { const a = strv(p && p.a), b = strv(p && p.b); if (!a || !b) return; const c = num(p.confidence); add(a, b, c); add(b, a, c); });
|
|
179
|
+
const owner = new Map(); (((r.busFactor || {}).fragileFiles) || []).forEach((x) => { const f = strv(x && x.file); if (f) owner.set(f, Math.max(owner.get(f) || 0, Math.min(1, Math.max(0, num(x.topAuthorShare))))); });
|
|
180
|
+
const expert = new Map(); (((r.hotspots || {}).hotspots) || []).forEach((x) => { const f = strv(x && x.file), e = strv(x && x.expert); if (f && e) expert.set(f, e); });
|
|
181
|
+
let ks = [...adj.entries()].map(([file, o]) => ({ file, reach: o.reach, partners: o.parts.size, ownerPct: owner.get(file) || 0, expert: expert.get(file) || null })).filter((k) => k.ownerPct >= 0.6);
|
|
182
|
+
ks.forEach((k) => { k.score = k.reach * k.ownerPct; });
|
|
183
|
+
ks.sort((a, b) => b.score - a.score || b.reach - a.reach || a.file.localeCompare(b.file));
|
|
184
|
+
ks = ks.slice(0, 3);
|
|
185
|
+
if (!ks.length) return "";
|
|
186
|
+
return `<div class="keystone">
|
|
187
|
+
<div class="kshead">🔑 Keystone risk — <b>your single points of catastrophe</b></div>
|
|
188
|
+
<div class="kssub">Files that <b>ripple widely</b> when changed <b>and</b> are written almost entirely by <b>one person</b>. If that person is away, a wide blast radius has no second expert. Change-coupling × authorship — both measured from git, nothing invented.</div>
|
|
189
|
+
${ks.map((k) => `<div class="ksrow"><span class="ksf">${esc(baseN(k.file))}</span><span class="ksmeta">ripples to <b>${k.partners}</b> file${k.partners > 1 ? "s" : ""} · <b>${Math.round(k.ownerPct * 100)}%</b> one author${k.expert ? ` · ask <b>${esc(k.expert)}</b>` : ""}</span></div>`).join("")}
|
|
190
|
+
<div class="ksact">→ Protect the top path first: document it and pair a second dev <b>before</b> the owner is unavailable.</div>
|
|
191
|
+
</div>`;
|
|
192
|
+
}
|
|
193
|
+
|
|
170
194
|
function xrayCardHTML(signed, opts) {
|
|
171
195
|
opts = opts || {};
|
|
172
196
|
g.__lastSigned = signed; // stash for the "Verify signature" proof button
|
|
@@ -210,6 +234,7 @@
|
|
|
210
234
|
${vd.risks.length ? `<details class="vrisks"${vd.risks.length <= 6 ? " open" : ""}><summary>📋 ${vd.risks.length} flagged item${vd.risks.length > 1 ? "s" : ""} — exactly what & where</summary>
|
|
211
235
|
<div class="vrlist">${vd.risks.map((k) => `<div class="vr"><span class="vrg">${k.icon} ${k.g}</span><span class="vrt">${k.t}</span></div>`).join("")}</div></details>` : ""}
|
|
212
236
|
</div>
|
|
237
|
+
${keystoneHTML(r)}
|
|
213
238
|
${riskMapHTML(r)}
|
|
214
239
|
${blastRadiusHTML(r)}
|
|
215
240
|
<div class="membrane">
|
|
@@ -231,7 +256,7 @@
|
|
|
231
256
|
<div class="row">${kcell("Coupling")}<div class="v"><span class="muted">${(cp.pairs||[]).length} coupled pair(s) · hidden = cross-directory</span><div class="chips">${cpChips}</div></div></div>
|
|
232
257
|
<div class="row">${kcell("Security")}<div class="v"><span class="big">${(secu.destructive||[]).length}</span> destructive cmd(s) · ${secu.commandsScanned||0} checked${secu.injectionFindings?` · ${secu.injectionFindings} doc injection`:""}<div class="chips">${secuChips}</div></div></div>
|
|
233
258
|
</div>
|
|
234
|
-
<div class="foot">${verified}<span>fingerprint <code>${esc(String(r.fingerprint).slice(0,
|
|
259
|
+
<div class="foot${verified ? " foot-v" : ""}"${verified ? ' data-verify role="button" tabindex="0" title="Re-check this report\'s signature"' : ""}>${verified}<span class="footfp">fingerprint <code>${esc(String(r.fingerprint).slice(0, 20))}…</code></span>${verified ? `<span class="footgo">Tamper-proof — click to verify ↗</span>` : ""}</div>
|
|
235
260
|
${share}
|
|
236
261
|
</div>`;
|
|
237
262
|
}
|
|
@@ -256,19 +281,57 @@
|
|
|
256
281
|
m.style.display = "flex";
|
|
257
282
|
}
|
|
258
283
|
});
|
|
259
|
-
document.addEventListener("keydown", (ev) => { if (ev.key === "Escape") close(); });
|
|
260
|
-
|
|
261
|
-
//
|
|
284
|
+
document.addEventListener("keydown", (ev) => { if (ev.key === "Escape") { close(); closeVf(); } });
|
|
285
|
+
|
|
286
|
+
// ── "Verify signature" — opens a real proof modal a skeptic can read. ──────
|
|
287
|
+
// It re-checks the Ed25519 receipt AND recomputes the report's sha256 in the
|
|
288
|
+
// visitor's own browser-facing call, then shows BOTH hashes matching. The point
|
|
289
|
+
// (what users kept asking): it proves not one number was edited after signing —
|
|
290
|
+
// no AI, no trust in us required. Tamper any metric → this turns red.
|
|
291
|
+
const closeVf = () => { const m = document.getElementById("vfmodal"); if (m) m.style.display = "none"; };
|
|
292
|
+
function vfRow(k, v, mono) { return `<div class="vfr"><span class="vfk">${k}</span><span class="vfv${mono ? " mono" : ""}">${v}</span></div>`; }
|
|
293
|
+
function renderVf(v) {
|
|
294
|
+
const ok = v && v.valid;
|
|
295
|
+
const sh = String((v && v.signedHash) || "").slice(0, 24), rh = String((v && v.recomputedHash) || "").slice(0, 24);
|
|
296
|
+
const when = v && v.signedAt ? new Date(v.signedAt).toISOString().replace("T", " ").slice(0, 16) + " UTC" : "—";
|
|
297
|
+
let m = document.getElementById("vfmodal");
|
|
298
|
+
if (!m) { m = document.createElement("div"); m.id = "vfmodal"; m.className = "vfmodal"; document.body.appendChild(m); }
|
|
299
|
+
m.innerHTML = `<div class="vfbox ${ok ? "ok" : "bad"}">
|
|
300
|
+
<button class="vfclose" aria-label="close">✕</button>
|
|
301
|
+
<div class="vfhero">
|
|
302
|
+
<div class="vfseal">${ok ? "✓" : "✗"}</div>
|
|
303
|
+
<div><div class="vfbig">${ok ? "Signature verified" : "Tamper detected"}</div>
|
|
304
|
+
<div class="vfsub">${ok
|
|
305
|
+
? "Every number in this report is cryptographically sealed. You don’t have to trust us — here’s the proof."
|
|
306
|
+
: "This report does not match what was signed. " + esc(String((v && v.reason) || "")) }</div></div>
|
|
307
|
+
</div>
|
|
308
|
+
<div class="vfmatch ${v && v.hashesMatch ? "y" : "n"}">
|
|
309
|
+
<div class="vfmatch-h">${v && v.hashesMatch ? "🔒 Fingerprint matches" : "⚠ Fingerprint mismatch"}</div>
|
|
310
|
+
<div class="vfhash"><span>signed </span><code>${esc(sh)}…</code></div>
|
|
311
|
+
<div class="vfhash"><span>recomputed</span><code>${esc(rh)}…</code></div>
|
|
312
|
+
<div class="vfwhy">We recomputed the sha256 over the report you’re reading <b>right now</b>. ${v && v.hashesMatch
|
|
313
|
+
? "It equals the hash signed at build time — so not a single metric was altered."
|
|
314
|
+
: "It differs from the signed hash — a number was changed after sealing."}</div>
|
|
315
|
+
</div>
|
|
316
|
+
${vfRow("Algorithm", esc(String((v && v.algorithm) || "ED25519")) + " · asymmetric, verifiable offline", false)}
|
|
317
|
+
${vfRow("Issuer key", esc(String((v && v.issuerFingerprint) || "—")), true)}
|
|
318
|
+
${vfRow("Sealed at", esc(when), false)}
|
|
319
|
+
<div class="vffoot">No LLM produced any of these numbers. The same commit always yields this same fingerprint — that determinism is the anti-hallucination guarantee.</div>
|
|
320
|
+
</div>`;
|
|
321
|
+
m.style.display = "flex";
|
|
322
|
+
}
|
|
262
323
|
document.addEventListener("click", async (ev) => {
|
|
263
|
-
const
|
|
324
|
+
const t = ev.target;
|
|
325
|
+
if (t && t.closest && (t.closest(".vfclose") || t.id === "vfmodal")) { closeVf(); return; }
|
|
326
|
+
const b = t && t.closest && t.closest("[data-verify]");
|
|
264
327
|
if (!b || !g.__lastSigned) return;
|
|
328
|
+
ev.preventDefault();
|
|
265
329
|
const old = b.textContent; b.textContent = "verifying…"; b.disabled = true;
|
|
266
330
|
try {
|
|
267
331
|
const res = await fetch("/api/verify", { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify(g.__lastSigned) });
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
} catch { b.textContent = old; b.disabled = false; }
|
|
332
|
+
renderVf(await res.json());
|
|
333
|
+
} catch { /* offline: still prove the hash locally is unavailable without server */ }
|
|
334
|
+
b.textContent = old; b.disabled = false;
|
|
272
335
|
});
|
|
273
336
|
}
|
|
274
337
|
})(window);
|
package/public/index.html
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
<meta charset="utf-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
6
|
<title>Mneme · Repo X-Ray</title>
|
|
7
|
+
<script>/* apply saved text size before paint (no flash); persists across browser restarts */
|
|
8
|
+
(function(){try{var s=localStorage.getItem("xray-fs")||"s";document.documentElement.className=(document.documentElement.className+" fs-"+s).trim();}catch(e){}})();</script>
|
|
7
9
|
<link rel="icon" href="/favicon.svg" />
|
|
8
10
|
<style>
|
|
9
11
|
:root{
|
|
@@ -119,6 +121,41 @@
|
|
|
119
121
|
.blast .blp{display:flex;gap:6px;flex-wrap:wrap}
|
|
120
122
|
.blast .blpill{font-size:11.5px;background:#eef0ff;color:#3a3df0;border-radius:20px;padding:2px 9px;font-family:ui-monospace,Menlo,monospace}
|
|
121
123
|
.blast .blpill.hidden{background:#fff1f3;color:#be123c}
|
|
124
|
+
/* ── text size (3 standard sizes, persisted) — zoom scales the whole page proportionally ── */
|
|
125
|
+
html.fs-m{zoom:1.12}html.fs-l{zoom:1.26}
|
|
126
|
+
.fontpick{position:fixed;top:14px;right:14px;z-index:60;display:flex;gap:2px;align-items:center;background:rgba(255,255,255,.82);backdrop-filter:saturate(1.6) blur(10px);-webkit-backdrop-filter:saturate(1.6) blur(10px);border:1px solid #ececef;border-radius:999px;padding:3px;box-shadow:0 1px 2px rgba(11,11,20,.05)}
|
|
127
|
+
.fontpick button{border:0;background:transparent;color:#8b8f98;cursor:pointer;border-radius:999px;width:30px;height:28px;font-weight:700;line-height:1;display:grid;place-items:center;font-family:inherit;transition:background .15s,color .15s}
|
|
128
|
+
.fontpick button:nth-child(1){font-size:11px}.fontpick button:nth-child(2){font-size:13px}.fontpick button:nth-child(3){font-size:16px}
|
|
129
|
+
.fontpick button[aria-pressed="true"]{background:#0b0b0f;color:#fff}
|
|
130
|
+
@media (max-width:640px){.fontpick{top:8px;right:8px}}
|
|
131
|
+
/* ── verify-signature proof modal ── */
|
|
132
|
+
.vfmodal{position:fixed;inset:0;z-index:120;display:none;align-items:center;justify-content:center;background:rgba(11,11,20,.46);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);padding:20px}
|
|
133
|
+
.vfbox{position:relative;width:min(560px,100%);background:#fff;border-radius:22px;padding:30px 30px 22px;box-shadow:0 30px 90px -20px rgba(11,11,20,.5);animation:vfpop .22s cubic-bezier(.2,.8,.2,1)}
|
|
134
|
+
@keyframes vfpop{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
|
|
135
|
+
.vfclose{position:absolute;top:14px;right:14px;border:0;background:#f3f3f5;width:30px;height:30px;border-radius:50%;cursor:pointer;color:#6b7280;font-size:14px}
|
|
136
|
+
.vfhero{display:flex;gap:16px;align-items:flex-start;margin-bottom:18px}
|
|
137
|
+
.vfseal{flex-shrink:0;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-size:28px;font-weight:800;color:#fff}
|
|
138
|
+
.vfbox.ok .vfseal{background:linear-gradient(135deg,#22c55e,#15803d)}.vfbox.bad .vfseal{background:linear-gradient(135deg,#fb7185,#be123c)}
|
|
139
|
+
.vfbig{font-size:21px;font-weight:760;color:#0b0b0f;letter-spacing:-.02em}
|
|
140
|
+
.vfsub{font-size:13px;color:#8b8f98;line-height:1.5;margin-top:3px}
|
|
141
|
+
.vfmatch{border-radius:14px;padding:14px 16px;margin-bottom:14px}
|
|
142
|
+
.vfmatch.y{background:#f0fdf4;border:1px solid #bbf7d0}.vfmatch.n{background:#fff1f3;border:1px solid #fecdd3}
|
|
143
|
+
.vfmatch-h{font-weight:680;font-size:14px;color:#0b0b0f;margin-bottom:8px}
|
|
144
|
+
.vfhash{display:flex;gap:10px;font-size:12px;color:#6b7280;align-items:center;margin:2px 0}
|
|
145
|
+
.vfhash span{width:84px;flex-shrink:0}.vfhash code{font-family:ui-monospace,Menlo,monospace;color:#0b0b0f;background:rgba(0,0,0,.05);padding:1px 6px;border-radius:6px}
|
|
146
|
+
.vfwhy{font-size:12px;color:#4b5563;line-height:1.5;margin-top:9px}
|
|
147
|
+
.vfr{display:flex;justify-content:space-between;gap:12px;padding:8px 2px;border-top:1px solid #f3f3f5;font-size:12.5px}
|
|
148
|
+
.vfk{color:#8b8f98}.vfv{color:#33333b;text-align:right}.vfv.mono{font-family:ui-monospace,Menlo,monospace;font-size:11.5px;word-break:break-all}
|
|
149
|
+
.vffoot{font-size:11.5px;color:#8b8f98;line-height:1.5;margin-top:14px;padding-top:12px;border-top:1px solid #f3f3f5}
|
|
150
|
+
/* ── keystone risk (single point of catastrophe) — the scariest, so red-accented ── */
|
|
151
|
+
.keystone{padding:16px 30px;border-bottom:1px solid #eef0f2;background:linear-gradient(180deg,#fff8f9,#fff)}
|
|
152
|
+
.keystone .kshead{font-size:14.5px;color:#0b0b0f}.keystone .kssub{font-size:11.5px;color:#8b8f98;margin:4px 0 12px;line-height:1.55}
|
|
153
|
+
.keystone .ksrow{display:flex;align-items:baseline;gap:10px;padding:8px 0;border-top:1px solid #fbe3e7;font-size:13px;flex-wrap:wrap}
|
|
154
|
+
.keystone .ksf{font-family:ui-monospace,Menlo,monospace;font-weight:680;color:#be123c;flex-shrink:0}
|
|
155
|
+
.keystone .ksmeta{color:#6b7280;font-size:12px}.keystone .ksmeta b{color:#0b0b0f}
|
|
156
|
+
.keystone .ksact{margin-top:11px;font-size:12px;color:#9f1239;background:#fff1f3;border-radius:9px;padding:8px 12px;line-height:1.5}
|
|
157
|
+
.foot-v{cursor:pointer;border-radius:10px;transition:background .15s}.foot-v:hover{background:#f6f7f9}
|
|
158
|
+
.footgo{color:#15803d;font-weight:560}
|
|
122
159
|
.trustbar{display:flex;align-items:center;gap:14px;padding:13px 30px;background:#f0fdf4;border-bottom:1px solid #dcfce7;flex-wrap:wrap}
|
|
123
160
|
.hgauge{display:inline-flex;align-items:center;gap:8px;font-weight:680;color:#15803d;font-size:14px;white-space:nowrap}
|
|
124
161
|
.hdot{width:10px;height:10px;border-radius:50%;background:#16a34a;box-shadow:0 0 0 4px rgba(22,163,74,.16)}
|
|
@@ -334,6 +371,15 @@
|
|
|
334
371
|
</style>
|
|
335
372
|
</head>
|
|
336
373
|
<body>
|
|
374
|
+
<div class="fontpick" role="group" aria-label="Text size">
|
|
375
|
+
<button type="button" data-fs="s" title="Small text">A</button>
|
|
376
|
+
<button type="button" data-fs="m" title="Medium text">A</button>
|
|
377
|
+
<button type="button" data-fs="l" title="Large text">A</button>
|
|
378
|
+
</div>
|
|
379
|
+
<script>/* text-size selector — sets <html> class + remembers the choice */
|
|
380
|
+
(function(){function apply(s){document.documentElement.className=document.documentElement.className.replace(/\bfs-[sml]\b/g,"").trim()+" fs-"+s;document.querySelectorAll(".fontpick button").forEach(function(b){b.setAttribute("aria-pressed",String(b.getAttribute("data-fs")===s));});}
|
|
381
|
+
var cur=(localStorage.getItem("xray-fs")||"s");apply(cur);
|
|
382
|
+
document.querySelectorAll(".fontpick button").forEach(function(b){b.addEventListener("click",function(){var s=b.getAttribute("data-fs");try{localStorage.setItem("xray-fs",s);}catch(e){}apply(s);});});})();</script>
|
|
337
383
|
<!-- grand meteor-impact illustration — moved to the bottom showcase -->
|
|
338
384
|
<div class="comet comet-a" aria-hidden="true" style="display:none">
|
|
339
385
|
<svg viewBox="0 0 360 420" width="360" height="420">
|
package/public/report.html
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<script>/* apply saved text size before paint (no flash); persists across browser restarts */
|
|
7
|
+
(function(){try{var s=localStorage.getItem("xray-fs")||"s";document.documentElement.className=(document.documentElement.className+" fs-"+s).trim();}catch(e){}})();</script>
|
|
6
8
|
<title>Mneme · Repo X-Ray</title>
|
|
7
9
|
<link rel="icon" href="/favicon.svg" />
|
|
8
10
|
<!--OGMETA-->
|
|
@@ -72,6 +74,41 @@
|
|
|
72
74
|
.blast .blp{display:flex;gap:6px;flex-wrap:wrap}
|
|
73
75
|
.blast .blpill{font-size:11.5px;background:#eef0ff;color:#3a3df0;border-radius:20px;padding:2px 9px;font-family:ui-monospace,Menlo,monospace}
|
|
74
76
|
.blast .blpill.hidden{background:#fff1f3;color:#be123c}
|
|
77
|
+
/* ── text size (3 standard sizes, persisted) — zoom scales the whole page proportionally ── */
|
|
78
|
+
html.fs-m{zoom:1.12}html.fs-l{zoom:1.26}
|
|
79
|
+
.fontpick{position:fixed;top:14px;right:14px;z-index:60;display:flex;gap:2px;align-items:center;background:rgba(255,255,255,.82);backdrop-filter:saturate(1.6) blur(10px);-webkit-backdrop-filter:saturate(1.6) blur(10px);border:1px solid #ececef;border-radius:999px;padding:3px;box-shadow:0 1px 2px rgba(11,11,20,.05)}
|
|
80
|
+
.fontpick button{border:0;background:transparent;color:#8b8f98;cursor:pointer;border-radius:999px;width:30px;height:28px;font-weight:700;line-height:1;display:grid;place-items:center;font-family:inherit;transition:background .15s,color .15s}
|
|
81
|
+
.fontpick button:nth-child(1){font-size:11px}.fontpick button:nth-child(2){font-size:13px}.fontpick button:nth-child(3){font-size:16px}
|
|
82
|
+
.fontpick button[aria-pressed="true"]{background:#0b0b0f;color:#fff}
|
|
83
|
+
@media (max-width:640px){.fontpick{top:8px;right:8px}}
|
|
84
|
+
/* ── verify-signature proof modal ── */
|
|
85
|
+
.vfmodal{position:fixed;inset:0;z-index:120;display:none;align-items:center;justify-content:center;background:rgba(11,11,20,.46);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);padding:20px}
|
|
86
|
+
.vfbox{position:relative;width:min(560px,100%);background:#fff;border-radius:22px;padding:30px 30px 22px;box-shadow:0 30px 90px -20px rgba(11,11,20,.5);animation:vfpop .22s cubic-bezier(.2,.8,.2,1)}
|
|
87
|
+
@keyframes vfpop{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
|
|
88
|
+
.vfclose{position:absolute;top:14px;right:14px;border:0;background:#f3f3f5;width:30px;height:30px;border-radius:50%;cursor:pointer;color:#6b7280;font-size:14px}
|
|
89
|
+
.vfhero{display:flex;gap:16px;align-items:flex-start;margin-bottom:18px}
|
|
90
|
+
.vfseal{flex-shrink:0;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-size:28px;font-weight:800;color:#fff}
|
|
91
|
+
.vfbox.ok .vfseal{background:linear-gradient(135deg,#22c55e,#15803d)}.vfbox.bad .vfseal{background:linear-gradient(135deg,#fb7185,#be123c)}
|
|
92
|
+
.vfbig{font-size:21px;font-weight:760;color:#0b0b0f;letter-spacing:-.02em}
|
|
93
|
+
.vfsub{font-size:13px;color:#8b8f98;line-height:1.5;margin-top:3px}
|
|
94
|
+
.vfmatch{border-radius:14px;padding:14px 16px;margin-bottom:14px}
|
|
95
|
+
.vfmatch.y{background:#f0fdf4;border:1px solid #bbf7d0}.vfmatch.n{background:#fff1f3;border:1px solid #fecdd3}
|
|
96
|
+
.vfmatch-h{font-weight:680;font-size:14px;color:#0b0b0f;margin-bottom:8px}
|
|
97
|
+
.vfhash{display:flex;gap:10px;font-size:12px;color:#6b7280;align-items:center;margin:2px 0}
|
|
98
|
+
.vfhash span{width:84px;flex-shrink:0}.vfhash code{font-family:ui-monospace,Menlo,monospace;color:#0b0b0f;background:rgba(0,0,0,.05);padding:1px 6px;border-radius:6px}
|
|
99
|
+
.vfwhy{font-size:12px;color:#4b5563;line-height:1.5;margin-top:9px}
|
|
100
|
+
.vfr{display:flex;justify-content:space-between;gap:12px;padding:8px 2px;border-top:1px solid #f3f3f5;font-size:12.5px}
|
|
101
|
+
.vfk{color:#8b8f98}.vfv{color:#33333b;text-align:right}.vfv.mono{font-family:ui-monospace,Menlo,monospace;font-size:11.5px;word-break:break-all}
|
|
102
|
+
.vffoot{font-size:11.5px;color:#8b8f98;line-height:1.5;margin-top:14px;padding-top:12px;border-top:1px solid #f3f3f5}
|
|
103
|
+
/* ── keystone risk (single point of catastrophe) — the scariest, so red-accented ── */
|
|
104
|
+
.keystone{padding:16px 30px;border-bottom:1px solid #eef0f2;background:linear-gradient(180deg,#fff8f9,#fff)}
|
|
105
|
+
.keystone .kshead{font-size:14.5px;color:#0b0b0f}.keystone .kssub{font-size:11.5px;color:#8b8f98;margin:4px 0 12px;line-height:1.55}
|
|
106
|
+
.keystone .ksrow{display:flex;align-items:baseline;gap:10px;padding:8px 0;border-top:1px solid #fbe3e7;font-size:13px;flex-wrap:wrap}
|
|
107
|
+
.keystone .ksf{font-family:ui-monospace,Menlo,monospace;font-weight:680;color:#be123c;flex-shrink:0}
|
|
108
|
+
.keystone .ksmeta{color:#6b7280;font-size:12px}.keystone .ksmeta b{color:#0b0b0f}
|
|
109
|
+
.keystone .ksact{margin-top:11px;font-size:12px;color:#9f1239;background:#fff1f3;border-radius:9px;padding:8px 12px;line-height:1.5}
|
|
110
|
+
.foot-v{cursor:pointer;border-radius:10px;transition:background .15s}.foot-v:hover{background:#f6f7f9}
|
|
111
|
+
.footgo{color:#15803d;font-weight:560}
|
|
75
112
|
.trustbar{display:flex;align-items:center;gap:14px;padding:13px 30px;background:#f0fdf4;border-bottom:1px solid #dcfce7;flex-wrap:wrap}
|
|
76
113
|
.hgauge{display:inline-flex;align-items:center;gap:8px;font-weight:680;color:#15803d;font-size:14px}
|
|
77
114
|
.hdot{width:10px;height:10px;border-radius:50%;background:#16a34a;box-shadow:0 0 0 4px rgba(22,163,74,.16)}
|
|
@@ -114,6 +151,15 @@
|
|
|
114
151
|
</style>
|
|
115
152
|
</head>
|
|
116
153
|
<body>
|
|
154
|
+
<div class="fontpick" role="group" aria-label="Text size">
|
|
155
|
+
<button type="button" data-fs="s" title="Small text">A</button>
|
|
156
|
+
<button type="button" data-fs="m" title="Medium text">A</button>
|
|
157
|
+
<button type="button" data-fs="l" title="Large text">A</button>
|
|
158
|
+
</div>
|
|
159
|
+
<script>/* text-size selector — sets <html> class + remembers the choice */
|
|
160
|
+
(function(){function apply(s){document.documentElement.className=document.documentElement.className.replace(/\bfs-[sml]\b/g,"").trim()+" fs-"+s;document.querySelectorAll(".fontpick button").forEach(function(b){b.setAttribute("aria-pressed",String(b.getAttribute("data-fs")===s));});}
|
|
161
|
+
var cur=(localStorage.getItem("xray-fs")||"s");apply(cur);
|
|
162
|
+
document.querySelectorAll(".fontpick button").forEach(function(b){b.addEventListener("click",function(){var s=b.getAttribute("data-fs");try{localStorage.setItem("xray-fs",s);}catch(e){}apply(s);});});})();</script>
|
|
117
163
|
<div class="wrap">
|
|
118
164
|
<div class="nav"><span class="mark">Mneme · Repo X-Ray</span><a class="home" href="/">X-ray another repo →</a></div>
|
|
119
165
|
<div id="out"><div class="miss">Loading…</div></div>
|