@kage-core/kage-graph-mcp 1.1.35 → 1.1.37
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/README.md +157 -135
- package/dist/cli.js +429 -3
- package/dist/daemon.js +314 -7
- package/dist/index.js +329 -3
- package/dist/kernel.js +3255 -64
- package/package.json +1 -1
- package/viewer/app.js +2421 -316
- package/viewer/data.html +296 -0
- package/viewer/graph.html +296 -0
- package/viewer/index.html +170 -165
- package/viewer/intel.html +296 -0
- package/viewer/memory.html +367 -0
- package/viewer/owners.html +296 -0
- package/viewer/review.html +307 -0
- package/viewer/styles.css +1581 -371
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>Kage viewer</title>
|
|
7
|
+
<link rel="stylesheet" href="./styles.css?v=36">
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<div class="viewer-shell">
|
|
11
|
+
<aside class="repo-sidebar" aria-label="Repository navigation">
|
|
12
|
+
<a class="sidebar-brand" href="../">
|
|
13
|
+
<span class="brand-mark">K</span>
|
|
14
|
+
<span>Kage</span>
|
|
15
|
+
</a>
|
|
16
|
+
<div class="repo-card">
|
|
17
|
+
<span>Repository</span>
|
|
18
|
+
<strong>kage-core/Kage</strong>
|
|
19
|
+
</div>
|
|
20
|
+
<nav class="viewer-sections" aria-label="Kage viewer sections">
|
|
21
|
+
<a class="viewer-section active" href="./" data-viewer-page="overview" aria-current="page">Overview</a>
|
|
22
|
+
<a class="viewer-section" href="./graph.html" data-viewer-page="graph">Graph</a>
|
|
23
|
+
<a class="viewer-section" href="./memory.html" data-viewer-page="memory">Memory</a>
|
|
24
|
+
<a class="viewer-section" href="./intel.html" data-viewer-page="intel">Risks</a>
|
|
25
|
+
<a class="viewer-section" href="./review.html" data-viewer-page="review">Review</a>
|
|
26
|
+
</nav>
|
|
27
|
+
<nav class="sidebar-secondary" aria-label="Diagnostics">
|
|
28
|
+
<span class="sidebar-secondary-label">Diagnostics</span>
|
|
29
|
+
<a href="./owners.html" data-viewer-page="owners">Owners</a>
|
|
30
|
+
<a href="./data.html" data-viewer-page="data">Artifacts</a>
|
|
31
|
+
</nav>
|
|
32
|
+
<nav class="sidebar-links" aria-label="Kage links">
|
|
33
|
+
<a href="https://kage-core.com/">Home</a>
|
|
34
|
+
<a href="https://kage-core.com/guide.html">Docs</a>
|
|
35
|
+
<a href="https://kage-core.com/releases.html">Releases</a>
|
|
36
|
+
<a href="https://github.com/kage-core/Kage">GitHub</a>
|
|
37
|
+
</nav>
|
|
38
|
+
</aside>
|
|
39
|
+
|
|
40
|
+
<section class="viewer-main">
|
|
41
|
+
<header class="app-header">
|
|
42
|
+
<div class="brand-block">
|
|
43
|
+
<span class="eyebrow" id="pageEyebrow">kage://overview</span>
|
|
44
|
+
<h1 id="pageTitle">Repo dashboard</h1>
|
|
45
|
+
<p id="graphSummary">What is safe to change next, what needs attention, and what is ready to hand off.</p>
|
|
46
|
+
</div>
|
|
47
|
+
<div id="statusStrip" class="status-strip" aria-label="Graph health"></div>
|
|
48
|
+
<div id="autoLoadStatus" class="autoload-status">auto-load: waiting</div>
|
|
49
|
+
<label class="file-picker">
|
|
50
|
+
<span>Manual JSON</span>
|
|
51
|
+
<input id="graphFile" type="file" accept=".json,application/json" multiple>
|
|
52
|
+
</label>
|
|
53
|
+
</header>
|
|
54
|
+
|
|
55
|
+
<main class="layout">
|
|
56
|
+
<section class="dashboard-panel" aria-label="Kage repo dashboard">
|
|
57
|
+
<div id="dashboardStats" class="dashboard-stats" aria-label="Repo dashboard stats"></div>
|
|
58
|
+
<div id="dashboardCharts" class="dashboard-charts" aria-label="Repo health charts"></div>
|
|
59
|
+
<div class="dashboard-grid">
|
|
60
|
+
<article class="dashboard-card primary" id="dashboardMemory">
|
|
61
|
+
<div class="dashboard-card-head"><span>Memory</span><strong>repo lore</strong></div>
|
|
62
|
+
<h3>Reusable repo context</h3>
|
|
63
|
+
<ul></ul>
|
|
64
|
+
<a href="./memory.html" data-viewer-page="memory">Open memory</a>
|
|
65
|
+
</article>
|
|
66
|
+
<article class="dashboard-card primary" id="dashboardGraph">
|
|
67
|
+
<div class="dashboard-card-head"><span>Graph</span><strong>source map</strong></div>
|
|
68
|
+
<h3>What to inspect before editing</h3>
|
|
69
|
+
<ul></ul>
|
|
70
|
+
<a href="./graph.html" data-viewer-page="graph">Explore graph</a>
|
|
71
|
+
</article>
|
|
72
|
+
<article class="dashboard-card primary" id="dashboardIntel">
|
|
73
|
+
<div class="dashboard-card-head"><span>Risks</span><strong>reports</strong></div>
|
|
74
|
+
<h3>What needs attention</h3>
|
|
75
|
+
<ul></ul>
|
|
76
|
+
<a href="./intel.html" data-viewer-page="intel">Open risks</a>
|
|
77
|
+
</article>
|
|
78
|
+
<article class="dashboard-card primary" id="dashboardReview">
|
|
79
|
+
<div class="dashboard-card-head"><span>Review</span><strong>handoff</strong></div>
|
|
80
|
+
<h3>Ready for handoff?</h3>
|
|
81
|
+
<ul></ul>
|
|
82
|
+
<a href="./review.html" data-viewer-page="review">Open review</a>
|
|
83
|
+
</article>
|
|
84
|
+
</div>
|
|
85
|
+
</section>
|
|
86
|
+
|
|
87
|
+
<section class="graph-panel" aria-label="Graph rendering">
|
|
88
|
+
<div class="graph-toolbar">
|
|
89
|
+
<div>
|
|
90
|
+
<h2>Dependency Graph</h2>
|
|
91
|
+
<p id="graphSubhead">Combined repo memory and source graph.</p>
|
|
92
|
+
</div>
|
|
93
|
+
<div class="graph-actions" aria-label="Graph view controls">
|
|
94
|
+
<span id="interactionHint" class="interaction-hint">drag canvas / wheel zoom / click node</span>
|
|
95
|
+
<button id="zoomOut" type="button">-</button>
|
|
96
|
+
<button id="fitView" type="button">Fit</button>
|
|
97
|
+
<button id="zoomIn" type="button">+</button>
|
|
98
|
+
</div>
|
|
99
|
+
</div>
|
|
100
|
+
<div id="graphCanvasWrap" class="graph-canvas-wrap">
|
|
101
|
+
<canvas id="graphCanvas" aria-label="Interactive Kage memory and code graph"></canvas>
|
|
102
|
+
<div id="threeGraph" class="three-graph" aria-label="Interactive 3D Kage memory and code graph"></div>
|
|
103
|
+
<div id="graphTooltip" class="graph-tooltip" role="status"></div>
|
|
104
|
+
</div>
|
|
105
|
+
<svg id="graphSvg" class="fallback-graph" viewBox="0 0 1000 660" role="img" aria-labelledby="graphTitle graphDescription">
|
|
106
|
+
<title id="graphTitle">Kage local memory and code graph terminal view</title>
|
|
107
|
+
<desc id="graphDescription">Entities and relationships from loaded Kage memory and code graph JSON files.</desc>
|
|
108
|
+
<defs>
|
|
109
|
+
<marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
|
|
110
|
+
<path d="M 0 0 L 10 5 L 0 10 z"></path>
|
|
111
|
+
</marker>
|
|
112
|
+
</defs>
|
|
113
|
+
<g id="edgeLayer"></g>
|
|
114
|
+
<g id="nodeLayer"></g>
|
|
115
|
+
</svg>
|
|
116
|
+
<div id="emptyState" class="empty-state">
|
|
117
|
+
<strong>No graph loaded</strong>
|
|
118
|
+
<span>Choose Kage graph JSON files or open with graph, code, and metrics URL params.</span>
|
|
119
|
+
</div>
|
|
120
|
+
</section>
|
|
121
|
+
|
|
122
|
+
<section class="workspace-shell" aria-label="Viewer workspace">
|
|
123
|
+
<div class="workspace-body">
|
|
124
|
+
<aside class="control-panel" aria-label="Graph controls">
|
|
125
|
+
<div class="panel-heading compact">
|
|
126
|
+
<h2>Find Context</h2>
|
|
127
|
+
<span id="workspaceMode">Combined</span>
|
|
128
|
+
</div>
|
|
129
|
+
<div id="metricsSummary" class="metrics-grid"></div>
|
|
130
|
+
<label>
|
|
131
|
+
<span>File, symbol, route, test, or memory</span>
|
|
132
|
+
<input id="searchInput" type="search" placeholder="Search before changing code...">
|
|
133
|
+
</label>
|
|
134
|
+
<div class="journey-actions" aria-label="Graph journeys">
|
|
135
|
+
<button id="showUntrusted" type="button">Show untrusted edges</button>
|
|
136
|
+
<button id="showUncovered" type="button">Show code without memory</button>
|
|
137
|
+
<button id="showMemoryCode" type="button">Show memory-code links</button>
|
|
138
|
+
</div>
|
|
139
|
+
<details class="advanced-controls">
|
|
140
|
+
<summary>More filters</summary>
|
|
141
|
+
<label>
|
|
142
|
+
<span>View</span>
|
|
143
|
+
<select id="viewMode">
|
|
144
|
+
<option value="combined">Combined</option>
|
|
145
|
+
<option value="memory">Memory</option>
|
|
146
|
+
<option value="code">Code</option>
|
|
147
|
+
</select>
|
|
148
|
+
</label>
|
|
149
|
+
<label>
|
|
150
|
+
<span>Node Type</span>
|
|
151
|
+
<select id="typeFilter">
|
|
152
|
+
<option value="">All types</option>
|
|
153
|
+
</select>
|
|
154
|
+
</label>
|
|
155
|
+
<label>
|
|
156
|
+
<span>Relation</span>
|
|
157
|
+
<select id="relationFilter">
|
|
158
|
+
<option value="">All relations</option>
|
|
159
|
+
</select>
|
|
160
|
+
</label>
|
|
161
|
+
<label>
|
|
162
|
+
<span>Max Nodes</span>
|
|
163
|
+
<select id="maxNodes">
|
|
164
|
+
<option value="60">60</option>
|
|
165
|
+
<option value="90" selected>90</option>
|
|
166
|
+
<option value="140">140</option>
|
|
167
|
+
<option value="220">220</option>
|
|
168
|
+
</select>
|
|
169
|
+
</label>
|
|
170
|
+
<label class="toggle-control">
|
|
171
|
+
<input id="showDependencies" type="checkbox">
|
|
172
|
+
<span>Include external dependencies</span>
|
|
173
|
+
</label>
|
|
174
|
+
<button id="resetView" type="button">Reset filters</button>
|
|
175
|
+
</details>
|
|
176
|
+
<input id="scopeFilter" type="hidden" value="signal">
|
|
177
|
+
<div class="legend" aria-label="Legend">
|
|
178
|
+
<span><i class="dot memory-dot"></i>memory packet</span>
|
|
179
|
+
<span><i class="dot code-dot"></i>code artifact</span>
|
|
180
|
+
<span><i class="line sample-line"></i>relation</span>
|
|
181
|
+
</div>
|
|
182
|
+
</aside>
|
|
183
|
+
|
|
184
|
+
<aside class="graph-insights-panel" aria-label="Graph insights">
|
|
185
|
+
<div class="panel-heading compact">
|
|
186
|
+
<h2>Before You Change</h2>
|
|
187
|
+
<span id="graphInsightStatus">signals</span>
|
|
188
|
+
</div>
|
|
189
|
+
<div id="graphInsights" class="graph-insights"></div>
|
|
190
|
+
</aside>
|
|
191
|
+
|
|
192
|
+
<aside class="details-panel" aria-label="Selection details">
|
|
193
|
+
<div class="panel-heading compact">
|
|
194
|
+
<h2>Inspector</h2>
|
|
195
|
+
<span id="selectionStatus">No selection</span>
|
|
196
|
+
</div>
|
|
197
|
+
<div id="selectionDetails" class="details-empty">Select an entity or edge.</div>
|
|
198
|
+
<div class="path-finder inspector-path-finder" aria-label="Dependency path finder">
|
|
199
|
+
<div class="path-finder-header">
|
|
200
|
+
<span>Trace Code Path</span>
|
|
201
|
+
<button id="clearPath" type="button">Clear</button>
|
|
202
|
+
</div>
|
|
203
|
+
<div class="path-finder-inputs">
|
|
204
|
+
<input id="pathFromInput" type="search" list="pathNodeOptions" placeholder="From selected file or symbol...">
|
|
205
|
+
<input id="pathToInput" type="search" list="pathNodeOptions" placeholder="To related test, route, or symbol...">
|
|
206
|
+
<button id="findPath" type="button">Trace</button>
|
|
207
|
+
</div>
|
|
208
|
+
<datalist id="pathNodeOptions"></datalist>
|
|
209
|
+
<div id="pathStatus" class="path-status">Select a code node, then trace to another code node when you need impact proof.</div>
|
|
210
|
+
<div id="pathResult" class="path-result"></div>
|
|
211
|
+
</div>
|
|
212
|
+
</aside>
|
|
213
|
+
|
|
214
|
+
<section class="memory-panel" aria-label="Memory library">
|
|
215
|
+
<div class="panel-heading">
|
|
216
|
+
<h2>Memory</h2>
|
|
217
|
+
<span id="memoryStatus">packets</span>
|
|
218
|
+
</div>
|
|
219
|
+
<div id="memoryStats" class="memory-stats" aria-label="Memory summary"></div>
|
|
220
|
+
<div id="memoryOverview" class="memory-overview" aria-label="Memory coverage chart"></div>
|
|
221
|
+
<div class="memory-toolbar">
|
|
222
|
+
<input id="memorySearch" type="search" placeholder="Search memory, path, command, bug, decision...">
|
|
223
|
+
<select id="memoryFilter" aria-label="Memory filter">
|
|
224
|
+
<option value="all">All memory</option>
|
|
225
|
+
<option value="linked">Linked to code</option>
|
|
226
|
+
<option value="needs-paths">Needs paths</option>
|
|
227
|
+
<option value="decision">Decisions</option>
|
|
228
|
+
<option value="runbook">Runbooks</option>
|
|
229
|
+
<option value="bug_fix">Bug fixes</option>
|
|
230
|
+
</select>
|
|
231
|
+
</div>
|
|
232
|
+
<div id="memoryList" class="memory-list"></div>
|
|
233
|
+
</section>
|
|
234
|
+
|
|
235
|
+
<section class="owners-panel" aria-label="Owners and contributors">
|
|
236
|
+
<div class="panel-heading">
|
|
237
|
+
<h2>Owners</h2>
|
|
238
|
+
<span id="ownersStatus">git signals</span>
|
|
239
|
+
</div>
|
|
240
|
+
<div id="ownersSummary" class="owners-summary"></div>
|
|
241
|
+
<div id="ownersList" class="owners-list"></div>
|
|
242
|
+
</section>
|
|
243
|
+
|
|
244
|
+
<section class="review-panel" aria-label="Review queue">
|
|
245
|
+
<div class="panel-heading">
|
|
246
|
+
<h2>Memory Inbox</h2>
|
|
247
|
+
<span id="reviewCount">0</span>
|
|
248
|
+
</div>
|
|
249
|
+
<div id="reviewOverview" class="review-overview"></div>
|
|
250
|
+
<div id="reviewList" class="review-list"></div>
|
|
251
|
+
</section>
|
|
252
|
+
|
|
253
|
+
<section class="proof-panel" aria-label="Quality and benchmark">
|
|
254
|
+
<div class="panel-heading">
|
|
255
|
+
<h2>Proof</h2>
|
|
256
|
+
<span id="proofStatus">metrics</span>
|
|
257
|
+
</div>
|
|
258
|
+
<div id="proofOverview" class="proof-overview"></div>
|
|
259
|
+
<div id="proofList" class="proof-list"></div>
|
|
260
|
+
</section>
|
|
261
|
+
|
|
262
|
+
<section class="intelligence-panel" aria-label="Risks and reports">
|
|
263
|
+
<div class="panel-heading">
|
|
264
|
+
<h2>Risks</h2>
|
|
265
|
+
<span id="intelligenceStatus">reports</span>
|
|
266
|
+
</div>
|
|
267
|
+
<div id="intelligenceList" class="intelligence-list"></div>
|
|
268
|
+
</section>
|
|
269
|
+
|
|
270
|
+
<section class="table-panel entities-panel" aria-label="Nodes">
|
|
271
|
+
<div class="panel-heading">
|
|
272
|
+
<h2>Artifact Nodes</h2>
|
|
273
|
+
<span id="entityCount">0</span>
|
|
274
|
+
</div>
|
|
275
|
+
<div id="debugOverview" class="debug-overview"></div>
|
|
276
|
+
<div class="debug-guide">Use artifacts when the graph or recall output looks wrong. Normal repo work starts from Overview, Graph, Memory, Risks, or Review.</div>
|
|
277
|
+
<div id="entityList" class="list"></div>
|
|
278
|
+
</section>
|
|
279
|
+
|
|
280
|
+
<section class="table-panel edges-panel" aria-label="Relations">
|
|
281
|
+
<div class="panel-heading">
|
|
282
|
+
<h2>Artifact Relations</h2>
|
|
283
|
+
<span id="edgeCount">0</span>
|
|
284
|
+
</div>
|
|
285
|
+
<div class="debug-guide">Relations expose generation quality: evidence, confidence, invalidation, and memory-code linking.</div>
|
|
286
|
+
<div id="edgeList" class="list"></div>
|
|
287
|
+
</section>
|
|
288
|
+
</div>
|
|
289
|
+
</section>
|
|
290
|
+
</main>
|
|
291
|
+
</section>
|
|
292
|
+
</div>
|
|
293
|
+
|
|
294
|
+
<script src="./app.js?v=50"></script>
|
|
295
|
+
</body>
|
|
296
|
+
</html>
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>Kage viewer</title>
|
|
7
|
+
<link rel="stylesheet" href="./styles.css?v=36">
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<div class="viewer-shell">
|
|
11
|
+
<aside class="repo-sidebar" aria-label="Repository navigation">
|
|
12
|
+
<a class="sidebar-brand" href="../">
|
|
13
|
+
<span class="brand-mark">K</span>
|
|
14
|
+
<span>Kage</span>
|
|
15
|
+
</a>
|
|
16
|
+
<div class="repo-card">
|
|
17
|
+
<span>Repository</span>
|
|
18
|
+
<strong>kage-core/Kage</strong>
|
|
19
|
+
</div>
|
|
20
|
+
<nav class="viewer-sections" aria-label="Kage viewer sections">
|
|
21
|
+
<a class="viewer-section active" href="./" data-viewer-page="overview" aria-current="page">Overview</a>
|
|
22
|
+
<a class="viewer-section" href="./graph.html" data-viewer-page="graph">Graph</a>
|
|
23
|
+
<a class="viewer-section" href="./memory.html" data-viewer-page="memory">Memory</a>
|
|
24
|
+
<a class="viewer-section" href="./intel.html" data-viewer-page="intel">Risks</a>
|
|
25
|
+
<a class="viewer-section" href="./review.html" data-viewer-page="review">Review</a>
|
|
26
|
+
</nav>
|
|
27
|
+
<nav class="sidebar-secondary" aria-label="Diagnostics">
|
|
28
|
+
<span class="sidebar-secondary-label">Diagnostics</span>
|
|
29
|
+
<a href="./owners.html" data-viewer-page="owners">Owners</a>
|
|
30
|
+
<a href="./data.html" data-viewer-page="data">Artifacts</a>
|
|
31
|
+
</nav>
|
|
32
|
+
<nav class="sidebar-links" aria-label="Kage links">
|
|
33
|
+
<a href="https://kage-core.com/">Home</a>
|
|
34
|
+
<a href="https://kage-core.com/guide.html">Docs</a>
|
|
35
|
+
<a href="https://kage-core.com/releases.html">Releases</a>
|
|
36
|
+
<a href="https://github.com/kage-core/Kage">GitHub</a>
|
|
37
|
+
</nav>
|
|
38
|
+
</aside>
|
|
39
|
+
|
|
40
|
+
<section class="viewer-main">
|
|
41
|
+
<header class="app-header">
|
|
42
|
+
<div class="brand-block">
|
|
43
|
+
<span class="eyebrow" id="pageEyebrow">kage://overview</span>
|
|
44
|
+
<h1 id="pageTitle">Repo dashboard</h1>
|
|
45
|
+
<p id="graphSummary">What is safe to change next, what needs attention, and what is ready to hand off.</p>
|
|
46
|
+
</div>
|
|
47
|
+
<div id="statusStrip" class="status-strip" aria-label="Graph health"></div>
|
|
48
|
+
<div id="autoLoadStatus" class="autoload-status">auto-load: waiting</div>
|
|
49
|
+
<label class="file-picker">
|
|
50
|
+
<span>Manual JSON</span>
|
|
51
|
+
<input id="graphFile" type="file" accept=".json,application/json" multiple>
|
|
52
|
+
</label>
|
|
53
|
+
</header>
|
|
54
|
+
|
|
55
|
+
<main class="layout">
|
|
56
|
+
<section class="dashboard-panel" aria-label="Kage repo dashboard">
|
|
57
|
+
<div id="dashboardStats" class="dashboard-stats" aria-label="Repo dashboard stats"></div>
|
|
58
|
+
<div id="dashboardCharts" class="dashboard-charts" aria-label="Repo health charts"></div>
|
|
59
|
+
<div class="dashboard-grid">
|
|
60
|
+
<article class="dashboard-card primary" id="dashboardMemory">
|
|
61
|
+
<div class="dashboard-card-head"><span>Memory</span><strong>repo lore</strong></div>
|
|
62
|
+
<h3>Reusable repo context</h3>
|
|
63
|
+
<ul></ul>
|
|
64
|
+
<a href="./memory.html" data-viewer-page="memory">Open memory</a>
|
|
65
|
+
</article>
|
|
66
|
+
<article class="dashboard-card primary" id="dashboardGraph">
|
|
67
|
+
<div class="dashboard-card-head"><span>Graph</span><strong>source map</strong></div>
|
|
68
|
+
<h3>What to inspect before editing</h3>
|
|
69
|
+
<ul></ul>
|
|
70
|
+
<a href="./graph.html" data-viewer-page="graph">Explore graph</a>
|
|
71
|
+
</article>
|
|
72
|
+
<article class="dashboard-card primary" id="dashboardIntel">
|
|
73
|
+
<div class="dashboard-card-head"><span>Risks</span><strong>reports</strong></div>
|
|
74
|
+
<h3>What needs attention</h3>
|
|
75
|
+
<ul></ul>
|
|
76
|
+
<a href="./intel.html" data-viewer-page="intel">Open risks</a>
|
|
77
|
+
</article>
|
|
78
|
+
<article class="dashboard-card primary" id="dashboardReview">
|
|
79
|
+
<div class="dashboard-card-head"><span>Review</span><strong>handoff</strong></div>
|
|
80
|
+
<h3>Ready for handoff?</h3>
|
|
81
|
+
<ul></ul>
|
|
82
|
+
<a href="./review.html" data-viewer-page="review">Open review</a>
|
|
83
|
+
</article>
|
|
84
|
+
</div>
|
|
85
|
+
</section>
|
|
86
|
+
|
|
87
|
+
<section class="graph-panel" aria-label="Graph rendering">
|
|
88
|
+
<div class="graph-toolbar">
|
|
89
|
+
<div>
|
|
90
|
+
<h2>Dependency Graph</h2>
|
|
91
|
+
<p id="graphSubhead">Combined repo memory and source graph.</p>
|
|
92
|
+
</div>
|
|
93
|
+
<div class="graph-actions" aria-label="Graph view controls">
|
|
94
|
+
<span id="interactionHint" class="interaction-hint">drag canvas / wheel zoom / click node</span>
|
|
95
|
+
<button id="zoomOut" type="button">-</button>
|
|
96
|
+
<button id="fitView" type="button">Fit</button>
|
|
97
|
+
<button id="zoomIn" type="button">+</button>
|
|
98
|
+
</div>
|
|
99
|
+
</div>
|
|
100
|
+
<div id="graphCanvasWrap" class="graph-canvas-wrap">
|
|
101
|
+
<canvas id="graphCanvas" aria-label="Interactive Kage memory and code graph"></canvas>
|
|
102
|
+
<div id="threeGraph" class="three-graph" aria-label="Interactive 3D Kage memory and code graph"></div>
|
|
103
|
+
<div id="graphTooltip" class="graph-tooltip" role="status"></div>
|
|
104
|
+
</div>
|
|
105
|
+
<svg id="graphSvg" class="fallback-graph" viewBox="0 0 1000 660" role="img" aria-labelledby="graphTitle graphDescription">
|
|
106
|
+
<title id="graphTitle">Kage local memory and code graph terminal view</title>
|
|
107
|
+
<desc id="graphDescription">Entities and relationships from loaded Kage memory and code graph JSON files.</desc>
|
|
108
|
+
<defs>
|
|
109
|
+
<marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse">
|
|
110
|
+
<path d="M 0 0 L 10 5 L 0 10 z"></path>
|
|
111
|
+
</marker>
|
|
112
|
+
</defs>
|
|
113
|
+
<g id="edgeLayer"></g>
|
|
114
|
+
<g id="nodeLayer"></g>
|
|
115
|
+
</svg>
|
|
116
|
+
<div id="emptyState" class="empty-state">
|
|
117
|
+
<strong>No graph loaded</strong>
|
|
118
|
+
<span>Choose Kage graph JSON files or open with graph, code, and metrics URL params.</span>
|
|
119
|
+
</div>
|
|
120
|
+
</section>
|
|
121
|
+
|
|
122
|
+
<section class="workspace-shell" aria-label="Viewer workspace">
|
|
123
|
+
<div class="workspace-body">
|
|
124
|
+
<aside class="control-panel" aria-label="Graph controls">
|
|
125
|
+
<div class="panel-heading compact">
|
|
126
|
+
<h2>Find Context</h2>
|
|
127
|
+
<span id="workspaceMode">Combined</span>
|
|
128
|
+
</div>
|
|
129
|
+
<div id="metricsSummary" class="metrics-grid"></div>
|
|
130
|
+
<label>
|
|
131
|
+
<span>File, symbol, route, test, or memory</span>
|
|
132
|
+
<input id="searchInput" type="search" placeholder="Search before changing code...">
|
|
133
|
+
</label>
|
|
134
|
+
<div class="journey-actions" aria-label="Graph journeys">
|
|
135
|
+
<button id="showUntrusted" type="button">Show untrusted edges</button>
|
|
136
|
+
<button id="showUncovered" type="button">Show code without memory</button>
|
|
137
|
+
<button id="showMemoryCode" type="button">Show memory-code links</button>
|
|
138
|
+
</div>
|
|
139
|
+
<details class="advanced-controls">
|
|
140
|
+
<summary>More filters</summary>
|
|
141
|
+
<label>
|
|
142
|
+
<span>View</span>
|
|
143
|
+
<select id="viewMode">
|
|
144
|
+
<option value="combined">Combined</option>
|
|
145
|
+
<option value="memory">Memory</option>
|
|
146
|
+
<option value="code">Code</option>
|
|
147
|
+
</select>
|
|
148
|
+
</label>
|
|
149
|
+
<label>
|
|
150
|
+
<span>Node Type</span>
|
|
151
|
+
<select id="typeFilter">
|
|
152
|
+
<option value="">All types</option>
|
|
153
|
+
</select>
|
|
154
|
+
</label>
|
|
155
|
+
<label>
|
|
156
|
+
<span>Relation</span>
|
|
157
|
+
<select id="relationFilter">
|
|
158
|
+
<option value="">All relations</option>
|
|
159
|
+
</select>
|
|
160
|
+
</label>
|
|
161
|
+
<label>
|
|
162
|
+
<span>Max Nodes</span>
|
|
163
|
+
<select id="maxNodes">
|
|
164
|
+
<option value="60">60</option>
|
|
165
|
+
<option value="90" selected>90</option>
|
|
166
|
+
<option value="140">140</option>
|
|
167
|
+
<option value="220">220</option>
|
|
168
|
+
</select>
|
|
169
|
+
</label>
|
|
170
|
+
<label class="toggle-control">
|
|
171
|
+
<input id="showDependencies" type="checkbox">
|
|
172
|
+
<span>Include external dependencies</span>
|
|
173
|
+
</label>
|
|
174
|
+
<button id="resetView" type="button">Reset filters</button>
|
|
175
|
+
</details>
|
|
176
|
+
<input id="scopeFilter" type="hidden" value="signal">
|
|
177
|
+
<div class="legend" aria-label="Legend">
|
|
178
|
+
<span><i class="dot memory-dot"></i>memory packet</span>
|
|
179
|
+
<span><i class="dot code-dot"></i>code artifact</span>
|
|
180
|
+
<span><i class="line sample-line"></i>relation</span>
|
|
181
|
+
</div>
|
|
182
|
+
</aside>
|
|
183
|
+
|
|
184
|
+
<aside class="graph-insights-panel" aria-label="Graph insights">
|
|
185
|
+
<div class="panel-heading compact">
|
|
186
|
+
<h2>Before You Change</h2>
|
|
187
|
+
<span id="graphInsightStatus">signals</span>
|
|
188
|
+
</div>
|
|
189
|
+
<div id="graphInsights" class="graph-insights"></div>
|
|
190
|
+
</aside>
|
|
191
|
+
|
|
192
|
+
<aside class="details-panel" aria-label="Selection details">
|
|
193
|
+
<div class="panel-heading compact">
|
|
194
|
+
<h2>Inspector</h2>
|
|
195
|
+
<span id="selectionStatus">No selection</span>
|
|
196
|
+
</div>
|
|
197
|
+
<div id="selectionDetails" class="details-empty">Select an entity or edge.</div>
|
|
198
|
+
<div class="path-finder inspector-path-finder" aria-label="Dependency path finder">
|
|
199
|
+
<div class="path-finder-header">
|
|
200
|
+
<span>Trace Code Path</span>
|
|
201
|
+
<button id="clearPath" type="button">Clear</button>
|
|
202
|
+
</div>
|
|
203
|
+
<div class="path-finder-inputs">
|
|
204
|
+
<input id="pathFromInput" type="search" list="pathNodeOptions" placeholder="From selected file or symbol...">
|
|
205
|
+
<input id="pathToInput" type="search" list="pathNodeOptions" placeholder="To related test, route, or symbol...">
|
|
206
|
+
<button id="findPath" type="button">Trace</button>
|
|
207
|
+
</div>
|
|
208
|
+
<datalist id="pathNodeOptions"></datalist>
|
|
209
|
+
<div id="pathStatus" class="path-status">Select a code node, then trace to another code node when you need impact proof.</div>
|
|
210
|
+
<div id="pathResult" class="path-result"></div>
|
|
211
|
+
</div>
|
|
212
|
+
</aside>
|
|
213
|
+
|
|
214
|
+
<section class="memory-panel" aria-label="Memory library">
|
|
215
|
+
<div class="panel-heading">
|
|
216
|
+
<h2>Memory</h2>
|
|
217
|
+
<span id="memoryStatus">packets</span>
|
|
218
|
+
</div>
|
|
219
|
+
<div id="memoryStats" class="memory-stats" aria-label="Memory summary"></div>
|
|
220
|
+
<div id="memoryOverview" class="memory-overview" aria-label="Memory coverage chart"></div>
|
|
221
|
+
<div class="memory-toolbar">
|
|
222
|
+
<input id="memorySearch" type="search" placeholder="Search memory, path, command, bug, decision...">
|
|
223
|
+
<select id="memoryFilter" aria-label="Memory filter">
|
|
224
|
+
<option value="all">All memory</option>
|
|
225
|
+
<option value="linked">Linked to code</option>
|
|
226
|
+
<option value="needs-paths">Needs paths</option>
|
|
227
|
+
<option value="decision">Decisions</option>
|
|
228
|
+
<option value="runbook">Runbooks</option>
|
|
229
|
+
<option value="bug_fix">Bug fixes</option>
|
|
230
|
+
</select>
|
|
231
|
+
</div>
|
|
232
|
+
<div id="memoryList" class="memory-list"></div>
|
|
233
|
+
</section>
|
|
234
|
+
|
|
235
|
+
<section class="owners-panel" aria-label="Owners and contributors">
|
|
236
|
+
<div class="panel-heading">
|
|
237
|
+
<h2>Owners</h2>
|
|
238
|
+
<span id="ownersStatus">git signals</span>
|
|
239
|
+
</div>
|
|
240
|
+
<div id="ownersSummary" class="owners-summary"></div>
|
|
241
|
+
<div id="ownersList" class="owners-list"></div>
|
|
242
|
+
</section>
|
|
243
|
+
|
|
244
|
+
<section class="review-panel" aria-label="Review queue">
|
|
245
|
+
<div class="panel-heading">
|
|
246
|
+
<h2>Memory Inbox</h2>
|
|
247
|
+
<span id="reviewCount">0</span>
|
|
248
|
+
</div>
|
|
249
|
+
<section class="session-capture" aria-label="Memory handoff">
|
|
250
|
+
<div class="lifecycle-head">
|
|
251
|
+
<div>
|
|
252
|
+
<h3>Memory handoff</h3>
|
|
253
|
+
<p>Combined inbox, lifecycle, audit, timeline, and lineage actions for the next teammate or agent.</p>
|
|
254
|
+
</div>
|
|
255
|
+
<span id="handoffStatus">waiting</span>
|
|
256
|
+
</div>
|
|
257
|
+
<div id="handoffSummary" class="lifecycle-summary"></div>
|
|
258
|
+
<div id="handoffList" class="session-capture-list"></div>
|
|
259
|
+
</section>
|
|
260
|
+
<div id="reviewOverview" class="review-overview"></div>
|
|
261
|
+
<div id="reviewList" class="review-list"></div>
|
|
262
|
+
</section>
|
|
263
|
+
|
|
264
|
+
<section class="proof-panel" aria-label="Quality and benchmark">
|
|
265
|
+
<div class="panel-heading">
|
|
266
|
+
<h2>Proof</h2>
|
|
267
|
+
<span id="proofStatus">metrics</span>
|
|
268
|
+
</div>
|
|
269
|
+
<div id="proofOverview" class="proof-overview"></div>
|
|
270
|
+
<div id="proofList" class="proof-list"></div>
|
|
271
|
+
</section>
|
|
272
|
+
|
|
273
|
+
<section class="intelligence-panel" aria-label="Risks and reports">
|
|
274
|
+
<div class="panel-heading">
|
|
275
|
+
<h2>Risks</h2>
|
|
276
|
+
<span id="intelligenceStatus">reports</span>
|
|
277
|
+
</div>
|
|
278
|
+
<div id="intelligenceList" class="intelligence-list"></div>
|
|
279
|
+
</section>
|
|
280
|
+
|
|
281
|
+
<section class="table-panel entities-panel" aria-label="Nodes">
|
|
282
|
+
<div class="panel-heading">
|
|
283
|
+
<h2>Artifact Nodes</h2>
|
|
284
|
+
<span id="entityCount">0</span>
|
|
285
|
+
</div>
|
|
286
|
+
<div id="debugOverview" class="debug-overview"></div>
|
|
287
|
+
<div class="debug-guide">Use artifacts when the graph or recall output looks wrong. Normal repo work starts from Overview, Graph, Memory, Risks, or Review.</div>
|
|
288
|
+
<div id="entityList" class="list"></div>
|
|
289
|
+
</section>
|
|
290
|
+
|
|
291
|
+
<section class="table-panel edges-panel" aria-label="Relations">
|
|
292
|
+
<div class="panel-heading">
|
|
293
|
+
<h2>Artifact Relations</h2>
|
|
294
|
+
<span id="edgeCount">0</span>
|
|
295
|
+
</div>
|
|
296
|
+
<div class="debug-guide">Relations expose generation quality: evidence, confidence, invalidation, and memory-code linking.</div>
|
|
297
|
+
<div id="edgeList" class="list"></div>
|
|
298
|
+
</section>
|
|
299
|
+
</div>
|
|
300
|
+
</section>
|
|
301
|
+
</main>
|
|
302
|
+
</section>
|
|
303
|
+
</div>
|
|
304
|
+
|
|
305
|
+
<script src="./app.js?v=50"></script>
|
|
306
|
+
</body>
|
|
307
|
+
</html>
|