@mgamil/mapx 0.2.4

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 (203) hide show
  1. package/LICENSE +194 -0
  2. package/README.md +488 -0
  3. package/VERSION +1 -0
  4. package/dist/agents/generator.d.ts +74 -0
  5. package/dist/agents/generator.js +375 -0
  6. package/dist/agents/templates.d.ts +29 -0
  7. package/dist/agents/templates.js +459 -0
  8. package/dist/cli.d.ts +16 -0
  9. package/dist/cli.js +1835 -0
  10. package/dist/core/cluster-engine.d.ts +32 -0
  11. package/dist/core/cluster-engine.js +314 -0
  12. package/dist/core/config.d.ts +29 -0
  13. package/dist/core/config.js +178 -0
  14. package/dist/core/context-builder.d.ts +61 -0
  15. package/dist/core/context-builder.js +252 -0
  16. package/dist/core/flow-tracer.d.ts +63 -0
  17. package/dist/core/flow-tracer.js +366 -0
  18. package/dist/core/git-tracker.d.ts +20 -0
  19. package/dist/core/git-tracker.js +159 -0
  20. package/dist/core/graph.d.ts +42 -0
  21. package/dist/core/graph.js +186 -0
  22. package/dist/core/metrics.d.ts +24 -0
  23. package/dist/core/metrics.js +87 -0
  24. package/dist/core/scanner.d.ts +53 -0
  25. package/dist/core/scanner.js +949 -0
  26. package/dist/core/store-bun.d.ts +13 -0
  27. package/dist/core/store-bun.js +34 -0
  28. package/dist/core/store-interface.d.ts +15 -0
  29. package/dist/core/store-interface.js +7 -0
  30. package/dist/core/store-node.d.ts +13 -0
  31. package/dist/core/store-node.js +35 -0
  32. package/dist/core/store.d.ts +132 -0
  33. package/dist/core/store.js +614 -0
  34. package/dist/core/workspace-manager.d.ts +9 -0
  35. package/dist/core/workspace-manager.js +64 -0
  36. package/dist/exporters/dot-exporter.d.ts +16 -0
  37. package/dist/exporters/dot-exporter.js +179 -0
  38. package/dist/exporters/graph-exporter.d.ts +14 -0
  39. package/dist/exporters/graph-exporter.js +85 -0
  40. package/dist/exporters/index.d.ts +9 -0
  41. package/dist/exporters/index.js +12 -0
  42. package/dist/exporters/llm-exporter.d.ts +18 -0
  43. package/dist/exporters/llm-exporter.js +224 -0
  44. package/dist/exporters/svg-exporter.d.ts +19 -0
  45. package/dist/exporters/svg-exporter.js +319 -0
  46. package/dist/exporters/toon-exporter.d.ts +16 -0
  47. package/dist/exporters/toon-exporter.js +246 -0
  48. package/dist/frameworks/detectors/aspnet.d.ts +11 -0
  49. package/dist/frameworks/detectors/aspnet.js +52 -0
  50. package/dist/frameworks/detectors/django.d.ts +14 -0
  51. package/dist/frameworks/detectors/django.js +135 -0
  52. package/dist/frameworks/detectors/drupal.d.ts +13 -0
  53. package/dist/frameworks/detectors/drupal.js +94 -0
  54. package/dist/frameworks/detectors/express.d.ts +12 -0
  55. package/dist/frameworks/detectors/express.js +234 -0
  56. package/dist/frameworks/detectors/fastapi.d.ts +12 -0
  57. package/dist/frameworks/detectors/fastapi.js +203 -0
  58. package/dist/frameworks/detectors/flask.d.ts +12 -0
  59. package/dist/frameworks/detectors/flask.js +244 -0
  60. package/dist/frameworks/detectors/go.d.ts +11 -0
  61. package/dist/frameworks/detectors/go.js +75 -0
  62. package/dist/frameworks/detectors/laravel.d.ts +11 -0
  63. package/dist/frameworks/detectors/laravel.js +462 -0
  64. package/dist/frameworks/detectors/nestjs.d.ts +12 -0
  65. package/dist/frameworks/detectors/nestjs.js +155 -0
  66. package/dist/frameworks/detectors/nextjs.d.ts +11 -0
  67. package/dist/frameworks/detectors/nextjs.js +118 -0
  68. package/dist/frameworks/detectors/rails.d.ts +12 -0
  69. package/dist/frameworks/detectors/rails.js +76 -0
  70. package/dist/frameworks/detectors/react-router.d.ts +11 -0
  71. package/dist/frameworks/detectors/react-router.js +115 -0
  72. package/dist/frameworks/detectors/rust.d.ts +11 -0
  73. package/dist/frameworks/detectors/rust.js +59 -0
  74. package/dist/frameworks/detectors/spring.d.ts +11 -0
  75. package/dist/frameworks/detectors/spring.js +56 -0
  76. package/dist/frameworks/detectors/sveltekit.d.ts +11 -0
  77. package/dist/frameworks/detectors/sveltekit.js +154 -0
  78. package/dist/frameworks/detectors/symfony.d.ts +13 -0
  79. package/dist/frameworks/detectors/symfony.js +175 -0
  80. package/dist/frameworks/detectors/tanstack-router.d.ts +12 -0
  81. package/dist/frameworks/detectors/tanstack-router.js +80 -0
  82. package/dist/frameworks/detectors/vapor.d.ts +11 -0
  83. package/dist/frameworks/detectors/vapor.js +52 -0
  84. package/dist/frameworks/detectors/vue-router.d.ts +12 -0
  85. package/dist/frameworks/detectors/vue-router.js +237 -0
  86. package/dist/frameworks/detectors/wordpress.d.ts +13 -0
  87. package/dist/frameworks/detectors/wordpress.js +141 -0
  88. package/dist/frameworks/detectors/yii.d.ts +11 -0
  89. package/dist/frameworks/detectors/yii.js +131 -0
  90. package/dist/frameworks/framework-registry.d.ts +13 -0
  91. package/dist/frameworks/framework-registry.js +77 -0
  92. package/dist/frameworks/route-registry.d.ts +26 -0
  93. package/dist/frameworks/route-registry.js +102 -0
  94. package/dist/index.d.ts +19 -0
  95. package/dist/index.js +30 -0
  96. package/dist/languages/index.d.ts +2 -0
  97. package/dist/languages/index.js +7 -0
  98. package/dist/languages/installer.d.ts +13 -0
  99. package/dist/languages/installer.js +103 -0
  100. package/dist/languages/registry.d.ts +19 -0
  101. package/dist/languages/registry.js +427 -0
  102. package/dist/main.d.ts +2 -0
  103. package/dist/main.js +20 -0
  104. package/dist/mcp.d.ts +11 -0
  105. package/dist/mcp.js +1699 -0
  106. package/dist/parsers/common-methods.d.ts +3 -0
  107. package/dist/parsers/common-methods.js +33 -0
  108. package/dist/parsers/fallback-parser.d.ts +10 -0
  109. package/dist/parsers/fallback-parser.js +18 -0
  110. package/dist/parsers/generic-wasm-parser.d.ts +23 -0
  111. package/dist/parsers/generic-wasm-parser.js +168 -0
  112. package/dist/parsers/ignored-symbols.d.ts +26 -0
  113. package/dist/parsers/ignored-symbols.js +77 -0
  114. package/dist/parsers/index.d.ts +9 -0
  115. package/dist/parsers/index.js +13 -0
  116. package/dist/parsers/languages/javascript.d.ts +11 -0
  117. package/dist/parsers/languages/javascript.js +28 -0
  118. package/dist/parsers/languages/php.d.ts +15 -0
  119. package/dist/parsers/languages/php.js +648 -0
  120. package/dist/parsers/languages/typescript.d.ts +10 -0
  121. package/dist/parsers/languages/typescript.js +9 -0
  122. package/dist/parsers/languages/vue.d.ts +13 -0
  123. package/dist/parsers/languages/vue.js +63 -0
  124. package/dist/parsers/parse-worker.d.ts +2 -0
  125. package/dist/parsers/parse-worker.js +185 -0
  126. package/dist/parsers/parser-interface.d.ts +9 -0
  127. package/dist/parsers/parser-interface.js +0 -0
  128. package/dist/parsers/parser-registry.d.ts +8 -0
  129. package/dist/parsers/parser-registry.js +52 -0
  130. package/dist/parsers/wasm-parser.d.ts +16 -0
  131. package/dist/parsers/wasm-parser.js +110 -0
  132. package/dist/types.d.ts +172 -0
  133. package/dist/types.js +0 -0
  134. package/dist/ui/index.html +270 -0
  135. package/dist/ui/main.js +581 -0
  136. package/dist/ui/main.js.map +7 -0
  137. package/dist/ui/styles.css +573 -0
  138. package/dist/ui-events.d.ts +36 -0
  139. package/dist/ui-events.js +61 -0
  140. package/dist/ui-server.d.ts +12 -0
  141. package/dist/ui-server.js +504 -0
  142. package/package.json +179 -0
  143. package/queries/bash/references.scm +22 -0
  144. package/queries/bash/symbols.scm +15 -0
  145. package/queries/c/references.scm +14 -0
  146. package/queries/c/symbols.scm +30 -0
  147. package/queries/c-sharp/references.scm +26 -0
  148. package/queries/c-sharp/symbols.scm +57 -0
  149. package/queries/cpp/references.scm +21 -0
  150. package/queries/cpp/symbols.scm +44 -0
  151. package/queries/dart/references.scm +33 -0
  152. package/queries/dart/symbols.scm +38 -0
  153. package/queries/elixir/references.scm +45 -0
  154. package/queries/elixir/symbols.scm +41 -0
  155. package/queries/go/references.scm +22 -0
  156. package/queries/go/symbols.scm +53 -0
  157. package/queries/java/references.scm +32 -0
  158. package/queries/java/symbols.scm +41 -0
  159. package/queries/javascript/references.scm +14 -0
  160. package/queries/javascript/symbols.scm +23 -0
  161. package/queries/kotlin/references.scm +31 -0
  162. package/queries/kotlin/symbols.scm +24 -0
  163. package/queries/lua/references.scm +19 -0
  164. package/queries/lua/symbols.scm +29 -0
  165. package/queries/pascal/references.scm +29 -0
  166. package/queries/pascal/symbols.scm +45 -0
  167. package/queries/php/references.scm +109 -0
  168. package/queries/php/symbols.scm +33 -0
  169. package/queries/python/references.scm +50 -0
  170. package/queries/python/symbols.scm +21 -0
  171. package/queries/ruby/references.scm +48 -0
  172. package/queries/ruby/symbols.scm +24 -0
  173. package/queries/rust/references.scm +31 -0
  174. package/queries/rust/symbols.scm +35 -0
  175. package/queries/scala/references.scm +30 -0
  176. package/queries/scala/symbols.scm +35 -0
  177. package/queries/svelte/references.scm +20 -0
  178. package/queries/svelte/symbols.scm +30 -0
  179. package/queries/swift/references.scm +22 -0
  180. package/queries/swift/symbols.scm +37 -0
  181. package/queries/typescript/references.scm +25 -0
  182. package/queries/typescript/symbols.scm +35 -0
  183. package/queries/vue/references.scm +20 -0
  184. package/queries/vue/symbols.scm +28 -0
  185. package/queries/zig/references.scm +20 -0
  186. package/queries/zig/symbols.scm +22 -0
  187. package/wasm/tree-sitter-c.wasm +0 -0
  188. package/wasm/tree-sitter-c_sharp.wasm +0 -0
  189. package/wasm/tree-sitter-cpp.wasm +0 -0
  190. package/wasm/tree-sitter-dart.wasm +0 -0
  191. package/wasm/tree-sitter-go.wasm +0 -0
  192. package/wasm/tree-sitter-java.wasm +0 -0
  193. package/wasm/tree-sitter-javascript.wasm +0 -0
  194. package/wasm/tree-sitter-kotlin.wasm +0 -0
  195. package/wasm/tree-sitter-php.wasm +0 -0
  196. package/wasm/tree-sitter-python.wasm +0 -0
  197. package/wasm/tree-sitter-ruby.wasm +0 -0
  198. package/wasm/tree-sitter-rust.wasm +0 -0
  199. package/wasm/tree-sitter-scala.wasm +0 -0
  200. package/wasm/tree-sitter-swift.wasm +0 -0
  201. package/wasm/tree-sitter-tsx.wasm +0 -0
  202. package/wasm/tree-sitter-typescript.wasm +0 -0
  203. package/wasm/tree-sitter-vue.wasm +0 -0
@@ -0,0 +1,270 @@
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
+ <title>MapX Web Dashboard</title>
7
+ <link rel="preconnect" href="https://fonts.googleapis.com">
8
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
9
+ <link href="https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
10
+ <link rel="stylesheet" href="styles.css">
11
+ <script src="main.js" type="module"></script>
12
+ </head>
13
+ <body class="dark-theme">
14
+ <div class="app-layout">
15
+ <!-- Sidebar Navigation -->
16
+ <aside class="sidebar">
17
+ <div class="sidebar-header">
18
+ <div class="logo">
19
+ <span class="logo-accent">MapX</span>Graph
20
+ </div>
21
+ <div class="status-indicator">
22
+ <span class="indicator-dot online"></span>
23
+ <span id="repo-name">Loading...</span>
24
+ </div>
25
+ </div>
26
+
27
+ <nav class="nav-menu">
28
+ <button class="nav-item active" data-tab="graph">
29
+ <svg class="nav-svg-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
30
+ <circle cx="18" cy="5" r="3"></circle>
31
+ <circle cx="6" cy="12" r="3"></circle>
32
+ <circle cx="18" cy="19" r="3"></circle>
33
+ <line x1="8.59" y1="13.51" x2="15.42" y2="17.49"></line>
34
+ <line x1="15.41" y1="6.51" x2="8.59" y2="10.49"></line>
35
+ </svg>
36
+ Graph Explorer
37
+ </button>
38
+ <button class="nav-item" data-tab="symbols">
39
+ <svg class="nav-svg-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
40
+ <circle cx="11" cy="11" r="8"></circle>
41
+ <line x1="21" y1="21" x2="16.65" y2="16.65"></line>
42
+ </svg>
43
+ Symbol Explorer
44
+ </button>
45
+ <button class="nav-item" data-tab="routes">
46
+ <svg class="nav-svg-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
47
+ <line x1="6" y1="3" x2="6" y2="15"></line>
48
+ <circle cx="18" cy="6" r="3"></circle>
49
+ <circle cx="6" cy="18" r="3"></circle>
50
+ <path d="M18 9a9 9 0 0 1-9 9"></path>
51
+ </svg>
52
+ Routes & Hooks
53
+ </button>
54
+ <button class="nav-item" data-tab="metrics">
55
+ <svg class="nav-svg-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
56
+ <line x1="18" y1="20" x2="18" y2="10"></line>
57
+ <line x1="12" y1="20" x2="12" y2="4"></line>
58
+ <line x1="6" y1="20" x2="6" y2="14"></line>
59
+ </svg>
60
+ Metrics
61
+ </button>
62
+ <button class="nav-item" data-tab="context">
63
+ <svg class="nav-svg-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
64
+ <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect>
65
+ <rect x="9" y="9" width="6" height="6"></rect>
66
+ <line x1="9" y1="1" x2="9" y2="3"></line>
67
+ <line x1="15" y1="1" x2="15" y2="3"></line>
68
+ <line x1="9" y1="21" x2="9" y2="23"></line>
69
+ <line x1="15" y1="21" x2="15" y2="23"></line>
70
+ <line x1="20" y1="9" x2="22" y2="9"></line>
71
+ <line x1="20" y1="15" x2="22" y2="15"></line>
72
+ <line x1="1" y1="9" x2="3" y2="9"></line>
73
+ <line x1="1" y1="15" x2="3" y2="15"></line>
74
+ </svg>
75
+ Context Builder
76
+ </button>
77
+ <button class="nav-item" data-tab="tool-log">
78
+ <svg class="nav-svg-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
79
+ <polyline points="4 17 10 11 4 5"></polyline>
80
+ <line x1="12" y1="19" x2="20" y2="19"></line>
81
+ </svg>
82
+ Tool Call Log
83
+ </button>
84
+ </nav>
85
+
86
+ <div class="sidebar-footer">
87
+ <div class="stats-mini">
88
+ <div>Files: <strong id="stat-files">-</strong></div>
89
+ <div>Symbols: <strong id="stat-symbols">-</strong></div>
90
+ <div>Edges: <strong id="stat-edges">-</strong></div>
91
+ </div>
92
+ </div>
93
+ </aside>
94
+
95
+ <!-- Main Content Area -->
96
+ <main class="main-content">
97
+ <!-- Tab: Graph Explorer -->
98
+ <section id="tab-graph" class="tab-pane active">
99
+ <div class="graph-container">
100
+ <div id="cy"></div>
101
+ <div class="graph-toolbar">
102
+ <button id="btn-layout-fcose" class="btn btn-secondary">fCoSE Layout</button>
103
+ <button id="btn-layout-circle" class="btn btn-secondary">Circle Layout</button>
104
+ <button id="btn-layout-grid" class="btn btn-secondary">Grid Layout</button>
105
+ <button id="btn-toggle-clusters" class="btn btn-secondary" style="display: inline-flex; align-items: center; gap: 8px;">
106
+ <svg class="nav-svg-icon" style="width: 16px; height: 16px; stroke: currentColor;" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
107
+ <rect x="3" y="3" width="7" height="9"></rect>
108
+ <rect x="14" y="3" width="7" height="5"></rect>
109
+ <rect x="14" y="12" width="7" height="9"></rect>
110
+ <rect x="3" y="16" width="7" height="5"></rect>
111
+ </svg>
112
+ <span>Show Clusters</span>
113
+ </button>
114
+ <select id="filter-lang" class="form-select">
115
+ <option value="">All Languages</option>
116
+ </select>
117
+ </div>
118
+ <div id="graph-details" class="details-panel">
119
+ <h3>Selection Details</h3>
120
+ <div id="details-content" class="details-placeholder">
121
+ Click a file node or dependency edge to view details.
122
+ </div>
123
+ </div>
124
+ </div>
125
+ </section>
126
+
127
+ <!-- Tab: Symbol Explorer -->
128
+ <section id="tab-symbols" class="tab-pane">
129
+ <div class="panel-header">
130
+ <h2>Symbol Explorer</h2>
131
+ <div class="search-bar">
132
+ <input type="text" id="symbol-search" placeholder="Search symbols..." class="form-control">
133
+ </div>
134
+ </div>
135
+ <div class="panel-body split-view">
136
+ <div class="split-left">
137
+ <table class="data-table" id="table-symbols">
138
+ <thead>
139
+ <tr>
140
+ <th>Name</th>
141
+ <th>Kind</th>
142
+ <th>File</th>
143
+ </tr>
144
+ </thead>
145
+ <tbody>
146
+ <!-- Symbols will be populated here -->
147
+ </tbody>
148
+ </table>
149
+ </div>
150
+ <div class="split-right" id="symbol-detail-view">
151
+ <div class="details-placeholder">Select a symbol to view callers, callees, and source code.</div>
152
+ </div>
153
+ </div>
154
+ </section>
155
+
156
+ <!-- Tab: Routes & Hooks -->
157
+ <section id="tab-routes" class="tab-pane">
158
+ <div class="panel-header">
159
+ <h2>Framework Routes & Hooks</h2>
160
+ </div>
161
+ <div class="panel-body">
162
+ <div class="tabs-sub">
163
+ <button class="tab-sub-btn active" data-subtab="subtab-routes-list">Routes</button>
164
+ <button class="tab-sub-btn" data-subtab="subtab-hooks-list">Hooks</button>
165
+ </div>
166
+
167
+ <div id="subtab-routes-list" class="subtab-pane active">
168
+ <table class="data-table" id="table-routes">
169
+ <thead>
170
+ <tr>
171
+ <th>Framework</th>
172
+ <th>Method</th>
173
+ <th>Path</th>
174
+ <th>Handler</th>
175
+ </tr>
176
+ </thead>
177
+ <tbody>
178
+ <!-- Routes will be populated here -->
179
+ </tbody>
180
+ </table>
181
+ </div>
182
+
183
+ <div id="subtab-hooks-list" class="subtab-pane">
184
+ <table class="data-table" id="table-hooks">
185
+ <thead>
186
+ <tr>
187
+ <th>Framework</th>
188
+ <th>Type</th>
189
+ <th>Hook Name</th>
190
+ <th>Handler</th>
191
+ </tr>
192
+ </thead>
193
+ <tbody>
194
+ <!-- Hooks will be populated here -->
195
+ </tbody>
196
+ </table>
197
+ </div>
198
+ </div>
199
+ </section>
200
+
201
+ <!-- Tab: Metrics -->
202
+ <section id="tab-metrics" class="tab-pane">
203
+ <div class="panel-header">
204
+ <h2>Metrics & Analytics</h2>
205
+ </div>
206
+ <div class="panel-body grid-metrics">
207
+ <div class="metric-card">
208
+ <h3>Complexity Breakdown</h3>
209
+ <div id="metrics-summary">Loading metrics...</div>
210
+ </div>
211
+ <div class="metric-card">
212
+ <h3>Language Breakdown</h3>
213
+ <div id="metrics-languages">Loading languages...</div>
214
+ </div>
215
+ <div class="metric-card">
216
+ <h3>Symbol Kinds Breakdown</h3>
217
+ <div id="metrics-kinds">Loading kinds...</div>
218
+ </div>
219
+ <div class="metric-card">
220
+ <h3>Dependency & Edges</h3>
221
+ <div id="metrics-edges">Loading edges...</div>
222
+ </div>
223
+ <div class="metric-card">
224
+ <h3>Storage & Git Status</h3>
225
+ <div id="metrics-git-storage">Loading storage & git status...</div>
226
+ </div>
227
+ <div class="metric-card">
228
+ <h3>Top Files (PageRank)</h3>
229
+ <ol id="top-files-list"></ol>
230
+ </div>
231
+ <div class="metric-card">
232
+ <h3>Top Symbols (PageRank)</h3>
233
+ <ol id="top-symbols-list"></ol>
234
+ </div>
235
+ </div>
236
+ </section>
237
+
238
+ <!-- Tab: Context Builder -->
239
+ <section id="tab-context" class="tab-pane">
240
+ <div class="panel-header">
241
+ <h2>Context Builder</h2>
242
+ <p class="subtitle">Extract optimal context for LLM prompts</p>
243
+ </div>
244
+ <div class="panel-body">
245
+ <div class="context-input-group">
246
+ <textarea id="context-task" class="form-control" rows="3" placeholder="Describe the task or question (e.g., 'How are user routes handled?')"></textarea>
247
+ <button id="btn-build-context" class="btn btn-primary">Build Context</button>
248
+ </div>
249
+ <div id="context-results" class="context-results-container">
250
+ <div class="details-placeholder">Describe a task above and build context.</div>
251
+ </div>
252
+ </div>
253
+ </section>
254
+
255
+ <!-- Tab: Tool Call Log -->
256
+ <section id="tab-tool-log" class="tab-pane">
257
+ <div class="panel-header">
258
+ <h2>Live Tool Call Log</h2>
259
+ <p class="subtitle">Intercepts and monitors incoming MCP tool requests in real-time</p>
260
+ </div>
261
+ <div class="panel-body">
262
+ <div class="log-console" id="tool-log-container">
263
+ <div class="log-placeholder" style="color: var(--text-muted); font-style: italic; padding: 20px; text-align: center;">Waiting for incoming MCP tool calls...</div>
264
+ </div>
265
+ </div>
266
+ </section>
267
+ </main>
268
+ </div>
269
+ </body>
270
+ </html>