@cstart/coldstart 2.2.18 → 2.3.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.
Files changed (48) hide show
  1. package/README.md +19 -0
  2. package/dist/cli.d.ts +9 -0
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +44 -1
  5. package/dist/cli.js.map +1 -1
  6. package/dist/graph/dump.d.ts +63 -0
  7. package/dist/graph/dump.d.ts.map +1 -0
  8. package/dist/graph/dump.js +183 -0
  9. package/dist/graph/dump.js.map +1 -0
  10. package/dist/graph/view-template.d.ts +10 -0
  11. package/dist/graph/view-template.d.ts.map +1 -0
  12. package/dist/graph/view-template.js +10 -0
  13. package/dist/graph/view-template.js.map +1 -0
  14. package/dist/graph/view.d.ts +20 -0
  15. package/dist/graph/view.d.ts.map +1 -0
  16. package/dist/graph/view.js +99 -0
  17. package/dist/graph/view.js.map +1 -0
  18. package/dist/index-manager.d.ts +16 -0
  19. package/dist/index-manager.d.ts.map +1 -1
  20. package/dist/index-manager.js +50 -0
  21. package/dist/index-manager.js.map +1 -1
  22. package/dist/index.js +8 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/indexer/cochange.d.ts +65 -0
  25. package/dist/indexer/cochange.d.ts.map +1 -0
  26. package/dist/indexer/cochange.js +237 -0
  27. package/dist/indexer/cochange.js.map +1 -0
  28. package/dist/kb/view-template.d.ts +1 -1
  29. package/dist/kb/view-template.d.ts.map +1 -1
  30. package/dist/kb/view-template.js +1 -1
  31. package/dist/kb/view-template.js.map +1 -1
  32. package/dist/kb/view.d.ts +1 -0
  33. package/dist/kb/view.d.ts.map +1 -1
  34. package/dist/kb/view.js +51 -1
  35. package/dist/kb/view.js.map +1 -1
  36. package/dist/server/mcp.d.ts.map +1 -1
  37. package/dist/server/mcp.js +10 -4
  38. package/dist/server/mcp.js.map +1 -1
  39. package/dist/server/tools.d.ts +6 -1
  40. package/dist/server/tools.d.ts.map +1 -1
  41. package/dist/server/tools.js +63 -3
  42. package/dist/server/tools.js.map +1 -1
  43. package/dist/status.d.ts.map +1 -1
  44. package/dist/status.js +8 -0
  45. package/dist/status.js.map +1 -1
  46. package/package.json +1 -1
  47. package/templates/coldstart.cli.md +2 -0
  48. package/templates/coldstart.mcp.md +2 -0
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Embedded single-file codebase graph viewer (client). GENERATED from
3
+ * scripts/graph-viewer/sphere.template.html by
4
+ * scripts/graph-viewer/build-template.mjs — do not hand-edit; edit the HTML and
5
+ * re-run that script. Two placeholders are substituted by `renderGraphHtml`:
6
+ * `__TITLE__` (the tab title) and `__DATA_JSON__` (the baked graph payload).
7
+ * Shipped as a string because tsc does not copy non-.ts assets into dist.
8
+ */
9
+ export const GRAPH_TEMPLATE = "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\n<title>__TITLE__</title>\n<style>\n :root{\n --ink:#05070c;\n --panel:rgba(10,14,23,.84);\n --line:rgba(140,160,200,.16);\n --fg:#e8ecf5;\n --fg-dim:#8b97b0;\n --fg-faint:#5a6480;\n --accent:#ffd479;\n --mono:ui-monospace,SFMono-Regular,\"SF Mono\",Menlo,Consolas,monospace;\n --sans:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,sans-serif;\n }\n *{box-sizing:border-box}\n html,body{height:100%}\n body{\n margin:0;background:var(--ink);color:var(--fg);\n font-family:var(--sans);overflow:hidden;-webkit-font-smoothing:antialiased;\n }\n canvas{display:block;position:fixed;inset:0;cursor:grab}\n canvas.dragging{cursor:grabbing}\n canvas.pointing{cursor:pointer}\n\n .panel{\n position:fixed;background:var(--panel);backdrop-filter:blur(14px);\n border:1px solid var(--line);border-radius:10px;\n }\n\n #head{top:18px;left:18px;padding:14px 16px;min-width:236px}\n #home{\n display:inline-block;margin:0 0 9px;font-size:11px;letter-spacing:.03em;\n color:var(--fg-faint);text-decoration:none;\n }\n #home:hover{color:var(--accent)}\n #head h1{\n margin:0 0 2px;font-size:11px;font-weight:600;letter-spacing:.14em;\n text-transform:uppercase;color:var(--fg-dim);\n }\n #repo{\n font-family:var(--mono);font-size:19px;color:var(--fg);background:none;\n border:none;padding:0;margin:0 0 10px;cursor:pointer;display:block;\n }\n #repo:hover{color:var(--accent)}\n #repo::after{content:\" ⇄\";font-size:12px;color:var(--fg-faint)}\n .stat{display:flex;justify-content:space-between;gap:18px;font-size:12px;line-height:1.75}\n .stat b{font-family:var(--mono);font-weight:500;font-variant-numeric:tabular-nums}\n .stat span{color:var(--fg-dim)}\n .stat.total b{font-size:15px}\n\n #legend{\n top:18px;right:18px;padding:12px 14px;width:212px;\n max-height:calc(100vh - 36px);overflow-y:auto;\n }\n #legend h2{\n margin:0 0 8px;font-size:10px;font-weight:600;letter-spacing:.14em;\n text-transform:uppercase;color:var(--fg-dim);\n }\n .cl{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:11.5px;cursor:pointer;color:var(--fg-dim)}\n .cl:hover,.cl.on{color:var(--fg)}\n .cl .dot{width:8px;height:8px;border-radius:50%;flex:none}\n .cl .nm{font-family:var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;text-align:left}\n .cl .ct{margin-left:auto;font-family:var(--mono);font-size:10.5px;color:var(--fg-faint)}\n\n #search{top:18px;left:50%;transform:translateX(-50%);width:min(420px,50vw);padding:0}\n #q{width:100%;background:none;border:none;outline:none;color:var(--fg);font-family:var(--mono);font-size:13px;padding:11px 14px}\n #q::placeholder{color:var(--fg-faint)}\n #hits{max-height:46vh;overflow-y:auto;border-top:1px solid var(--line)}\n #hits:empty{display:none}\n .hit{padding:7px 14px;cursor:pointer;font-size:12px;display:flex;align-items:baseline;gap:8px}\n .hit:hover{background:rgba(255,212,121,.1)}\n .hit b{font-family:var(--mono);font-weight:500}\n .hit i{font-style:normal;color:var(--fg-faint);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n\n /* ---- map-mode chrome ---- */\n #mapbar{top:18px;left:18px;padding:13px 15px;width:340px;display:none}\n body.map #mapbar{display:block}\n body.map #head,body.map #legend{display:none}\n #crumb{font-size:11px;color:var(--fg-faint);margin-bottom:9px;line-height:1.7}\n #crumb b{color:var(--fg-dim);font-family:var(--mono);font-weight:500;cursor:pointer}\n #crumb b:hover{color:var(--accent)}\n .who{font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--fg-faint);margin-bottom:3px}\n #mapfile{font-family:var(--mono);font-size:15px;word-break:break-all;color:var(--accent)}\n #mappath{font-family:var(--mono);font-size:11px;color:var(--fg-faint);word-break:break-all}\n #expblock{margin-top:11px;padding-top:10px;border-top:1px solid var(--line);display:none}\n #expblock.on{display:block}\n #expfile{font-family:var(--mono);font-size:13.5px;word-break:break-all;color:#8fd3ff}\n #exppath{font-family:var(--mono);font-size:11px;color:var(--fg-faint);word-break:break-all}\n #rels{border-top:1px solid var(--line);padding-top:9px;margin-top:11px}\n .rel{display:flex;gap:8px;align-items:center;font-size:11.5px;padding:2.5px 0}\n .rel .sw{width:15px;height:2px;border-radius:2px;flex:none}\n .rel span{color:var(--fg-dim)}\n .rel b{margin-left:auto;font-family:var(--mono);font-weight:500;font-variant-numeric:tabular-nums}\n #back{\n margin-top:12px;width:100%;padding:7px;border-radius:7px;cursor:pointer;\n background:rgba(255,212,121,.1);border:1px solid rgba(255,212,121,.3);\n color:var(--accent);font-family:var(--mono);font-size:11.5px;\n }\n #back:hover{background:rgba(255,212,121,.18)}\n\n #hint{\n position:fixed;bottom:18px;left:50%;transform:translateX(-50%);\n font-size:11px;color:var(--fg-faint);pointer-events:none;text-align:center;\n }\n #tip{\n position:fixed;pointer-events:none;background:rgba(5,7,12,.94);\n border:1px solid var(--line);border-radius:5px;padding:4px 8px;\n font-family:var(--mono);font-size:11px;display:none;z-index:9;white-space:nowrap;\n }\n @media (max-width:900px){#legend{display:none}#search{width:56vw}}\n</style>\n</head>\n<body>\n<canvas id=\"c\"></canvas>\n\n<div class=\"panel\" id=\"head\">\n <!-- Replaced with a link home when this page is generated for the website;\n the CLI leaves it empty, since there is nowhere to go back to. -->\n <!--__HOME_LINK__-->\n <h1>Codebase sphere</h1>\n <button id=\"repo\"></button>\n <div class=\"stat total\"><span>files indexed</span><b id=\"s-files\">—</b></div>\n <div class=\"stat\"><span>relations</span><b id=\"s-rel\">—</b></div>\n <div class=\"stat\"><span>directories</span><b id=\"s-dirs\">—</b></div>\n</div>\n\n<div class=\"panel\" id=\"mapbar\">\n <div id=\"crumb\"></div>\n <div class=\"who\">centre</div>\n <div id=\"mapfile\"></div>\n <div id=\"mappath\"></div>\n <div id=\"expblock\">\n <div class=\"who\">opened</div>\n <div id=\"expfile\"></div>\n <div id=\"exppath\"></div>\n </div>\n <div id=\"rels\"></div>\n <button id=\"back\">← back to the sphere</button>\n</div>\n\n<div class=\"panel\" id=\"search\">\n <input id=\"q\" placeholder=\"search a file…\" autocomplete=\"off\" spellcheck=\"false\">\n <div id=\"hits\"></div>\n</div>\n\n<div class=\"panel\" id=\"legend\"><h2>Directories</h2><div id=\"cls\"></div></div>\n\n<div id=\"hint\"></div>\n<div id=\"tip\"></div>\n\n<script>\nconst DATA = __DATA_JSON__;\nconst TAU = Math.PI * 2;\nconst GOLDEN = Math.PI * (3 - Math.sqrt(5));\n\n// Relation vocabulary. Colour is semantic ONLY in map mode, where the name is\n// written next to the line anyway — the globe is deliberately polychrome.\nconst REL = [\n { name:'imports', rev:'imported by', hex:'#7ab2ff', col:[122,178,255] },\n { name:'calls', rev:'called by', hex:'#c39cff', col:[195,156,255] },\n { name:'edited together', rev:'edited together', hex:'#ff9d6e', col:[255,157,110] },\n { name:'same note', rev:'same note', hex:'#8fe9a8', col:[143,233,168] },\n];\n\n/**\n * Palette sets. White is deliberately absent from both: it is the brightest\n * value on a dark ground, so it out-shouts every hue regardless of which\n * directory happens to receive it — and the map view already spends white on\n * hover and labels. A colour used for interaction should never also encode data.\n *\n * Lightness is hand-compensated per hue, not held constant: at equal HSL\n * lightness yellow reads far brighter than blue, which makes a sphere look\n * unevenly lit. These are tuned to sit at roughly the same perceived weight.\n */\nconst PALETTES = {\n // adjacent hues in path order — the sphere reads as one continuous object\n aurora: [\n { h: 265, s: 0.70, l: 0.70 }, // violet\n { h: 218, s: 0.88, l: 0.64 }, // blue\n { h: 176, s: 0.68, l: 0.53 }, // teal\n { h: 132, s: 0.60, l: 0.57 }, // green\n { h: 44, s: 0.92, l: 0.56 }, // amber\n { h: 350, s: 0.86, l: 0.66 }, // rose\n ],\n // far-apart hues in path order — each zone maximally distinct\n jewel: [\n { h: 214, s: 0.90, l: 0.64 }, // blue\n { h: 344, s: 0.86, l: 0.66 }, // rose\n { h: 44, s: 0.94, l: 0.56 }, // amber\n { h: 158, s: 0.64, l: 0.54 }, // emerald\n { h: 282, s: 0.74, l: 0.70 }, // violet\n { h: 14, s: 0.86, l: 0.63 }, // coral\n ],\n};\nlet PALETTE_NAME = 'aurora';\n\nlet M = null;\nlet repoKeys = Object.keys(DATA), repoAt = 0;\nlet mode = 'globe';\nlet fade = 0;\n\nfunction hslToRgb(h, s, l) {\n h = ((h % 360) + 360) % 360 / 360;\n const f = (p, q, t) => {\n if (t < 0) t += 1; if (t > 1) t -= 1;\n if (t < 1/6) return p + (q - p) * 6 * t;\n if (t < 1/2) return q;\n if (t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n };\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s, p = 2 * l - q;\n return [Math.round(f(p,q,h+1/3)*255), Math.round(f(p,q,h)*255), Math.round(f(p,q,h-1/3)*255)];\n}\n\nfunction buildModel(key) {\n const d = DATA[key];\n const n = d.n.length;\n const px = new Float32Array(n), py = new Float32Array(n), pz = new Float32Array(n);\n const cluster = new Int16Array(n), deg = new Int32Array(n);\n for (let i = 0; i < n; i++) { cluster[i] = d.n[i][2]; deg[i] = d.n[i][3]; }\n\n // Equal-area latitude bands: y is uniform on a unit sphere, so a band's\n // share of y IS its share of surface — a directory with twice the files\n // gets twice the territory, with no polar distortion.\n const counts = new Array(d.clusters.length).fill(0);\n for (let i = 0; i < n; i++) counts[cluster[i]]++;\n const bandY = [];\n let acc = 0;\n for (let c = 0; c < d.clusters.length; c++) {\n const y0 = 1 - 2 * (acc / n);\n acc += counts[c];\n bandY.push([y0, 1 - 2 * (acc / n)]);\n }\n\n let seed = 0x9e3779b9;\n const rnd = () => { seed ^= seed<<13; seed^=seed>>>17; seed^=seed<<5; return (seed>>>0)/4294967296; };\n const placed = new Array(d.clusters.length).fill(0);\n const tint = new Float32Array(n);\n for (let i = 0; i < n; i++) {\n const c = cluster[i], j = placed[c]++;\n const t = (j + 0.5) / counts[c];\n const [y0, y1] = bandY[c], gap = y0 - y1;\n const y = y0 - gap * (0.06 + 0.88 * t) - gap * 0.06 * (rnd() - 0.5);\n const r = Math.sqrt(Math.max(0, 1 - y * y));\n const lon = j * GOLDEN + c * 1.7;\n px[i] = r * Math.cos(lon); py[i] = y; pz[i] = r * Math.sin(lon);\n tint[i] = rnd();\n }\n\n // Six named colours on a cycle rather than an even walk of the hue wheel.\n // The walk put most bands in the green-yellow arc and made neighbours differ\n // by only a few degrees; cycling a fixed palette guarantees that adjacent\n // latitude bands are always strongly different.\n const PALETTE = PALETTES[PALETTE_NAME];\n // Contiguous ZONES, not a repeating cycle. Cycling every band scattered the\n // six colours into confetti and threw away the one thing the layout encodes\n // — latitude is the directory. Six blocks of consecutive bands keep the\n // sphere ordered top-to-bottom while still using all six colours.\n const perZone = Math.max(1, Math.ceil(d.clusters.length / PALETTE.length));\n const zoneOf = (c) => Math.min(PALETTE.length - 1, Math.floor(c / perZone));\n // position within the zone, -0.5..0.5, so the four bands sharing a colour\n // still separate from each other\n const stepOf = (c) => (perZone === 1 ? 0 : ((c % perZone) / (perZone - 1)) - 0.5);\n const bandRgb = d.clusters.map((_, i) => {\n const z = PALETTE[zoneOf(i)];\n return hslToRgb(z.h + stepOf(i) * 22, z.s, z.l + stepOf(i) * 0.16);\n });\n const rgb = new Uint8Array(n * 3);\n for (let i = 0; i < n; i++) {\n const base = PALETTE[zoneOf(cluster[i])];\n const step = stepOf(cluster[i]);\n // vary WITHIN the colour so a band has depth but never drifts into the\n // neighbouring band's identity\n const h = base.h + step * 22 + (tint[i] - 0.5) * 10;\n const s = Math.min(1, base.s * (0.88 + tint[i] * 0.24));\n const l = Math.min(0.94, base.l + step * 0.16 + (tint[i] - 0.5) * 0.10 + Math.min(0.07, deg[i] * 0.005));\n const c = hslToRgb(h, s, l);\n rgb[i*3] = c[0]; rgb[i*3+1] = c[1]; rgb[i*3+2] = c[2];\n }\n\n const adj = Array.from({ length: n }, () => []);\n d.e.forEach((e, i) => { adj[e[0]].push(i); adj[e[1]].push(i); });\n\n return {\n key, repo: d.repo, nodes: d.n, n, px, py, pz, cluster, deg, rgb,\n edges: d.e, adj, clusters: d.clusters, counts, bandRgb,\n };\n}\n\n// ---------------------------------------------------------------------------\n// Canvas\n// ---------------------------------------------------------------------------\nconst cvs = document.getElementById('c');\nconst ctx = cvs.getContext('2d', { alpha: false });\nlet W = 0, H = 0, DPR = 1;\nfunction resize() {\n DPR = Math.min(devicePixelRatio || 1, 2);\n W = innerWidth; H = innerHeight;\n cvs.width = W * DPR; cvs.height = H * DPR;\n cvs.style.width = W + 'px'; cvs.style.height = H + 'px';\n ctx.setTransform(DPR, 0, 0, DPR, 0, 0);\n}\naddEventListener('resize', resize);\n\n// ---------------------------------------------------------------------------\n// GLOBE — points only. No chords, no standing labels: the sphere's job is to\n// show the whole repo at once and be beautiful; naming happens on hover.\n// ---------------------------------------------------------------------------\nconst cam = { yaw: 0.6, pitch: -0.25, dist: 3.0 };\nlet hovered = -1, hotCluster = -1, lastInteract = 0;\nlet sxb, syb, szb;\n\nfunction projectGlobe() {\n const cy = Math.cos(cam.yaw), sy = Math.sin(cam.yaw);\n const cp = Math.cos(cam.pitch), sp = Math.sin(cam.pitch);\n const cx = W/2, cyy = H/2;\n // Perspective divides by (dist - z), so the focal length must carry the\n // camera distance or the globe renders as a marble in a large empty frame.\n const R = Math.min(W, H) * 1.06;\n const n = M.n;\n if (!sxb || sxb.length < n) { sxb = new Float32Array(n); syb = new Float32Array(n); szb = new Float32Array(n); }\n for (let i = 0; i < n; i++) {\n const x1 = M.px[i]*cy - M.pz[i]*sy, z1 = M.px[i]*sy + M.pz[i]*cy;\n const y2 = M.py[i]*cp - z1*sp, z2 = M.py[i]*sp + z1*cp;\n const f = R / (cam.dist - z2);\n sxb[i] = cx + x1*f; syb[i] = cyy - y2*f; szb[i] = z2;\n }\n return { cx, cyy, R };\n}\n\nfunction drawGlobe(dt, alpha) {\n if (!dragging && performance.now() - lastInteract > 2200) cam.yaw += 0.035 * dt;\n const P = projectGlobe();\n ctx.globalAlpha = alpha;\n\n const shell = P.R / cam.dist;\n const g = ctx.createRadialGradient(P.cx, P.cyy, shell*0.1, P.cx, P.cyy, shell*1.08);\n g.addColorStop(0, 'rgba(26,36,60,.55)');\n g.addColorStop(0.72, 'rgba(13,19,33,.42)');\n g.addColorStop(1, 'rgba(5,7,12,0)');\n ctx.fillStyle = g;\n ctx.beginPath(); ctx.arc(P.cx, P.cyy, shell*1.08, 0, TAU); ctx.fill();\n\n const order = [];\n for (let i = 0; i < M.n; i++) order.push(i);\n order.sort((a, b) => szb[a] - szb[b]); // painter's algorithm\n for (const i of order) {\n const z = szb[i], front = z > 0;\n const dim = hotCluster >= 0 && M.cluster[i] !== hotCluster;\n // Far-side dots sit BELOW the lit shell, and a saturated colour at middling\n // alpha over that blue-grey composites to olive. Keep them faint enough to\n // read as depth rather than as dirty dots.\n let a = front ? 0.96 : 0.14;\n if (dim) a *= 0.12;\n const rad = (1.6 + Math.min(3.6, Math.sqrt(M.deg[i]) * 0.62)) * (0.72 + 0.42 * ((z+1)/2));\n if (i === hovered) {\n ctx.fillStyle = 'rgba(255,212,121,.25)';\n ctx.beginPath(); ctx.arc(sxb[i], syb[i], rad + 7, 0, TAU); ctx.fill();\n }\n ctx.fillStyle = 'rgba('+M.rgb[i*3]+','+M.rgb[i*3+1]+','+M.rgb[i*3+2]+','+a.toFixed(3)+')';\n ctx.beginPath(); ctx.arc(sxb[i], syb[i], rad, 0, TAU); ctx.fill();\n }\n\n // The ONLY text on the sphere, and only while pointing at something.\n if (hovered >= 0) {\n ctx.font = '500 12px ' + MONO;\n ctx.textBaseline = 'middle'; ctx.textAlign = 'left';\n const label = M.nodes[hovered][0];\n const w = ctx.measureText(label).width;\n const x = sxb[hovered] + 11, y = syb[hovered];\n ctx.fillStyle = 'rgba(5,7,12,.85)';\n ctx.fillRect(x - 4, y - 9, w + 8, 18);\n ctx.fillStyle = '#ffd479';\n ctx.fillText(label, x, y);\n }\n ctx.globalAlpha = 1;\n}\n\n// ---------------------------------------------------------------------------\n// MAP — a sliding two-level window, never a growing tree.\n//\n// centre = the file you came FROM\n// opened = the neighbour you clicked, drawn with ITS own neighbours\n//\n// Click one of the opened node's neighbours and the window slides: opened\n// becomes the centre, and the node just clicked becomes the new opened. So the\n// picture never accumulates hops — it always shows exactly two levels.\n// ---------------------------------------------------------------------------\nconst map = {\n center: -1, opened: -1, nodes: [], links: [], trail: [],\n ring: new Set(), kids: new Set(), radius: 240,\n pan: { x: 0, y: 0 }, zoom: 1, drag: null, hover: -1,\n};\nconst KID_CAP = 20;\n\n/** keep the head and tail — the distinguishing parts of a long filename */\nfunction shortName(s) {\n return s.length <= 34 ? s : s.slice(0, 20) + '…' + s.slice(-12);\n}\n\nfunction relLabel(kind, detail, reversed) {\n if (kind === 1) return reversed ? 'called by' : 'calls ' + (detail || 'a symbol');\n if (kind === 2) return 'edited together' + (detail ? ' · ' + detail : '');\n if (kind === 3) return 'same note' + (detail ? ' · ' + detail : '');\n return reversed ? REL[0].rev : REL[0].name;\n}\n\n/** every distinct neighbour of `id`, with the relations that connect them */\nfunction neighboursOf(id) {\n const byOther = new Map();\n for (const ei of M.adj[id]) {\n const e = M.edges[ei];\n const other = e[0] === id ? e[1] : e[0];\n if (other === id) continue;\n if (!byOther.has(other)) byOther.set(other, []);\n byOther.get(other).push({ kind: e[2], detail: e[4], reversed: e[0] !== id && e[3] === 1 });\n }\n return [...byOther.entries()]\n .map(([other, rels]) => ({ other, rels }))\n .sort((a, b) => Math.min(...a.rels.map((r) => r.kind)) - Math.min(...b.rels.map((r) => r.kind))\n || M.deg[b.other] - M.deg[a.other]);\n}\n\nfunction layoutMap(keep) {\n const prev = new Map(map.nodes.map((n) => [n.id, n]));\n const nodes = [], links = [], ring = new Set(), kids = new Set();\n\n const n1 = neighboursOf(map.center);\n const opened = (map.opened >= 0 && n1.some((nb) => nb.other === map.opened)) ? map.opened : -1;\n map.opened = opened;\n\n if (opened < 0) {\n // ---- RADIAL: one file and its whole neighbourhood ----------------------\n map.spine = false;\n nodes.push({ id: map.center, level: 0, x: 0, y: 0, a: 0 });\n // Ring radius grows with occupancy, or the dots touch and labels overprint.\n const r1 = Math.max(235, n1.length * 34 / TAU);\n map.radius = r1;\n n1.forEach((nb, i) => {\n const a = (i / Math.max(1, n1.length)) * TAU - Math.PI / 2;\n nodes.push({ id: nb.other, level: 1, x: Math.cos(a) * r1, y: Math.sin(a) * r1, a });\n ring.add(nb.other);\n for (const r of nb.rels) links.push({ from: map.center, to: nb.other, ...r, level: 1 });\n });\n map.kidOverflow = 0;\n } else {\n // ---- SPINE: where you came FROM, and what you just opened --------------\n //\n // Fanning the opened node inside the centre's own ring was the ugly part:\n // both levels landed in the same annulus, so every spoke of one crossed\n // every spoke of the other and you could not tell whose neighbour was\n // whose. Giving each node its own half of the screen makes overlap\n // impossible by construction, and the A→B relation gets the middle.\n map.spine = true;\n const others = n1.filter((nb) => nb.other !== opened);\n const otherIds = new Set(others.map((o) => o.other));\n const kidList = neighboursOf(opened)\n .filter((nb) => nb.other !== map.center && !otherIds.has(nb.other));\n const shown = kidList.slice(0, KID_CAP);\n map.kidOverflow = kidList.length - shown.length;\n\n // each side spans a semicircle, so radius comes from PI, not TAU\n const rA = Math.max(200, others.length * 34 / Math.PI);\n const rB = Math.max(200, shown.length * 34 / Math.PI);\n const ax = -Math.max(300, (rA + rB) * 0.30), bx = -ax;\n\n nodes.push({ id: map.center, level: 0, x: ax, y: 0, a: Math.PI });\n nodes.push({ id: opened, level: 0, x: bx, y: 0, a: 0 });\n ring.add(opened);\n for (const r of (n1.find((nb) => nb.other === opened)?.rels ?? [])) {\n links.push({ from: map.center, to: opened, ...r, level: 1, spine: true });\n }\n\n // centre's remaining neighbours fan LEFT, away from the spine\n const AL = Math.PI/2 + 0.22, AH = Math.PI*1.5 - 0.22;\n others.forEach((nb, i) => {\n const t = others.length === 1 ? 0.5 : i / (others.length - 1);\n const a = AL + t * (AH - AL);\n nodes.push({ id: nb.other, level: 1, x: ax + Math.cos(a) * rA, y: Math.sin(a) * rA, a });\n ring.add(nb.other);\n for (const r of nb.rels) links.push({ from: map.center, to: nb.other, ...r, level: 1 });\n });\n\n // opened node's neighbours fan RIGHT\n const BL = -Math.PI/2 + 0.22, BH = Math.PI/2 - 0.22;\n shown.forEach((nb, i) => {\n const t = shown.length === 1 ? 0.5 : i / (shown.length - 1);\n const a = BL + t * (BH - BL);\n nodes.push({ id: nb.other, level: 2, x: bx + Math.cos(a) * rB, y: Math.sin(a) * rB, a });\n kids.add(nb.other);\n for (const r of nb.rels) links.push({ from: opened, to: nb.other, ...r, level: 2 });\n });\n }\n\n // relations between two on-screen nodes that bypass the focus — real, but\n // background, and the main source of the web when everything is drawn\n const on = new Set(nodes.map((nd) => nd.id));\n for (const e of M.edges) {\n if (!on.has(e[0]) || !on.has(e[1])) continue;\n if (links.some((l) => l.kind === e[2] &&\n ((l.from === e[0] && l.to === e[1]) || (l.from === e[1] && l.to === e[0])))) continue;\n links.push({ from: e[0], to: e[1], kind: e[2], detail: e[4], reversed: false, level: 9, extra: true });\n }\n\n for (const nd of nodes) {\n const old = keep && prev.get(nd.id);\n nd.cx = old ? old.cx : nd.x * 0.4;\n nd.cy = old ? old.cy : nd.y * 0.4;\n }\n map.nodes = nodes; map.links = links; map.ring = ring; map.kids = kids;\n\n let minX = 1e9, maxX = -1e9, minY = 1e9, maxY = -1e9;\n for (const nd of nodes) {\n minX = Math.min(minX, nd.x); maxX = Math.max(maxX, nd.x);\n minY = Math.min(minY, nd.y); maxY = Math.max(maxY, nd.y);\n }\n // Fit against the space actually available, not the raw window: the info\n // panel owns the left ~380px, and every node hangs a filename outside the\n // node bounding box, so both fans clipped without this allowance.\n const PAD_L = 380, PAD_R = 70, LABEL = 215;\n const availW = W - PAD_L - PAD_R, availH = H - 150;\n map.zoom = Math.min(1.15, availW / (maxX - minX + LABEL * 2), availH / (maxY - minY + 130));\n map.pan = {\n x: -(minX + maxX) / 2 + ((PAD_L - PAD_R) / 2) / map.zoom,\n y: -(minY + maxY) / 2,\n };\n}\n\nfunction openFile(id) {\n if (mode === 'globe') { map.trail = []; map.opened = -1; fade = 1; }\n mode = 'map';\n document.body.classList.add('map');\n map.center = id; map.opened = -1;\n layoutMap(true); renderMapPanel();\n hint('click a neighbour to open its connections · click one of those to slide the view along');\n}\n\nfunction exitMap() {\n mode = 'globe'; fade = 1;\n document.body.classList.remove('map');\n map.center = -1; map.opened = -1; map.nodes = []; map.links = [];\n hint('drag to rotate · scroll to zoom · hover for a name · click any file to explore it');\n}\n\n/** the whole navigation rule, in one place */\nfunction mapClick(id) {\n if (id < 0 || id === map.center) { map.opened = -1; layoutMap(true); renderMapPanel(); return; }\n if (map.ring.has(id)) {\n // a neighbour of the centre: open it in place (or drill in if already open)\n if (map.opened === id) { map.trail.push(map.center); map.center = id; map.opened = -1; }\n else map.opened = id;\n } else if (map.kids.has(id)) {\n // a neighbour of the opened node: slide the window along by one\n map.trail.push(map.center);\n map.center = map.opened;\n map.opened = id;\n } else return;\n layoutMap(true); renderMapPanel();\n}\n\nfunction mapScreen(nd) {\n return [W/2 + (nd.cx + map.pan.x) * map.zoom, H/2 + (nd.cy + map.pan.y) * map.zoom];\n}\n\nfunction drawMap(dt, alpha) {\n ctx.globalAlpha = alpha;\n const k = Math.min(1, dt * 7);\n for (const nd of map.nodes) { nd.cx += (nd.x - nd.cx) * k; nd.cy += (nd.y - nd.cy) * k; }\n\n const cx0 = W/2 + map.pan.x * map.zoom, cy0 = H/2 + map.pan.y * map.zoom;\n if (!map.spine) {\n ctx.strokeStyle = 'rgba(140,160,200,.09)';\n ctx.lineWidth = 1;\n ctx.beginPath(); ctx.arc(cx0, cy0, map.radius * map.zoom, 0, TAU); ctx.stroke();\n }\n\n const pos = new Map(map.nodes.map((nd) => [nd.id, mapScreen(nd)]));\n const hov = map.hover;\n\n for (const l of map.links) {\n const A = pos.get(l.from), B = pos.get(l.to);\n if (!A || !B) continue;\n const touches = hov >= 0 && (l.from === hov || l.to === hov);\n // With two focus nodes on screen the bypass links are what turn the\n // picture into a web — keep them for hover only.\n if (l.extra && map.spine && !touches) continue;\n const R = REL[l.kind];\n const base = l.extra ? 0.10 : (l.spine ? 0.9 : (l.level === 2 ? 0.7 : 0.5));\n ctx.strokeStyle = 'rgba('+R.col[0]+','+R.col[1]+','+R.col[2]+','+(touches ? 0.95 : base)+')';\n ctx.lineWidth = touches ? 2 : (l.extra ? 1 : (l.spine ? 2 : 1.4));\n const dx = B[0]-A[0], dy = B[1]-A[1];\n const mx = (A[0]+B[0])/2, my = (A[1]+B[1])/2;\n const bow = (l.kind - 1.5) * 7; // keeps parallel relations apart\n ctx.beginPath();\n ctx.moveTo(A[0], A[1]);\n ctx.quadraticCurveTo(mx - dy*0.008*bow, my + dx*0.008*bow, B[0], B[1]);\n ctx.stroke();\n\n if (l.kind <= 1 && !l.extra) {\n const t = 0.62, ax = A[0] + dx*t, ay = A[1] + dy*t;\n const ang = Math.atan2(dy, dx) + (l.reversed ? Math.PI : 0);\n ctx.fillStyle = ctx.strokeStyle;\n ctx.beginPath();\n ctx.moveTo(ax + Math.cos(ang)*5, ay + Math.sin(ang)*5);\n ctx.lineTo(ax + Math.cos(ang+2.5)*5, ay + Math.sin(ang+2.5)*5);\n ctx.lineTo(ax + Math.cos(ang-2.5)*5, ay + Math.sin(ang-2.5)*5);\n ctx.fill();\n }\n }\n\n // Filenames claim their boxes FIRST; relation labels route around them.\n ctx.font = '500 11.5px ' + MONO;\n const boxes = [], dots = [], nodeLabels = [];\n for (const nd of map.nodes) {\n const [x, y] = pos.get(nd.id);\n const isC = nd.id === map.center, isO = nd.id === map.opened;\n const r = isC ? 13 : (isO ? 10 : (nd.level === 1 ? 7.5 : 5.5));\n // Dots are drawn AFTER the relation labels, so they must be reserved too —\n // but in their OWN list. Putting them in `boxes` made every node's label\n // collide with its own dot and vanish.\n dots.push([x - r - 2, y - r - 2, r*2 + 4, r*2 + 4]);\n const label = shortName(M.nodes[nd.id][0]);\n const w = ctx.measureText(label).width;\n // On the spine both focus nodes sit in open space, so their labels go\n // straight above the dot — hanging them sideways puts them into the fan.\n const above = map.spine && (isC || isO);\n const right = isC ? true : (x >= cx0);\n const lx = above ? x : (right ? x + r + 6 : x - r - 6 - w);\n const box = above ? [x - w/2 - 3, y - r - 23, w + 6, 16] : [lx - 3, y - 8, w + 6, 16];\n const clash = boxes.some((b) => box[0] < b[0]+b[2]+3 && b[0] < box[0]+box[2]+3 &&\n box[1] < b[1]+b[3]+2 && b[1] < box[1]+box[3]+2);\n if (clash && !isC && !isO && nd.id !== hov) { nodeLabels.push({ nd, x, y, r, skip: true }); continue; }\n boxes.push(box);\n nodeLabels.push({ nd, x, y, r, label, lx, box, above });\n }\n\n ctx.font = '500 10px ' + SANS;\n ctx.textAlign = 'center'; ctx.textBaseline = 'middle';\n for (const l of map.links) {\n const show = !l.extra && (l.level === 1 || l.level === 2 ||\n (hov >= 0 && (l.from === hov || l.to === hov)));\n if (!show) continue;\n const A = pos.get(l.from), B = pos.get(l.to);\n if (!A || !B) continue;\n const txt = relLabel(l.kind, l.detail, l.reversed);\n const w = ctx.measureText(txt).width;\n let placed = null;\n for (const t of [0.55, 0.66, 0.44, 0.75]) {\n const x = A[0] + (B[0]-A[0])*t, y = A[1] + (B[1]-A[1])*t;\n const box = [x - w/2 - 4, y - 8, w + 8, 16];\n const hit = (b) => box[0] < b[0]+b[2]+3 && b[0] < box[0]+box[2]+3 &&\n box[1] < b[1]+b[3]+2 && b[1] < box[1]+box[3]+2;\n if (!boxes.some(hit) && !dots.some(hit)) { placed = { x, y, box }; break; }\n }\n if (!placed) continue;\n boxes.push(placed.box);\n const R = REL[l.kind];\n ctx.fillStyle = 'rgba(5,7,12,.9)';\n ctx.fillRect(placed.box[0], placed.box[1], placed.box[2], placed.box[3]);\n ctx.fillStyle = 'rgba('+R.col[0]+','+R.col[1]+','+R.col[2]+',.95)';\n ctx.fillText(txt, placed.x, placed.y);\n }\n\n ctx.font = '500 11.5px ' + MONO;\n for (const nl of nodeLabels) {\n const { nd, x, y, r } = nl;\n const isC = nd.id === map.center, isO = nd.id === map.opened;\n if (isC || isO || nd.id === hov) {\n ctx.fillStyle = isO ? 'rgba(143,211,255,.2)' : 'rgba(255,212,121,.2)';\n ctx.beginPath(); ctx.arc(x, y, r + 9, 0, TAU); ctx.fill();\n }\n ctx.fillStyle = 'rgb('+M.rgb[nd.id*3]+','+M.rgb[nd.id*3+1]+','+M.rgb[nd.id*3+2]+')';\n ctx.beginPath(); ctx.arc(x, y, r, 0, TAU); ctx.fill();\n if (isC || isO) {\n ctx.strokeStyle = isO ? '#8fd3ff' : '#ffd479';\n ctx.lineWidth = 2; ctx.stroke();\n }\n if (nl.skip) continue;\n ctx.textAlign = nl.above ? 'center' : 'left';\n ctx.fillStyle = 'rgba(5,7,12,.85)';\n ctx.fillRect(nl.box[0], nl.box[1], nl.box[2], nl.box[3]);\n ctx.fillStyle = isC ? '#ffd479' : (isO ? '#8fd3ff' : (nd.id === hov ? '#fff' : 'rgba(232,236,245,.9)'));\n ctx.fillText(nl.label, nl.lx, nl.above ? y - r - 15 : y);\n }\n\n if (map.kidOverflow > 0 && map.opened >= 0) {\n const p = pos.get(map.opened);\n ctx.font = '500 10px ' + SANS;\n ctx.textAlign = 'center';\n ctx.fillStyle = 'rgba(139,151,176,.8)';\n ctx.fillText('+' + map.kidOverflow + ' more', p[0], p[1] + 26);\n }\n ctx.globalAlpha = 1;\n}\n\nfunction mapHit(mx, my) {\n let best = -1, bestD = 18*18;\n for (const nd of map.nodes) {\n const [x, y] = mapScreen(nd);\n const d = (x-mx)*(x-mx) + (y-my)*(y-my);\n if (d < bestD) { bestD = d; best = nd.id; }\n }\n return best;\n}\n\n// ---------------------------------------------------------------------------\n// Input\n// ---------------------------------------------------------------------------\nlet dragging = false, lastX = 0, lastY = 0, moved = 0;\nconst tip = document.getElementById('tip');\n\ncvs.addEventListener('pointerdown', (e) => {\n dragging = true; moved = 0; lastX = e.clientX; lastY = e.clientY;\n cvs.setPointerCapture(e.pointerId); cvs.classList.add('dragging');\n if (mode === 'map') {\n const id = mapHit(e.clientX, e.clientY);\n map.drag = id >= 0 ? map.nodes.find((n) => n.id === id) : null;\n }\n});\ncvs.addEventListener('pointermove', (e) => {\n const dx = e.clientX - lastX, dy = e.clientY - lastY;\n if (dragging) {\n moved += Math.abs(dx) + Math.abs(dy);\n if (mode === 'globe') {\n cam.yaw -= dx * 0.006;\n cam.pitch = Math.max(-1.45, Math.min(1.45, cam.pitch + dy * 0.006));\n } else if (map.drag) {\n map.drag.x += dx / map.zoom; map.drag.y += dy / map.zoom;\n map.drag.cx += dx / map.zoom; map.drag.cy += dy / map.zoom;\n } else {\n map.pan.x += dx / map.zoom; map.pan.y += dy / map.zoom;\n }\n lastX = e.clientX; lastY = e.clientY; lastInteract = performance.now();\n return;\n }\n if (mode === 'globe') {\n let best = -1, bestD = 13*13;\n for (let i = 0; i < M.n; i++) {\n if (szb[i] < -0.05) continue; // never grab a back-face node\n const d = (sxb[i]-e.clientX)**2 + (syb[i]-e.clientY)**2;\n if (d < bestD) { bestD = d; best = i; }\n }\n hovered = best;\n cvs.classList.toggle('pointing', best >= 0);\n tip.style.display = 'none'; // the name is drawn on canvas\n } else {\n map.hover = mapHit(e.clientX, e.clientY);\n cvs.classList.toggle('pointing', map.hover >= 0);\n if (map.hover >= 0) {\n tip.style.display = 'block';\n tip.textContent = M.nodes[map.hover][1];\n tip.style.left = (e.clientX + 14) + 'px'; tip.style.top = (e.clientY + 14) + 'px';\n } else tip.style.display = 'none';\n }\n});\ncvs.addEventListener('pointerup', (e) => {\n const wasDrag = moved >= 5;\n dragging = false; cvs.classList.remove('dragging'); map.drag = null;\n if (!wasDrag) {\n if (mode === 'globe') { if (hovered >= 0) openFile(hovered); }\n else mapClick(mapHit(e.clientX, e.clientY));\n }\n lastInteract = performance.now();\n});\ncvs.addEventListener('wheel', (e) => {\n e.preventDefault();\n if (mode === 'globe') cam.dist = Math.max(1.35, Math.min(6, cam.dist + e.deltaY * 0.0022));\n else map.zoom = Math.max(0.25, Math.min(2.6, map.zoom * (1 - e.deltaY * 0.0012)));\n lastInteract = performance.now();\n}, { passive: false });\n\n// ---------------------------------------------------------------------------\n// Panels\n// ---------------------------------------------------------------------------\nlet MONO = 'monospace', SANS = 'sans-serif';\nfunction hint(t) { document.getElementById('hint').textContent = t; }\n\nfunction renderHead() {\n document.getElementById('repo').textContent = M.repo;\n document.getElementById('s-files').textContent = M.n.toLocaleString();\n document.getElementById('s-rel').textContent = M.edges.length.toLocaleString();\n document.getElementById('s-dirs').textContent = M.clusters.length;\n const box = document.getElementById('cls');\n box.innerHTML = '';\n M.clusters.forEach((name, c) => {\n const [r, g, b] = M.bandRgb[c];\n const el = document.createElement('div');\n el.className = 'cl' + (hotCluster === c ? ' on' : '');\n el.innerHTML = '<i class=\"dot\" style=\"background:rgb('+r+','+g+','+b+')\"></i>' +\n '<span class=\"nm\">' + name + '</span><i class=\"ct\">' + M.counts[c] + '</i>';\n el.onclick = () => { hotCluster = hotCluster === c ? -1 : c; renderHead(); };\n box.appendChild(el);\n });\n}\n\nfunction renderMapPanel() {\n document.getElementById('mapfile').textContent = M.nodes[map.center][0];\n document.getElementById('mappath').textContent = M.nodes[map.center][1];\n\n const exp = document.getElementById('expblock');\n if (map.opened >= 0) {\n exp.classList.add('on');\n document.getElementById('expfile').textContent = M.nodes[map.opened][0];\n document.getElementById('exppath').textContent = M.nodes[map.opened][1];\n } else exp.classList.remove('on');\n\n const crumb = document.getElementById('crumb');\n crumb.innerHTML = '';\n map.trail.slice(-5).forEach((id) => {\n const b = document.createElement('b');\n b.textContent = M.nodes[id][0];\n b.onclick = () => {\n map.trail = map.trail.slice(0, map.trail.indexOf(id));\n map.center = id; map.opened = -1;\n layoutMap(true); renderMapPanel();\n };\n crumb.appendChild(b);\n crumb.appendChild(document.createTextNode(' › '));\n });\n\n const who = map.opened >= 0 ? map.opened : map.center;\n const counts = [0, 0, 0, 0];\n for (const ei of M.adj[who]) counts[M.edges[ei][2]]++;\n const rels = document.getElementById('rels');\n rels.innerHTML = '';\n REL.forEach((R, i) => {\n const el = document.createElement('div');\n el.className = 'rel';\n el.innerHTML = '<i class=\"sw\" style=\"background:' + (counts[i] ? R.hex : '#5a6480') + '\"></i>' +\n '<span>' + R.name + '</span><b>' + counts[i] + '</b>';\n rels.appendChild(el);\n });\n if (!counts.reduce((a, b) => a + b, 0)) {\n const el = document.createElement('div');\n el.className = 'rel';\n el.innerHTML = '<span style=\"color:#5a6480\">no resolved connections — isolated in the index</span>';\n rels.appendChild(el);\n }\n}\n\ndocument.getElementById('back').onclick = exitMap;\ndocument.getElementById('repo').onclick = () => { repoAt = (repoAt + 1) % repoKeys.length; load(repoKeys[repoAt]); };\n\nconst q = document.getElementById('q'), hits = document.getElementById('hits');\nq.addEventListener('input', () => {\n const v = q.value.trim().toLowerCase();\n hits.innerHTML = '';\n if (!v) return;\n const out = [];\n for (let i = 0; i < M.n; i++) {\n const f = M.nodes[i][0].toLowerCase(), p = M.nodes[i][1].toLowerCase();\n let s = -1;\n if (f.startsWith(v)) s = 0; else if (f.includes(v)) s = 1; else if (p.includes(v)) s = 2;\n if (s >= 0) out.push([s, -M.deg[i], i]);\n }\n out.sort((a, b) => a[0] - b[0] || a[1] - b[1]);\n for (const [, , i] of out.slice(0, 9)) {\n const el = document.createElement('div');\n el.className = 'hit';\n el.innerHTML = '<b>' + M.nodes[i][0] + '</b><i>' + M.nodes[i][1] + '</i>';\n el.onclick = () => { openFile(i); q.value = ''; hits.innerHTML = ''; q.blur(); };\n hits.appendChild(el);\n }\n});\nq.addEventListener('keydown', (e) => {\n if (e.key === 'Enter') { const f = hits.querySelector('.hit'); if (f) f.click(); }\n if (e.key === 'Escape') { q.value = ''; hits.innerHTML = ''; q.blur(); }\n});\naddEventListener('keydown', (e) => { if (e.key === 'Escape' && mode === 'map') exitMap(); });\n\nfunction load(key) {\n M = buildModel(key);\n hovered = -1; hotCluster = -1;\n cam.yaw = 0.6; cam.pitch = -0.25; cam.dist = 3.0;\n exitMap();\n q.value = ''; hits.innerHTML = '';\n renderHead();\n // Seed the projection buffers for the NEW model: the hit-test reads them,\n // and until the first frame runs they still describe the old repo.\n projectGlobe();\n}\n\nfunction setPalette(name) { PALETTE_NAME = name; load(M.key); }\n\nconst cs = getComputedStyle(document.body);\nMONO = cs.getPropertyValue('--mono'); SANS = cs.getPropertyValue('--sans');\nresize();\nload(repoKeys[repoAt]);\n\nlet prev = performance.now();\n(function loop(now) {\n const dt = Math.min(0.05, (now - prev) / 1000);\n prev = now;\n ctx.fillStyle = '#05070c';\n ctx.fillRect(0, 0, W, H);\n fade = Math.max(0, fade - dt * 3.2);\n const a = 1 - fade;\n if (mode === 'globe') drawGlobe(dt, a); else drawMap(dt, a);\n requestAnimationFrame(loop);\n})(performance.now());\n</script>\n</body>\n</html>\n";
10
+ //# sourceMappingURL=view-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view-template.js","sourceRoot":"","sources":["../../src/graph/view-template.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,wpsCAAwpsC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { CodebaseIndex } from '../types.js';
2
+ import { type GraphStats } from './dump.js';
3
+ /** Bake the payload into the template. `</` inside the JSON is escaped so a
4
+ * path or note title containing `</script>` cannot close the script block. */
5
+ export declare function renderGraphHtml(template: string, repo: string, data: unknown): string;
6
+ export interface GraphViewOptions {
7
+ /** Where to write. Defaults to `<root>/.coldstart/graph.html`. */
8
+ out?: string;
9
+ /** Open in the browser after writing (default true). */
10
+ open?: boolean;
11
+ /** Override the cache dir the co-change sidecar is read from (tests). */
12
+ cacheDir?: string;
13
+ }
14
+ export declare function defaultGraphPath(root: string): string;
15
+ /** Returns the written path plus the stats worth printing. */
16
+ export declare function graphView(root: string, index: CodebaseIndex, opts?: GraphViewOptions): {
17
+ path: string;
18
+ stats: GraphStats;
19
+ };
20
+ //# sourceMappingURL=view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../src/graph/view.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EAA4C,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AA2BtF;+EAC+E;AAC/E,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAOrF;AAgCD,MAAM,WAAW,gBAAgB;IAC/B,kEAAkE;IAClE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,8DAA8D;AAC9D,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,aAAa,EACpB,IAAI,GAAE,gBAAqB,GAC1B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAcrC"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * `coldstart graph` — generate a single self-contained HTML file that draws the
3
+ * repo's file graph, then open it in the default browser. No server, no build
4
+ * step, no dependencies: the page is HTML + CSS + one canvas script with the
5
+ * payload baked in, so it also works over email, in a gist, or offline.
6
+ *
7
+ * Like `kb view`, this is a one-shot generate-and-open — the snapshot is
8
+ * accurate at generation time; re-run to refresh.
9
+ */
10
+ import { writeFileSync, existsSync, readFileSync, mkdirSync } from 'node:fs';
11
+ import { join, basename, dirname } from 'node:path';
12
+ import { execFile } from 'node:child_process';
13
+ import { loadCoChange } from '../indexer/cochange.js';
14
+ import { loadAll, notebookExists } from '../kb/store.js';
15
+ import { buildGraphPayload } from './dump.js';
16
+ import { GRAPH_TEMPLATE } from './view-template.js';
17
+ /** Notebook notes reduced to "which files does this note join". Absent or
18
+ * unreadable notebook is not an error — the graph just has no note edges. */
19
+ function noteAnchors(root) {
20
+ if (!notebookExists(root))
21
+ return [];
22
+ try {
23
+ const { notes } = loadAll(root);
24
+ const out = [];
25
+ for (const n of notes ?? []) {
26
+ if (n.status && n.status !== 'active')
27
+ continue;
28
+ const paths = [...new Set((n.anchors ?? []).map((a) => a.path).filter(Boolean))];
29
+ if (paths.length < 2)
30
+ continue;
31
+ out.push({ title: n.title ?? n.id, paths });
32
+ }
33
+ return out;
34
+ }
35
+ catch {
36
+ return [];
37
+ }
38
+ }
39
+ function escapeHtml(s) {
40
+ return s.replace(/[&<>"]/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;' })[c]);
41
+ }
42
+ /** Bake the payload into the template. `</` inside the JSON is escaped so a
43
+ * path or note title containing `</script>` cannot close the script block. */
44
+ export function renderGraphHtml(template, repo, data) {
45
+ const json = JSON.stringify(data).replace(/<\//g, '<\\/');
46
+ return template
47
+ .replace('__TITLE__', () => `${escapeHtml(repo)} — codebase graph`)
48
+ // The CLI page stands alone; only the website build fills this in.
49
+ .replace('<!--__HOME_LINK__-->', '')
50
+ .replace('__DATA_JSON__', () => json);
51
+ }
52
+ /** Best-effort open in the OS default browser. Never throws. */
53
+ function openInBrowser(file) {
54
+ // Windows goes through rundll32 rather than `cmd /c start`: cmd re-parses its
55
+ // own command line, so a path containing `&`, `^` or `|` would be interpreted
56
+ // instead of opened. The path here is attacker-influencable in the ordinary
57
+ // sense (it derives from the repo location and from `--out`), and rundll32
58
+ // takes it as a single literal argument with no shell in between.
59
+ const cmd = process.platform === 'darwin' ? { bin: 'open', args: [file] }
60
+ : process.platform === 'win32'
61
+ ? { bin: 'rundll32.exe', args: ['url.dll,FileProtocolHandler', file] }
62
+ : { bin: 'xdg-open', args: [file] };
63
+ try {
64
+ const child = execFile(cmd.bin, cmd.args, { windowsHide: true }, () => { });
65
+ child.unref();
66
+ }
67
+ catch { /* ignore — the path is printed regardless */ }
68
+ }
69
+ /** Keep the generated page out of the user's commits when it lands in the
70
+ * default location. A `--out` elsewhere is the caller's business. */
71
+ function ignoreGraphHtml(dir) {
72
+ const gi = join(dir, '.gitignore');
73
+ try {
74
+ const cur = existsSync(gi) ? readFileSync(gi, 'utf8') : '';
75
+ if (!cur.split('\n').some((l) => l.trim() === 'graph.html')) {
76
+ writeFileSync(gi, (cur && !cur.endsWith('\n') ? cur + '\n' : cur) + 'graph.html\n');
77
+ }
78
+ }
79
+ catch { /* non-fatal */ }
80
+ }
81
+ export function defaultGraphPath(root) {
82
+ return join(root, '.coldstart', 'graph.html');
83
+ }
84
+ /** Returns the written path plus the stats worth printing. */
85
+ export function graphView(root, index, opts = {}) {
86
+ const repo = basename(root) || 'repo';
87
+ const { payload, stats } = buildGraphPayload(repo, index, loadCoChange(root, opts.cacheDir), noteAnchors(root));
88
+ const html = renderGraphHtml(GRAPH_TEMPLATE, repo, { [repo]: payload });
89
+ const outPath = opts.out ? opts.out : defaultGraphPath(root);
90
+ const outDir = dirname(outPath);
91
+ mkdirSync(outDir, { recursive: true });
92
+ writeFileSync(outPath, html);
93
+ if (!opts.out)
94
+ ignoreGraphHtml(outDir);
95
+ if (opts.open !== false)
96
+ openInBrowser(outPath);
97
+ return { path: outPath, stats };
98
+ }
99
+ //# sourceMappingURL=view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/graph/view.ts"],"names":[],"mappings":"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"}
@@ -84,6 +84,22 @@ export declare class IndexManager {
84
84
  private mechanicalRepairStreak;
85
85
  private static readonly MAX_AUTO_REPAIR_STREAK;
86
86
  private autoMechanicalSymbolRepair;
87
+ /**
88
+ * Rebuild the co-change sidecar ("which files move together", derived from
89
+ * git history) and persist it beside the cache.
90
+ *
91
+ * Keyed on HEAD, not on file edits: history only changes when a commit
92
+ * lands, so re-walking on every debounced patch would burn ~800ms repeatedly
93
+ * for a byte-identical result. An uncommitted edit legitimately doesn't move
94
+ * this signal at all — the pairing is about what SHIPPED together.
95
+ *
96
+ * Silent on failure and on shallow clones (a 1-commit CI checkout yields
97
+ * nothing to pair). `status` prints commitsScanned so that silence is
98
+ * explainable rather than looking like a bug.
99
+ */
100
+ private coChangeHead;
101
+ private refreshingCoChange;
102
+ private refreshCoChange;
87
103
  /**
88
104
  * Keep an already-generated notebook `index.html` current. `kb view` is
89
105
  * opt-in (generate-and-open); once the user has opened it, the browser tab
@@ -1 +1 @@
1
- {"version":3,"file":"index-manager.d.ts","sourceRoot":"","sources":["../src/index-manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAchD,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,sFAAsF;IACtF,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,YAAY;IAerB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAjBxB,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,gBAAgB,CAA8C;IAEtE;;;OAGG;IACH,OAAO,CAAC,oBAAoB,CAAqB;gBAG/C,YAAY,EAAE,aAAa,EACV,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,OAAO;IAKjC,4EAA4E;IAC5E,UAAU,IAAI,YAAY;IAI1B,wDAAwD;IACxD,aAAa,IAAI,IAAI;IAgBrB,8CAA8C;IAC9C,YAAY,IAAI,IAAI;IAapB,OAAO,CAAC,GAAG;IAIX;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAe9B;;;;;;OAMG;IACH,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAS;YAClB,mBAAmB;IAsBjC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,sBAAsB,CAAK;IACnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAK;YACrC,0BAA0B;IAwBxC;;;;;;;;OAQG;IACH,OAAO,CAAC,yBAAyB;YAUnB,WAAW;IAuCzB;;kFAE8E;IAC9E,OAAO,CAAC,UAAU,CAAoC;YACxC,KAAK;YAQL,MAAM;YAKN,cAAc;IA4B5B;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,iBAAiB,CAA8C;IACvE,OAAO,CAAC,oBAAoB;IAgB5B;;;;;OAKG;IACH,OAAO,CAAC,WAAW,CAAK;YACV,iBAAiB;IAsB/B,iFAAiF;IACjF,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,iBAAiB;IAwBzB;;;;;;;;;OASG;IACH,OAAO,CAAC,iBAAiB;CAwC1B"}
1
+ {"version":3,"file":"index-manager.d.ts","sourceRoot":"","sources":["../src/index-manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAehD,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,aAAa,CAAC;IACrB,sFAAsF;IACtF,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,YAAY;IAerB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAjBxB,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,gBAAgB,CAA8C;IAEtE;;;OAGG;IACH,OAAO,CAAC,oBAAoB,CAAqB;gBAG/C,YAAY,EAAE,aAAa,EACV,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,OAAO;IAKjC,4EAA4E;IAC5E,UAAU,IAAI,YAAY;IAI1B,wDAAwD;IACxD,aAAa,IAAI,IAAI;IAoBrB,8CAA8C;IAC9C,YAAY,IAAI,IAAI;IAapB,OAAO,CAAC,GAAG;IAIX;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAe9B;;;;;;OAMG;IACH,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAS;YAClB,mBAAmB;IAsBjC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,sBAAsB,CAAK;IACnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAK;YACrC,0BAA0B;IAwBxC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,kBAAkB,CAAS;YACrB,eAAe;IAqB7B;;;;;;;;OAQG;IACH,OAAO,CAAC,yBAAyB;YAUnB,WAAW;IAuCzB;;kFAE8E;IAC9E,OAAO,CAAC,UAAU,CAAoC;YACxC,KAAK;YAQL,MAAM;YAKN,cAAc;IA4B5B;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,iBAAiB,CAA8C;IACvE,OAAO,CAAC,oBAAoB;IAgB5B;;;;;OAKG;IACH,OAAO,CAAC,WAAW,CAAK;YACV,iBAAiB;IAsB/B,iFAAiF;IACjF,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,iBAAiB;IA2BzB;;;;;;;;;OASG;IACH,OAAO,CAAC,iBAAiB;CAwC1B"}
@@ -9,6 +9,7 @@ import { kbView } from './kb/view.js';
9
9
  import { VIEW_TEMPLATE } from './kb/view-template.js';
10
10
  import { patchIndex } from './indexer/patch.js';
11
11
  import { getGitHead } from './indexer/git.js';
12
+ import { deriveCoChange, saveCoChange } from './indexer/cochange.js';
12
13
  import { lintIndexInvariants } from './indexer/invariants.js';
13
14
  import { saveCachedIndex, getCacheDir } from './cache/disk-cache.js';
14
15
  import { updateKeeperState, appendRepairLog } from './keeper-state.js';
@@ -64,6 +65,9 @@ export class IndexManager {
64
65
  // Seed the KB notes index so kb readers (which never load the code index)
65
66
  // have lane-2 inventories + absence stamps from the first query on.
66
67
  void this.refreshKbNotesIndex();
68
+ // Seed the co-change sidecar. Independent of the notes index and of the
69
+ // cache save — a repo with no notebook still gets it.
70
+ void this.refreshCoChange();
67
71
  }
68
72
  /** Stop watching (called on process exit). */
69
73
  stopWatching() {
@@ -189,6 +193,48 @@ export class IndexManager {
189
193
  this.log(`[coldstart] auto symbol repair failed: ${err}`);
190
194
  }
191
195
  }
196
+ /**
197
+ * Rebuild the co-change sidecar ("which files move together", derived from
198
+ * git history) and persist it beside the cache.
199
+ *
200
+ * Keyed on HEAD, not on file edits: history only changes when a commit
201
+ * lands, so re-walking on every debounced patch would burn ~800ms repeatedly
202
+ * for a byte-identical result. An uncommitted edit legitimately doesn't move
203
+ * this signal at all — the pairing is about what SHIPPED together.
204
+ *
205
+ * Silent on failure and on shallow clones (a 1-commit CI checkout yields
206
+ * nothing to pair). `status` prints commitsScanned so that silence is
207
+ * explainable rather than looking like a bug.
208
+ */
209
+ coChangeHead = null;
210
+ refreshingCoChange = false;
211
+ async refreshCoChange(head) {
212
+ if (this.noCache)
213
+ return; // disk writes disabled
214
+ if (this.refreshingCoChange)
215
+ return;
216
+ this.refreshingCoChange = true;
217
+ try {
218
+ const at = head ?? (await getGitHead(this.activeIndex.rootDir));
219
+ if (!at)
220
+ return; // not a git repo — nothing to derive, ever
221
+ if (at === this.coChangeHead)
222
+ return;
223
+ const files = this.activeIndex.files;
224
+ const data = await deriveCoChange(this.activeIndex.rootDir, (p) => files.has(p), at);
225
+ if (!data)
226
+ return;
227
+ await saveCoChange(this.activeIndex.rootDir, data, this.cacheDir);
228
+ this.coChangeHead = at;
229
+ this.log(`[coldstart] co-change refreshed (${data.commitsScanned} commits, ${Object.keys(data.partners).length} files with partners)`);
230
+ }
231
+ catch (err) {
232
+ this.log(`[coldstart] co-change refresh failed: ${err}`);
233
+ }
234
+ finally {
235
+ this.refreshingCoChange = false;
236
+ }
237
+ }
192
238
  /**
193
239
  * Keep an already-generated notebook `index.html` current. `kb view` is
194
240
  * opt-in (generate-and-open); once the user has opened it, the browser tab
@@ -366,6 +412,10 @@ export class IndexManager {
366
412
  .then((head) => {
367
413
  if (head)
368
414
  this.activeIndex.gitHead = head;
415
+ // A commit landed (or a branch moved) → history changed → re-pair.
416
+ // No-op when HEAD hasn't moved since the last derivation.
417
+ if (head)
418
+ void this.refreshCoChange(head);
369
419
  return saveCachedIndex(this.activeIndex, this.cacheDir);
370
420
  })
371
421
  .then(() => this.stamp({ lastSave: { at: Date.now(), detail: `${this.activeIndex.files.size} files` } }))
@@ -1 +1 @@
1
- {"version":3,"file":"index-manager.js","sourceRoot":"","sources":["../src/index-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-manager.js","sourceRoot":"","sources":["../src/index-manager.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -618,6 +618,9 @@ Navigation
618
618
  consumers <file> who depends on this file
619
619
  index build/refresh the index for this repo
620
620
 
621
+ Picture
622
+ graph open an interactive map of this codebase in your browser
623
+
621
624
  Notebook
622
625
  kb <sub> search | lookup | write | commit | status | lint | repair | render | view | init
623
626
 
@@ -692,6 +695,10 @@ async function main() {
692
695
  process.exit(await runIndexPrep(process.argv.slice(3), buildIndex));
693
696
  }
694
697
  // Consumer counts for the capture hook's graph annotation (fail-open there).
698
+ if (process.argv[2] === 'graph') {
699
+ const { runGraph } = await import('./cli.js');
700
+ process.exit(await runGraph(process.argv.slice(3), buildIndex));
701
+ }
695
702
  if (process.argv[2] === 'consumers') {
696
703
  const { runConsumers } = await import('./cli.js');
697
704
  process.exit(await runConsumers(process.argv.slice(3), buildIndex));
@@ -712,7 +719,7 @@ async function main() {
712
719
  const firstArg = process.argv[2];
713
720
  if (firstArg && !firstArg.startsWith('-')) {
714
721
  process.stderr.write(`[coldstart] Unknown command: ${firstArg}\n` +
715
- `Commands: find, gs, index, consumers, kb, status, restart, stop, init, unwire\n`);
722
+ `Commands: find, gs, index, consumers, graph, kb, status, restart, stop, init, unwire\n`);
716
723
  process.exit(2);
717
724
  }
718
725
  const { root: cliRoot, rootExplicit, excludes, includes, cacheDir, quiet, noCache, daemon, noDaemon, probe } = parseArgs(process.argv);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}