agent-knowledge 1.0.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/CHANGELOG.md +77 -0
- package/LICENSE +21 -0
- package/README.md +191 -0
- package/dist/dashboard.d.ts +4 -0
- package/dist/dashboard.d.ts.map +1 -0
- package/dist/dashboard.js +434 -0
- package/dist/dashboard.js.map +1 -0
- package/dist/embeddings/claude.d.ts +21 -0
- package/dist/embeddings/claude.d.ts.map +1 -0
- package/dist/embeddings/claude.js +84 -0
- package/dist/embeddings/claude.js.map +1 -0
- package/dist/embeddings/factory.d.ts +9 -0
- package/dist/embeddings/factory.d.ts.map +1 -0
- package/dist/embeddings/factory.js +60 -0
- package/dist/embeddings/factory.js.map +1 -0
- package/dist/embeddings/gemini.d.ts +21 -0
- package/dist/embeddings/gemini.d.ts.map +1 -0
- package/dist/embeddings/gemini.js +86 -0
- package/dist/embeddings/gemini.js.map +1 -0
- package/dist/embeddings/index.d.ts +4 -0
- package/dist/embeddings/index.d.ts.map +1 -0
- package/dist/embeddings/index.js +3 -0
- package/dist/embeddings/index.js.map +1 -0
- package/dist/embeddings/local.d.ts +20 -0
- package/dist/embeddings/local.d.ts.map +1 -0
- package/dist/embeddings/local.js +73 -0
- package/dist/embeddings/local.js.map +1 -0
- package/dist/embeddings/openai.d.ts +20 -0
- package/dist/embeddings/openai.d.ts.map +1 -0
- package/dist/embeddings/openai.js +84 -0
- package/dist/embeddings/openai.js.map +1 -0
- package/dist/embeddings/types.d.ts +39 -0
- package/dist/embeddings/types.d.ts.map +1 -0
- package/dist/embeddings/types.js +12 -0
- package/dist/embeddings/types.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/knowledge/distill.d.ts +27 -0
- package/dist/knowledge/distill.d.ts.map +1 -0
- package/dist/knowledge/distill.js +407 -0
- package/dist/knowledge/distill.js.map +1 -0
- package/dist/knowledge/git.d.ts +30 -0
- package/dist/knowledge/git.d.ts.map +1 -0
- package/dist/knowledge/git.js +228 -0
- package/dist/knowledge/git.js.map +1 -0
- package/dist/knowledge/search.d.ts +20 -0
- package/dist/knowledge/search.d.ts.map +1 -0
- package/dist/knowledge/search.js +72 -0
- package/dist/knowledge/search.js.map +1 -0
- package/dist/knowledge/store.d.ts +47 -0
- package/dist/knowledge/store.d.ts.map +1 -0
- package/dist/knowledge/store.js +173 -0
- package/dist/knowledge/store.js.map +1 -0
- package/dist/search/excerpt.d.ts +12 -0
- package/dist/search/excerpt.d.ts.map +1 -0
- package/dist/search/excerpt.js +28 -0
- package/dist/search/excerpt.js.map +1 -0
- package/dist/search/fuzzy.d.ts +15 -0
- package/dist/search/fuzzy.d.ts.map +1 -0
- package/dist/search/fuzzy.js +81 -0
- package/dist/search/fuzzy.js.map +1 -0
- package/dist/search/tfidf.d.ts +19 -0
- package/dist/search/tfidf.d.ts.map +1 -0
- package/dist/search/tfidf.js +200 -0
- package/dist/search/tfidf.js.map +1 -0
- package/dist/search/types.d.ts +19 -0
- package/dist/search/types.d.ts.map +1 -0
- package/dist/search/types.js +2 -0
- package/dist/search/types.js.map +1 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +518 -0
- package/dist/server.js.map +1 -0
- package/dist/sessions/indexer.d.ts +15 -0
- package/dist/sessions/indexer.d.ts.map +1 -0
- package/dist/sessions/indexer.js +182 -0
- package/dist/sessions/indexer.js.map +1 -0
- package/dist/sessions/parser.d.ts +58 -0
- package/dist/sessions/parser.d.ts.map +1 -0
- package/dist/sessions/parser.js +142 -0
- package/dist/sessions/parser.js.map +1 -0
- package/dist/sessions/scopes.d.ts +16 -0
- package/dist/sessions/scopes.d.ts.map +1 -0
- package/dist/sessions/scopes.js +153 -0
- package/dist/sessions/scopes.js.map +1 -0
- package/dist/sessions/search.d.ts +26 -0
- package/dist/sessions/search.d.ts.map +1 -0
- package/dist/sessions/search.js +256 -0
- package/dist/sessions/search.js.map +1 -0
- package/dist/sessions/summary.d.ts +28 -0
- package/dist/sessions/summary.d.ts.map +1 -0
- package/dist/sessions/summary.js +135 -0
- package/dist/sessions/summary.js.map +1 -0
- package/dist/types.d.ts +26 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +109 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/app.js +1029 -0
- package/dist/ui/index.html +373 -0
- package/dist/ui/styles.css +1508 -0
- package/dist/ui/ui/app.js +811 -0
- package/dist/ui/ui/index.html +300 -0
- package/dist/ui/ui/styles.css +1154 -0
- package/dist/validate.d.ts +21 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/validate.js +86 -0
- package/dist/validate.js.map +1 -0
- package/dist/vectorstore/chunker.d.ts +48 -0
- package/dist/vectorstore/chunker.d.ts.map +1 -0
- package/dist/vectorstore/chunker.js +165 -0
- package/dist/vectorstore/chunker.js.map +1 -0
- package/dist/vectorstore/index.d.ts +5 -0
- package/dist/vectorstore/index.d.ts.map +1 -0
- package/dist/vectorstore/index.js +3 -0
- package/dist/vectorstore/index.js.map +1 -0
- package/dist/vectorstore/store.d.ts +139 -0
- package/dist/vectorstore/store.d.ts.map +1 -0
- package/dist/vectorstore/store.js +500 -0
- package/dist/vectorstore/store.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/docs/ARCHITECTURE.md +244 -0
- package/docs/DASHBOARD.md +133 -0
- package/docs/SETUP.md +178 -0
- package/package.json +92 -0
- package/scripts/copy-ui.js +6 -0
|
@@ -0,0 +1,373 @@
|
|
|
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.0" />
|
|
6
|
+
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
7
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
8
|
+
<link
|
|
9
|
+
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap"
|
|
10
|
+
rel="stylesheet"
|
|
11
|
+
/>
|
|
12
|
+
<link
|
|
13
|
+
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap"
|
|
14
|
+
rel="stylesheet"
|
|
15
|
+
/>
|
|
16
|
+
<link rel="stylesheet" href="styles.css" />
|
|
17
|
+
<link
|
|
18
|
+
rel="icon"
|
|
19
|
+
href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><circle cx='13' cy='13' r='9' fill='none' stroke='%235d8da8' stroke-width='3'/><line x1='20' y1='20' x2='28' y2='28' stroke='%235d8da8' stroke-width='3' stroke-linecap='round'/><circle cx='13' cy='13' r='4' fill='%235d8da8' opacity='.3'/></svg>"
|
|
20
|
+
/>
|
|
21
|
+
|
|
22
|
+
<title>agent-knowledge</title>
|
|
23
|
+
</head>
|
|
24
|
+
<body>
|
|
25
|
+
<header role="banner">
|
|
26
|
+
<div class="header-left">
|
|
27
|
+
<span class="material-symbols-outlined brand-icon">psychology</span>
|
|
28
|
+
<h1>agent-knowledge</h1>
|
|
29
|
+
<span class="version" id="version">v1.0.0</span>
|
|
30
|
+
<span
|
|
31
|
+
id="connection-status"
|
|
32
|
+
class="status-badge disconnected"
|
|
33
|
+
role="status"
|
|
34
|
+
aria-live="polite"
|
|
35
|
+
>Connecting</span
|
|
36
|
+
>
|
|
37
|
+
</div>
|
|
38
|
+
<div class="header-right">
|
|
39
|
+
<div class="stats" id="stats" aria-live="polite" aria-atomic="true">
|
|
40
|
+
<span class="stat-badge" id="stat-knowledge" title="Knowledge entries">
|
|
41
|
+
<span class="material-symbols-outlined stat-icon">folder</span>
|
|
42
|
+
<span class="stat-value">0</span>
|
|
43
|
+
</span>
|
|
44
|
+
<span class="stat-badge" id="stat-sessions" title="Sessions">
|
|
45
|
+
<span class="material-symbols-outlined stat-icon">history</span>
|
|
46
|
+
<span class="stat-value">0</span>
|
|
47
|
+
</span>
|
|
48
|
+
<span class="stat-badge" id="stat-vectors" title="Vector embeddings">
|
|
49
|
+
<span class="material-symbols-outlined stat-icon">neurology</span>
|
|
50
|
+
<span class="stat-value">0</span>
|
|
51
|
+
</span>
|
|
52
|
+
</div>
|
|
53
|
+
<button id="theme-toggle" class="icon-btn" title="Toggle theme" aria-label="Toggle theme">
|
|
54
|
+
<span class="material-symbols-outlined theme-icon">dark_mode</span>
|
|
55
|
+
</button>
|
|
56
|
+
</div>
|
|
57
|
+
</header>
|
|
58
|
+
|
|
59
|
+
<nav class="tab-bar" role="tablist" aria-label="Main navigation">
|
|
60
|
+
<button
|
|
61
|
+
id="tab-knowledge"
|
|
62
|
+
class="tab active"
|
|
63
|
+
role="tab"
|
|
64
|
+
aria-selected="true"
|
|
65
|
+
aria-controls="view-knowledge"
|
|
66
|
+
data-view="knowledge"
|
|
67
|
+
>
|
|
68
|
+
<span class="material-symbols-outlined tab-icon">folder</span>
|
|
69
|
+
Knowledge
|
|
70
|
+
</button>
|
|
71
|
+
<button
|
|
72
|
+
id="tab-search"
|
|
73
|
+
class="tab"
|
|
74
|
+
role="tab"
|
|
75
|
+
aria-selected="false"
|
|
76
|
+
aria-controls="view-search"
|
|
77
|
+
data-view="search"
|
|
78
|
+
>
|
|
79
|
+
<span class="material-symbols-outlined tab-icon">search</span>
|
|
80
|
+
Search
|
|
81
|
+
</button>
|
|
82
|
+
<button
|
|
83
|
+
id="tab-sessions"
|
|
84
|
+
class="tab"
|
|
85
|
+
role="tab"
|
|
86
|
+
aria-selected="false"
|
|
87
|
+
aria-controls="view-sessions"
|
|
88
|
+
data-view="sessions"
|
|
89
|
+
>
|
|
90
|
+
<span class="material-symbols-outlined tab-icon">history</span>
|
|
91
|
+
Sessions
|
|
92
|
+
</button>
|
|
93
|
+
<button
|
|
94
|
+
id="tab-recall"
|
|
95
|
+
class="tab"
|
|
96
|
+
role="tab"
|
|
97
|
+
aria-selected="false"
|
|
98
|
+
aria-controls="view-recall"
|
|
99
|
+
data-view="recall"
|
|
100
|
+
>
|
|
101
|
+
<span class="material-symbols-outlined tab-icon">psychology</span>
|
|
102
|
+
Recall
|
|
103
|
+
</button>
|
|
104
|
+
<button
|
|
105
|
+
id="tab-embeddings"
|
|
106
|
+
class="tab"
|
|
107
|
+
role="tab"
|
|
108
|
+
aria-selected="false"
|
|
109
|
+
aria-controls="view-embeddings"
|
|
110
|
+
data-view="embeddings"
|
|
111
|
+
>
|
|
112
|
+
<span class="material-symbols-outlined tab-icon">neurology</span>
|
|
113
|
+
Embeddings
|
|
114
|
+
</button>
|
|
115
|
+
</nav>
|
|
116
|
+
|
|
117
|
+
<div class="content-wrapper" id="content-wrapper">
|
|
118
|
+
<main id="content">
|
|
119
|
+
<!-- ===== Knowledge Tab ===== -->
|
|
120
|
+
<section
|
|
121
|
+
id="view-knowledge"
|
|
122
|
+
class="view active"
|
|
123
|
+
role="tabpanel"
|
|
124
|
+
aria-labelledby="tab-knowledge"
|
|
125
|
+
>
|
|
126
|
+
<div class="view-header">
|
|
127
|
+
<h2><span class="material-symbols-outlined view-icon">folder</span>Knowledge Base</h2>
|
|
128
|
+
</div>
|
|
129
|
+
<div
|
|
130
|
+
class="filter-chips"
|
|
131
|
+
id="knowledge-categories"
|
|
132
|
+
role="group"
|
|
133
|
+
aria-label="Filter by category"
|
|
134
|
+
>
|
|
135
|
+
<button class="chip active" data-category="all">
|
|
136
|
+
<span class="material-symbols-outlined chip-icon">select_all</span>All
|
|
137
|
+
</button>
|
|
138
|
+
<button class="chip" data-category="projects">
|
|
139
|
+
<span class="material-symbols-outlined chip-icon">code</span>Projects
|
|
140
|
+
</button>
|
|
141
|
+
<button class="chip" data-category="people">
|
|
142
|
+
<span class="material-symbols-outlined chip-icon">group</span>People
|
|
143
|
+
</button>
|
|
144
|
+
<button class="chip" data-category="decisions">
|
|
145
|
+
<span class="material-symbols-outlined chip-icon">gavel</span>Decisions
|
|
146
|
+
</button>
|
|
147
|
+
<button class="chip" data-category="workflows">
|
|
148
|
+
<span class="material-symbols-outlined chip-icon">account_tree</span>Workflows
|
|
149
|
+
</button>
|
|
150
|
+
<button class="chip" data-category="notes">
|
|
151
|
+
<span class="material-symbols-outlined chip-icon">sticky_note_2</span>Notes
|
|
152
|
+
</button>
|
|
153
|
+
</div>
|
|
154
|
+
<div id="knowledge-grid" class="card-grid"></div>
|
|
155
|
+
<div id="knowledge-empty" class="empty-state hidden">
|
|
156
|
+
<span class="material-symbols-outlined empty-icon">folder_off</span>
|
|
157
|
+
<div class="empty-text">No knowledge entries found</div>
|
|
158
|
+
<div class="empty-hint">
|
|
159
|
+
Entries will appear here when added via the knowledge MCP tools
|
|
160
|
+
</div>
|
|
161
|
+
</div>
|
|
162
|
+
</section>
|
|
163
|
+
|
|
164
|
+
<!-- ===== Search Tab ===== -->
|
|
165
|
+
<section id="view-search" class="view" role="tabpanel" aria-labelledby="tab-search" hidden>
|
|
166
|
+
<div class="view-header">
|
|
167
|
+
<h2><span class="material-symbols-outlined view-icon">search</span>Search Sessions</h2>
|
|
168
|
+
</div>
|
|
169
|
+
<div class="search-bar">
|
|
170
|
+
<span class="material-symbols-outlined search-input-icon">search</span>
|
|
171
|
+
<input
|
|
172
|
+
type="search"
|
|
173
|
+
id="search-input"
|
|
174
|
+
class="search-input"
|
|
175
|
+
placeholder="Search sessions..."
|
|
176
|
+
autocomplete="off"
|
|
177
|
+
aria-label="Search sessions"
|
|
178
|
+
/>
|
|
179
|
+
</div>
|
|
180
|
+
<div class="search-controls">
|
|
181
|
+
<div
|
|
182
|
+
class="filter-chips"
|
|
183
|
+
id="search-role-filters"
|
|
184
|
+
role="group"
|
|
185
|
+
aria-label="Filter by role"
|
|
186
|
+
>
|
|
187
|
+
<button class="chip active" data-role="all">All</button>
|
|
188
|
+
<button class="chip" data-role="user">
|
|
189
|
+
<span class="material-symbols-outlined chip-icon">person</span>User
|
|
190
|
+
</button>
|
|
191
|
+
<button class="chip" data-role="assistant">
|
|
192
|
+
<span class="material-symbols-outlined chip-icon">smart_toy</span>Assistant
|
|
193
|
+
</button>
|
|
194
|
+
</div>
|
|
195
|
+
<div class="mode-toggle" role="group" aria-label="Search mode">
|
|
196
|
+
<button
|
|
197
|
+
class="mode-btn active"
|
|
198
|
+
id="mode-ranked"
|
|
199
|
+
data-mode="ranked"
|
|
200
|
+
title="TF-IDF ranked search"
|
|
201
|
+
>
|
|
202
|
+
<span class="material-symbols-outlined">sort</span>Ranked
|
|
203
|
+
</button>
|
|
204
|
+
<button
|
|
205
|
+
class="mode-btn"
|
|
206
|
+
id="mode-semantic"
|
|
207
|
+
data-mode="semantic"
|
|
208
|
+
title="Hybrid semantic + TF-IDF search"
|
|
209
|
+
>
|
|
210
|
+
<span class="material-symbols-outlined">neurology</span>Semantic
|
|
211
|
+
</button>
|
|
212
|
+
<button
|
|
213
|
+
class="mode-btn"
|
|
214
|
+
id="mode-regex"
|
|
215
|
+
data-mode="regex"
|
|
216
|
+
title="Regular expression search"
|
|
217
|
+
>
|
|
218
|
+
<span class="material-symbols-outlined">code</span>Regex
|
|
219
|
+
</button>
|
|
220
|
+
</div>
|
|
221
|
+
</div>
|
|
222
|
+
<div id="search-results" class="results-list"></div>
|
|
223
|
+
<div id="search-empty" class="empty-state">
|
|
224
|
+
<span class="material-symbols-outlined empty-icon">manage_search</span>
|
|
225
|
+
<div class="empty-text">Search across session transcripts</div>
|
|
226
|
+
<div class="empty-hint">Enter a query above to find matching messages</div>
|
|
227
|
+
</div>
|
|
228
|
+
</section>
|
|
229
|
+
|
|
230
|
+
<!-- ===== Sessions Tab ===== -->
|
|
231
|
+
<section
|
|
232
|
+
id="view-sessions"
|
|
233
|
+
class="view"
|
|
234
|
+
role="tabpanel"
|
|
235
|
+
aria-labelledby="tab-sessions"
|
|
236
|
+
hidden
|
|
237
|
+
>
|
|
238
|
+
<div class="view-header">
|
|
239
|
+
<h2><span class="material-symbols-outlined view-icon">history</span>Sessions</h2>
|
|
240
|
+
<div class="view-actions">
|
|
241
|
+
<select
|
|
242
|
+
id="session-project-filter"
|
|
243
|
+
class="filter-select"
|
|
244
|
+
aria-label="Filter by project"
|
|
245
|
+
>
|
|
246
|
+
<option value="">All projects</option>
|
|
247
|
+
</select>
|
|
248
|
+
</div>
|
|
249
|
+
</div>
|
|
250
|
+
<div id="sessions-list" class="sessions-list"></div>
|
|
251
|
+
<div id="sessions-empty" class="empty-state hidden">
|
|
252
|
+
<span class="material-symbols-outlined empty-icon">event_busy</span>
|
|
253
|
+
<div class="empty-text">No sessions found</div>
|
|
254
|
+
<div class="empty-hint">Sessions will appear here once indexed</div>
|
|
255
|
+
</div>
|
|
256
|
+
</section>
|
|
257
|
+
|
|
258
|
+
<!-- ===== Recall Tab ===== -->
|
|
259
|
+
<section id="view-recall" class="view" role="tabpanel" aria-labelledby="tab-recall" hidden>
|
|
260
|
+
<div class="view-header">
|
|
261
|
+
<h2><span class="material-symbols-outlined view-icon">psychology</span>Recall</h2>
|
|
262
|
+
</div>
|
|
263
|
+
<div class="filter-chips" id="recall-scopes" role="group" aria-label="Filter by scope">
|
|
264
|
+
<button class="chip active" data-scope="all">
|
|
265
|
+
<span class="material-symbols-outlined chip-icon">select_all</span>All
|
|
266
|
+
</button>
|
|
267
|
+
<button class="chip" data-scope="errors">
|
|
268
|
+
<span class="material-symbols-outlined chip-icon">error</span>Errors
|
|
269
|
+
</button>
|
|
270
|
+
<button class="chip" data-scope="plans">
|
|
271
|
+
<span class="material-symbols-outlined chip-icon">checklist</span>Plans
|
|
272
|
+
</button>
|
|
273
|
+
<button class="chip" data-scope="configs">
|
|
274
|
+
<span class="material-symbols-outlined chip-icon">settings</span>Configs
|
|
275
|
+
</button>
|
|
276
|
+
<button class="chip" data-scope="tools">
|
|
277
|
+
<span class="material-symbols-outlined chip-icon">build</span>Tools
|
|
278
|
+
</button>
|
|
279
|
+
<button class="chip" data-scope="files">
|
|
280
|
+
<span class="material-symbols-outlined chip-icon">description</span>Files
|
|
281
|
+
</button>
|
|
282
|
+
<button class="chip" data-scope="decisions">
|
|
283
|
+
<span class="material-symbols-outlined chip-icon">gavel</span>Decisions
|
|
284
|
+
</button>
|
|
285
|
+
</div>
|
|
286
|
+
<div class="search-bar">
|
|
287
|
+
<span class="material-symbols-outlined search-input-icon">psychology</span>
|
|
288
|
+
<input
|
|
289
|
+
type="search"
|
|
290
|
+
id="recall-input"
|
|
291
|
+
class="search-input"
|
|
292
|
+
placeholder="Query recall..."
|
|
293
|
+
autocomplete="off"
|
|
294
|
+
aria-label="Query recall"
|
|
295
|
+
/>
|
|
296
|
+
</div>
|
|
297
|
+
<label class="semantic-toggle" title="Enable semantic similarity search">
|
|
298
|
+
<input type="checkbox" id="recall-semantic" checked />
|
|
299
|
+
<span class="material-symbols-outlined toggle-icon">neurology</span>
|
|
300
|
+
Semantic
|
|
301
|
+
</label>
|
|
302
|
+
<div id="recall-results" class="results-list"></div>
|
|
303
|
+
<div id="recall-empty" class="empty-state">
|
|
304
|
+
<span class="material-symbols-outlined empty-icon">psychology</span>
|
|
305
|
+
<div class="empty-text">Scoped recall across sessions</div>
|
|
306
|
+
<div class="empty-hint">
|
|
307
|
+
Select a scope and enter a query to recall relevant information
|
|
308
|
+
</div>
|
|
309
|
+
</div>
|
|
310
|
+
</section>
|
|
311
|
+
|
|
312
|
+
<!-- ===== Embeddings Tab ===== -->
|
|
313
|
+
<section
|
|
314
|
+
id="view-embeddings"
|
|
315
|
+
class="view"
|
|
316
|
+
role="tabpanel"
|
|
317
|
+
aria-labelledby="tab-embeddings"
|
|
318
|
+
hidden
|
|
319
|
+
>
|
|
320
|
+
<div class="view-header">
|
|
321
|
+
<h2><span class="material-symbols-outlined view-icon">neurology</span>Embeddings</h2>
|
|
322
|
+
</div>
|
|
323
|
+
<div id="embeddings-status" class="embeddings-dashboard">
|
|
324
|
+
<div class="embedding-stats-grid" id="embedding-stats-grid"></div>
|
|
325
|
+
</div>
|
|
326
|
+
<div id="embeddings-empty" class="empty-state">
|
|
327
|
+
<span class="material-symbols-outlined empty-icon">neurology</span>
|
|
328
|
+
<div class="empty-text">Vector index not initialized</div>
|
|
329
|
+
<div class="empty-hint">Embeddings are generated automatically on server startup</div>
|
|
330
|
+
</div>
|
|
331
|
+
</section>
|
|
332
|
+
</main>
|
|
333
|
+
|
|
334
|
+
<aside
|
|
335
|
+
id="side-panel"
|
|
336
|
+
class="side-panel"
|
|
337
|
+
role="complementary"
|
|
338
|
+
aria-label="Detail view"
|
|
339
|
+
hidden
|
|
340
|
+
>
|
|
341
|
+
<div class="panel-header">
|
|
342
|
+
<div class="panel-title" id="panel-title"></div>
|
|
343
|
+
<button id="panel-close" class="icon-btn" title="Close panel" aria-label="Close panel">
|
|
344
|
+
<span class="material-symbols-outlined">close</span>
|
|
345
|
+
</button>
|
|
346
|
+
</div>
|
|
347
|
+
<div class="panel-body" id="panel-body"></div>
|
|
348
|
+
</aside>
|
|
349
|
+
</div>
|
|
350
|
+
|
|
351
|
+
<div id="loading-overlay" class="loading-overlay" aria-label="Loading">
|
|
352
|
+
<div class="loading-spinner"></div>
|
|
353
|
+
<div class="loading-text">Connecting to agent-knowledge...</div>
|
|
354
|
+
</div>
|
|
355
|
+
|
|
356
|
+
<div id="toast-container" class="toast-container" aria-live="polite"></div>
|
|
357
|
+
|
|
358
|
+
<script src="https://cdn.jsdelivr.net/npm/marked@15/marked.min.js"></script>
|
|
359
|
+
<script src="https://cdn.jsdelivr.net/npm/dompurify@3/dist/purify.min.js"></script>
|
|
360
|
+
<link
|
|
361
|
+
rel="stylesheet"
|
|
362
|
+
href="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11/build/styles/github.min.css"
|
|
363
|
+
media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)"
|
|
364
|
+
/>
|
|
365
|
+
<link
|
|
366
|
+
rel="stylesheet"
|
|
367
|
+
href="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11/build/styles/github-dark.min.css"
|
|
368
|
+
media="(prefers-color-scheme: dark)"
|
|
369
|
+
/>
|
|
370
|
+
<script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11/build/highlight.min.js"></script>
|
|
371
|
+
<script src="app.js"></script>
|
|
372
|
+
</body>
|
|
373
|
+
</html>
|