pindex 1.5.0 → 1.7.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 (84) hide show
  1. package/README.md +25 -11
  2. package/dist/cli/daemon.d.ts +1 -1
  3. package/dist/cli/daemon.d.ts.map +1 -1
  4. package/dist/cli/daemon.js +25 -6
  5. package/dist/cli/daemon.js.map +1 -1
  6. package/dist/cli/federate.d.ts.map +1 -1
  7. package/dist/cli/federate.js +5 -12
  8. package/dist/cli/federate.js.map +1 -1
  9. package/dist/cli/index.js +6 -2
  10. package/dist/cli/index.js.map +1 -1
  11. package/dist/cli/init.d.ts.map +1 -1
  12. package/dist/cli/init.js +2 -1
  13. package/dist/cli/init.js.map +1 -1
  14. package/dist/cli/project-detector.d.ts +7 -0
  15. package/dist/cli/project-detector.d.ts.map +1 -1
  16. package/dist/cli/project-detector.js +28 -5
  17. package/dist/cli/project-detector.js.map +1 -1
  18. package/dist/cli/setup.d.ts.map +1 -1
  19. package/dist/cli/setup.js +3 -5
  20. package/dist/cli/setup.js.map +1 -1
  21. package/dist/db/queries.d.ts +14 -0
  22. package/dist/db/queries.d.ts.map +1 -1
  23. package/dist/db/queries.js +22 -3
  24. package/dist/db/queries.js.map +1 -1
  25. package/dist/federation/repo-set.js +3 -1
  26. package/dist/federation/repo-set.js.map +1 -1
  27. package/dist/federation/repos-env.d.ts +16 -0
  28. package/dist/federation/repos-env.d.ts.map +1 -0
  29. package/dist/federation/repos-env.js +27 -0
  30. package/dist/federation/repos-env.js.map +1 -0
  31. package/dist/gui/server.d.ts.map +1 -1
  32. package/dist/gui/server.js +63 -23
  33. package/dist/gui/server.js.map +1 -1
  34. package/dist/index.js +16 -31
  35. package/dist/index.js.map +1 -1
  36. package/dist/indexer/detect-languages.d.ts +10 -0
  37. package/dist/indexer/detect-languages.d.ts.map +1 -0
  38. package/dist/indexer/detect-languages.js +36 -0
  39. package/dist/indexer/detect-languages.js.map +1 -0
  40. package/dist/indexer/index.d.ts +2 -0
  41. package/dist/indexer/index.d.ts.map +1 -1
  42. package/dist/indexer/index.js +21 -9
  43. package/dist/indexer/index.js.map +1 -1
  44. package/dist/indexer/parser.d.ts.map +1 -1
  45. package/dist/indexer/parser.js +36 -5
  46. package/dist/indexer/parser.js.map +1 -1
  47. package/dist/indexer/summarizer.d.ts.map +1 -1
  48. package/dist/indexer/summarizer.js +3 -0
  49. package/dist/indexer/summarizer.js.map +1 -1
  50. package/dist/memory/retention.d.ts +16 -0
  51. package/dist/memory/retention.d.ts.map +1 -0
  52. package/dist/memory/retention.js +32 -0
  53. package/dist/memory/retention.js.map +1 -0
  54. package/dist/monitoring/server.d.ts.map +1 -1
  55. package/dist/monitoring/server.js +22 -1
  56. package/dist/monitoring/server.js.map +1 -1
  57. package/dist/monitoring/ui/dashboard.js +83 -31
  58. package/dist/monitoring/ui/esc.js +17 -0
  59. package/dist/monitoring/ui/index.html +17 -11
  60. package/dist/monitoring/ui/styles.css +24 -4
  61. package/dist/server-config.d.ts +18 -0
  62. package/dist/server-config.d.ts.map +1 -0
  63. package/dist/server-config.js +41 -0
  64. package/dist/server-config.js.map +1 -0
  65. package/dist/server.d.ts.map +1 -1
  66. package/dist/server.js +5 -1
  67. package/dist/server.js.map +1 -1
  68. package/dist/tools/get_dependencies.d.ts.map +1 -1
  69. package/dist/tools/get_dependencies.js +3 -0
  70. package/dist/tools/get_dependencies.js.map +1 -1
  71. package/dist/tools/get_doc_chunk.d.ts.map +1 -1
  72. package/dist/tools/get_doc_chunk.js +3 -0
  73. package/dist/tools/get_doc_chunk.js.map +1 -1
  74. package/dist/tools/get_file_summary.d.ts.map +1 -1
  75. package/dist/tools/get_file_summary.js +5 -0
  76. package/dist/tools/get_file_summary.js.map +1 -1
  77. package/dist/tools/schemas.d.ts.map +1 -1
  78. package/dist/tools/schemas.js +10 -2
  79. package/dist/tools/schemas.js.map +1 -1
  80. package/dist/util/net.d.ts +25 -0
  81. package/dist/util/net.d.ts.map +1 -0
  82. package/dist/util/net.js +50 -0
  83. package/dist/util/net.js.map +1 -0
  84. package/package.json +5 -5
@@ -1,8 +1,12 @@
1
- /* MCP Codebase Indexer – Live Dashboard (Vanilla JS + WebSocket) */
1
+ /* MCP Codebase Indexer – Live Dashboard (Vanilla JS + WebSocket, ESM module) */
2
+
3
+ import { escHtml } from './esc.js';
2
4
 
3
5
  // ─── State ────────────────────────────────────────────────────────────────────
4
6
 
5
7
  const MAX_CHART_POINTS = 20;
8
+ const RECONNECT_BASE_MS = 1000;
9
+ const RECONNECT_MAX_MS = 30000;
6
10
  const state = {
7
11
  calls: [],
8
12
  cumulativeActual: 0,
@@ -10,22 +14,52 @@ const state = {
10
14
  chart: null,
11
15
  ws: null,
12
16
  sessionId: null,
17
+ reconnectAttempts: 0,
18
+ reconnectTimer: null,
13
19
  };
14
20
 
15
21
  // ─── WebSocket Connection ─────────────────────────────────────────────────────
16
22
 
23
+ /** Reflects connection state in the status dot + accessible text label (UX-06). */
24
+ function setConnState(connected, message) {
25
+ const dot = document.getElementById('statusDot');
26
+ const text = document.getElementById('statusText');
27
+ const label = message || (connected ? 'Verbunden' : 'Getrennt');
28
+ dot.classList.toggle('connected', connected);
29
+ dot.setAttribute('aria-label', label);
30
+ if (text) text.textContent = label;
31
+ }
32
+
33
+ /** Capped exponential backoff with jitter, instead of a fixed 3s loop (UX-05). */
34
+ function scheduleReconnect() {
35
+ if (state.reconnectTimer) return;
36
+ const delay = Math.min(RECONNECT_MAX_MS, RECONNECT_BASE_MS * 2 ** state.reconnectAttempts);
37
+ const jitter = delay * 0.2 * Math.random();
38
+ state.reconnectAttempts++;
39
+ setConnState(false, 'Verbindung verloren – erneuter Versuch …');
40
+ state.reconnectTimer = setTimeout(() => {
41
+ state.reconnectTimer = null;
42
+ connect();
43
+ }, delay + jitter);
44
+ }
45
+
17
46
  function connect() {
18
47
  const protocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
19
48
  const ws = new WebSocket(`${protocol}//${location.host}`);
20
49
  state.ws = ws;
21
50
 
22
51
  ws.addEventListener('open', () => {
23
- document.getElementById('statusDot').classList.add('connected');
52
+ state.reconnectAttempts = 0;
53
+ setConnState(true, 'Verbunden');
24
54
  });
25
55
 
26
56
  ws.addEventListener('close', () => {
27
- document.getElementById('statusDot').classList.remove('connected');
28
- setTimeout(connect, 3000); // Reconnect
57
+ scheduleReconnect();
58
+ });
59
+
60
+ ws.addEventListener('error', () => {
61
+ // A 'close' normally follows, but reflect the drop immediately.
62
+ setConnState(false, 'Verbindungsfehler');
29
63
  });
30
64
 
31
65
  ws.addEventListener('message', (event) => {
@@ -42,11 +76,13 @@ function connect() {
42
76
 
43
77
  function handleEvent(event) {
44
78
  if (event.type === 'tool_call') {
45
- state.cumulativeActual = event.cumulative_actual;
46
- state.cumulativeSavings = event.cumulative_savings;
79
+ // The broadcast carries per-call figures; accumulate running totals here so
80
+ // the KPI cards show a session total, not the last call's value (UX-01).
81
+ state.cumulativeActual += event.tokens_actual || 0;
82
+ state.cumulativeSavings += event.savings || 0;
47
83
  state.sessionId = event.session_id;
48
84
 
49
- updateStatsCards(event);
85
+ updateStatsCards();
50
86
  updateChart(event);
51
87
  appendCallFeedItem(event);
52
88
  } else if (event.type === 'session_start' || event.type === 'session_update') {
@@ -62,12 +98,16 @@ function formatNumber(n) {
62
98
  return n.toLocaleString('de-DE');
63
99
  }
64
100
 
65
- function updateStatsCards(event) {
66
- document.getElementById('tokensUsed').textContent = formatNumber(event.cumulative_actual);
67
- document.getElementById('tokensSaved').textContent = formatNumber(event.cumulative_savings);
68
- document.getElementById('savingsPercent').textContent = event.savings_percent.toFixed(1) + '%';
69
- document.getElementById('savingsBar').style.width = Math.min(100, event.savings_percent) + '%';
70
- document.getElementById('barTokenCount').textContent = formatNumber(event.cumulative_actual) + ' Token';
101
+ function updateStatsCards() {
102
+ const actual = state.cumulativeActual;
103
+ const saved = state.cumulativeSavings;
104
+ const base = actual + saved;
105
+ const pct = base > 0 ? (saved / base) * 100 : 0;
106
+ document.getElementById('tokensUsed').textContent = formatNumber(actual);
107
+ document.getElementById('tokensSaved').textContent = formatNumber(saved);
108
+ document.getElementById('savingsPercent').textContent = pct.toFixed(1) + '%';
109
+ document.getElementById('savingsBar').style.width = Math.min(100, pct) + '%';
110
+ document.getElementById('barTokenCount').textContent = formatNumber(actual) + ' Token';
71
111
  }
72
112
 
73
113
  // ─── Chart ────────────────────────────────────────────────────────────────────
@@ -98,8 +138,9 @@ function initChart() {
98
138
  maintainAspectRatio: false,
99
139
  plugins: { legend: { labels: { color: '#9ca3af', font: { size: 11 } } } },
100
140
  scales: {
101
- x: { ticks: { color: '#6b7280', font: { size: 10 } }, grid: { color: '#1f2937' } },
102
- y: { ticks: { color: '#6b7280', font: { size: 10 } }, grid: { color: '#1f2937' } },
141
+ // #9ca3af matches the legend and clears WCAG AA on the chart bg (UX-02).
142
+ x: { ticks: { color: '#9ca3af', font: { size: 11 } }, grid: { color: '#1f2937' } },
143
+ y: { ticks: { color: '#9ca3af', font: { size: 11 } }, grid: { color: '#1f2937' } },
103
144
  },
104
145
  },
105
146
  });
@@ -126,14 +167,19 @@ function updateChart(event) {
126
167
 
127
168
  function appendCallFeedItem(event) {
128
169
  const feed = document.getElementById('callsFeed');
170
+ // Drop the "no calls yet" placeholder once real data arrives (UX-04).
171
+ feed.querySelector('.memory-empty')?.remove();
129
172
  const time = dayjs(event.timestamp).format('HH:mm:ss');
130
173
 
131
174
  const item = document.createElement('div');
132
175
  item.className = 'call-item';
176
+ // event.tool and event.query derive from MCP tool arguments — escape both
177
+ // before they touch innerHTML (SEC-07).
178
+ const toolLabel = escHtml(event.tool) + (event.query ? `("${escHtml(event.query)}")` : '');
133
179
  item.innerHTML = `
134
- <span class="call-time">${time}</span>
135
- <span class="call-tool">${event.tool}${event.query ? `("${event.query}")` : ''}</span>
136
- <span class="call-tokens"><span class="actual">${event.tokens_actual}</span> / ~${event.tokens_estimated}</span>
180
+ <span class="call-time">${escHtml(time)}</span>
181
+ <span class="call-tool">${toolLabel}</span>
182
+ <span class="call-tokens"><span class="actual">${escHtml(event.tokens_actual)}</span> / ~${escHtml(event.tokens_estimated)}</span>
137
183
  `;
138
184
 
139
185
  // Prepend so newest is at top
@@ -147,12 +193,23 @@ function appendCallFeedItem(event) {
147
193
 
148
194
  // ─── Session History ──────────────────────────────────────────────────────────
149
195
 
196
+ /** Renders a single full-width message row + dashes in the totals (UX-04). */
197
+ function setHistoryMessage(msg) {
198
+ document.getElementById('historyBody').innerHTML =
199
+ `<tr><td colspan="4" class="memory-empty">${escHtml(msg)}</td></tr>`;
200
+ document.getElementById('histTotalTokens').textContent = '-';
201
+ document.getElementById('histTotalSaved').textContent = '-';
202
+ document.getElementById('histTotalPct').textContent = '-';
203
+ }
204
+
150
205
  async function loadSessionHistory() {
151
206
  try {
152
207
  const res = await fetch('/api/sessions');
153
- if (!res.ok) return;
208
+ if (!res.ok) { setHistoryMessage('Fehler beim Laden der Session History'); return; }
154
209
  const sessions = await res.json();
155
210
 
211
+ if (!sessions.length) { setHistoryMessage('Noch keine Sessions'); return; }
212
+
156
213
  const tbody = document.getElementById('historyBody');
157
214
  tbody.innerHTML = '';
158
215
 
@@ -168,11 +225,13 @@ async function loadSessionHistory() {
168
225
  totalSaved += s.total_savings;
169
226
 
170
227
  const row = document.createElement('tr');
228
+ // s.label is attacker-influenceable (start_comparison tool arg) — escape it
229
+ // and every other interpolated value before it touches innerHTML (SEC-02).
171
230
  row.innerHTML = `
172
- <td>${s.label || s.id.substring(0, 8)}</td>
173
- <td>${formatNumber(s.total_tokens)}</td>
174
- <td>${formatNumber(s.total_savings)}</td>
175
- <td>${pct}%</td>
231
+ <td>${escHtml(s.label || s.id.substring(0, 8))}</td>
232
+ <td>${escHtml(formatNumber(s.total_tokens))}</td>
233
+ <td>${escHtml(formatNumber(s.total_savings))}</td>
234
+ <td>${escHtml(pct)}%</td>
176
235
  `;
177
236
  tbody.appendChild(row);
178
237
  }
@@ -184,6 +243,7 @@ async function loadSessionHistory() {
184
243
  document.getElementById('histTotalPct').textContent = grandPct + '%';
185
244
  } catch (e) {
186
245
  console.error('Failed to load session history:', e);
246
+ setHistoryMessage('Fehler beim Laden der Session History');
187
247
  }
188
248
  }
189
249
 
@@ -216,14 +276,6 @@ const AP_LABELS = {
216
276
  redundant_access: 'Redundanter Zugriff',
217
277
  };
218
278
 
219
- function escHtml(str) {
220
- return String(str ?? '')
221
- .replace(/&/g, '&amp;')
222
- .replace(/</g, '&lt;')
223
- .replace(/>/g, '&gt;')
224
- .replace(/"/g, '&quot;');
225
- }
226
-
227
279
  function renderAntiPatterns(items) {
228
280
  const feed = document.getElementById('antiPatternsFeed');
229
281
  const countEl = document.getElementById('apCount');
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Shared HTML-escaping helper for the monitoring dashboard.
3
+ *
4
+ * Exported as an ESM module so it can be unit-tested (tests/monitoring/esc.test.ts)
5
+ * and imported by dashboard.js. EVERY dynamic value interpolated into innerHTML —
6
+ * tool names, search queries, session labels, observations, file paths — must pass
7
+ * through this, because those fields are derived from MCP tool arguments and are
8
+ * therefore attacker-influenceable (SEC-02 / SEC-07).
9
+ */
10
+ export function escHtml(str) {
11
+ return String(str ?? '')
12
+ .replace(/&/g, '&amp;')
13
+ .replace(/</g, '&lt;')
14
+ .replace(/>/g, '&gt;')
15
+ .replace(/"/g, '&quot;')
16
+ .replace(/'/g, '&#39;');
17
+ }
@@ -9,22 +9,26 @@
9
9
  <script src="https://cdn.jsdelivr.net/npm/dayjs@1/dayjs.min.js"></script>
10
10
  </head>
11
11
  <body>
12
- <div class="header">
12
+ <header class="header">
13
13
  <div class="header-title">
14
- <span class="dot" id="statusDot">●</span>
14
+ <span class="conn-status" role="status" aria-live="polite">
15
+ <span class="dot" id="statusDot" aria-hidden="true">●</span>
16
+ <span id="statusText" class="conn-text">Verbinde…</span>
17
+ </span>
15
18
  <h1>MCP Codebase Indexer</h1>
16
19
  <span id="sessionLabel" class="session-label"></span>
17
20
  </div>
18
21
  <div class="header-meta">
19
22
  <label class="refresh-control" title="Aktualisierungsintervall der Session History">
20
23
  <span id="refreshLabel">30s</span>
21
- <input type="range" id="refreshSlider" min="1" max="60" value="30" step="1">
24
+ <input type="range" id="refreshSlider" min="1" max="60" value="30" step="1"
25
+ aria-label="Aktualisierungsintervall in Sekunden">
22
26
  </label>
23
27
  <span id="sessionTime"></span>
24
28
  </div>
25
- </div>
29
+ </header>
26
30
 
27
- <div class="grid">
31
+ <main class="grid">
28
32
  <!-- Stats Cards -->
29
33
  <div class="card stats-card">
30
34
  <div class="stat">
@@ -54,12 +58,13 @@
54
58
  <!-- Recent Calls -->
55
59
  <div class="card calls-card">
56
60
  <h2>Letzte Aufrufe</h2>
57
- <div id="callsFeed"></div>
61
+ <div id="callsFeed"><div class="memory-empty">Noch keine Aufrufe</div></div>
58
62
  </div>
59
63
 
60
64
  <!-- Session History -->
61
65
  <div class="card history-card">
62
66
  <h2>Session History</h2>
67
+ <div class="table-wrap">
63
68
  <table id="historyTable">
64
69
  <thead>
65
70
  <tr>
@@ -69,7 +74,7 @@
69
74
  <th>%</th>
70
75
  </tr>
71
76
  </thead>
72
- <tbody id="historyBody"></tbody>
77
+ <tbody id="historyBody"><tr><td colspan="4" class="memory-empty">Wird geladen…</td></tr></tbody>
73
78
  <tfoot>
74
79
  <tr id="historyTotal">
75
80
  <td><strong>Gesamt</strong></td>
@@ -79,11 +84,12 @@
79
84
  </tr>
80
85
  </tfoot>
81
86
  </table>
87
+ </div>
82
88
  </div>
83
- </div>
89
+ </main>
84
90
 
85
91
  <!-- Session Memory: Anti-Patterns & Observations -->
86
- <div class="memory-section">
92
+ <section class="memory-section" aria-label="Session-Speicher">
87
93
  <div class="memory-panel">
88
94
  <h2>Anti-Patterns <span class="memory-count" id="apCount"></span></h2>
89
95
  <div id="antiPatternsFeed" class="memory-feed">
@@ -96,8 +102,8 @@
96
102
  <div class="memory-empty">Wird geladen…</div>
97
103
  </div>
98
104
  </div>
99
- </div>
105
+ </section>
100
106
 
101
- <script src="/dashboard.js"></script>
107
+ <script type="module" src="/dashboard.js"></script>
102
108
  </body>
103
109
  </html>
@@ -7,7 +7,9 @@
7
7
  --bg3: #242838;
8
8
  --border: #2e3348;
9
9
  --text: #e2e8f0;
10
- --text-muted: #6b7280;
10
+ /* #9ca3af clears WCAG AA (>=4.5:1) on every dashboard surface; the previous
11
+ #6b7280 failed contrast on all three backgrounds (UX-02). */
12
+ --text-muted: #9ca3af;
11
13
  --accent: #6366f1;
12
14
  --green: #22c55e;
13
15
  --blue: #3b82f6;
@@ -29,6 +31,8 @@ body {
29
31
  display: flex;
30
32
  justify-content: space-between;
31
33
  align-items: center;
34
+ flex-wrap: wrap;
35
+ gap: 8px 16px;
32
36
  padding: 16px 24px;
33
37
  border-bottom: 1px solid var(--border);
34
38
  background: var(--bg2);
@@ -37,8 +41,14 @@ body {
37
41
  z-index: 10;
38
42
  }
39
43
 
44
+ @media (max-width: 768px) {
45
+ .header { flex-direction: column; align-items: flex-start; }
46
+ }
47
+
40
48
  .header-title { display: flex; align-items: center; gap: 10px; }
41
- .header-title h1 { font-size: 1rem; font-weight: 600; }
49
+ .header-title h1 { font-size: 1rem; font-weight: 600; white-space: nowrap; }
50
+ .conn-status { display: inline-flex; align-items: center; gap: 5px; }
51
+ .conn-text { font-size: 11px; color: var(--text-muted); }
42
52
  .dot { font-size: 10px; color: var(--gray); }
43
53
  .dot.connected { color: var(--green); }
44
54
  .session-label {
@@ -70,6 +80,11 @@ body {
70
80
  outline: none;
71
81
  cursor: pointer;
72
82
  }
83
+ /* Restore a visible keyboard-focus indicator on the page's only control (UX-07). */
84
+ .refresh-control input[type="range"]:focus-visible {
85
+ outline: 2px solid var(--accent);
86
+ outline-offset: 3px;
87
+ }
73
88
  .refresh-control input[type="range"]::-webkit-slider-thumb {
74
89
  -webkit-appearance: none;
75
90
  appearance: none;
@@ -157,11 +172,12 @@ body {
157
172
  }
158
173
  .call-item:last-child { border-bottom: none; }
159
174
  .call-time { color: var(--text-muted); font-variant-numeric: tabular-nums; }
160
- .call-tool { color: var(--blue); font-family: monospace; }
175
+ .call-tool { color: var(--blue); font-family: monospace; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
161
176
  .call-tokens { color: var(--text-muted); text-align: right; white-space: nowrap; }
162
177
  .call-tokens .actual { color: var(--text); font-weight: 600; }
163
178
 
164
179
  /* ─── History Table ───────────────────────────────────────────────────────── */
180
+ .table-wrap { overflow-x: auto; }
165
181
  #historyTable { width: 100%; border-collapse: collapse; font-size: 13px; }
166
182
  #historyTable th, #historyTable td { text-align: left; padding: 8px 12px; border-bottom: 1px solid var(--border); }
167
183
  #historyTable th { color: var(--text-muted); font-weight: 500; font-size: 11px; text-transform: uppercase; }
@@ -224,7 +240,11 @@ body {
224
240
 
225
241
  /* Observations */
226
242
  .obs-item { border-left-color: var(--accent); }
227
- .memory-item.stale { opacity: 0.55; }
243
+ /* Signal staleness with a dashed border + muted text rather than a blanket
244
+ opacity that pushed already-muted children below the contrast floor (UX-09).
245
+ The explicit "veraltet" badge already communicates the state. */
246
+ .memory-item.stale { border-left-style: dashed; }
247
+ .memory-item.stale .memory-text { color: var(--text-muted); }
228
248
 
229
249
  .memory-item-header {
230
250
  display: flex;
@@ -0,0 +1,18 @@
1
+ export interface ServerConfig {
2
+ projectRoot: string;
3
+ indexPath: string;
4
+ monitoringPort: number;
5
+ languages: string[];
6
+ federationRepos: string[];
7
+ }
8
+ /**
9
+ * Resolves the server's runtime configuration. Explicit environment variables
10
+ * always win; anything not set is derived from the project root and the global
11
+ * registry. When the project isn't registered yet (e.g. the server was launched
12
+ * as a zero-config Claude Code plugin), it is self-registered so the CLI and the
13
+ * aggregated GUI discover it, and it uses the same index path / port a
14
+ * `pindex init` would have assigned. Registry access is best-effort and never
15
+ * blocks startup.
16
+ */
17
+ export declare function resolveServerConfig(env: NodeJS.ProcessEnv, cwd: string): Promise<ServerConfig>;
18
+ //# sourceMappingURL=server-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-config.d.ts","sourceRoot":"","sources":["../src/server-config.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,YAAY,CAAC,CAkCvB"}
@@ -0,0 +1,41 @@
1
+ import { findProjectRoot, getProjectIndexPath, GlobalRegistry, } from './cli/project-detector.js';
2
+ import { detectProjectLanguages } from './indexer/detect-languages.js';
3
+ import { parseFederationRepos } from './federation/repos-env.js';
4
+ /**
5
+ * Resolves the server's runtime configuration. Explicit environment variables
6
+ * always win; anything not set is derived from the project root and the global
7
+ * registry. When the project isn't registered yet (e.g. the server was launched
8
+ * as a zero-config Claude Code plugin), it is self-registered so the CLI and the
9
+ * aggregated GUI discover it, and it uses the same index path / port a
10
+ * `pindex init` would have assigned. Registry access is best-effort and never
11
+ * blocks startup.
12
+ */
13
+ export async function resolveServerConfig(env, cwd) {
14
+ // A plugin passes PROJECT_ROOT="${CLAUDE_PROJECT_DIR}" so the server anchors to
15
+ // the real project even when Claude Code is launched from a parent directory.
16
+ // If the token was left unsubstituted (a literal "${...}"), ignore it and fall
17
+ // back to cwd, which defaults to the project root.
18
+ const explicitRoot = env.PROJECT_ROOT;
19
+ const projectRoot = explicitRoot && !explicitRoot.includes('${') ? explicitRoot : findProjectRoot(cwd);
20
+ let entry;
21
+ try {
22
+ const registry = new GlobalRegistry();
23
+ entry = registry.getByPath(projectRoot) ?? registry.upsert(projectRoot);
24
+ }
25
+ catch (err) {
26
+ process.stderr.write(`[pindex] registry self-register skipped: ${String(err)}\n`);
27
+ }
28
+ const root = entry?.path ?? projectRoot;
29
+ const indexPath = env.INDEX_PATH ?? getProjectIndexPath(root);
30
+ const monitoringPort = env.MONITORING_PORT
31
+ ? parseInt(env.MONITORING_PORT, 10)
32
+ : entry?.monitoringPort ?? 7842;
33
+ const languages = env.LANGUAGES
34
+ ? env.LANGUAGES.split(',').map((s) => s.trim()).filter(Boolean)
35
+ : await detectProjectLanguages(root);
36
+ const federationRepos = env.FEDERATION_REPOS
37
+ ? parseFederationRepos(env.FEDERATION_REPOS)
38
+ : entry?.federatedRepos.map((r) => r.path) ?? [];
39
+ return { projectRoot: root, indexPath, monitoringPort, languages, federationRepos };
40
+ }
41
+ //# sourceMappingURL=server-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-config.js","sourceRoot":"","sources":["../src/server-config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,cAAc,GAEf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAUjE;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAsB,EACtB,GAAW;IAEX,gFAAgF;IAChF,8EAA8E;IAC9E,+EAA+E;IAC/E,mDAAmD;IACnD,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;IACtC,MAAM,WAAW,GACf,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAErF,IAAI,KAAgC,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;QACtC,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,IAAI,WAAW,CAAC;IAExC,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAE9D,MAAM,cAAc,GAAG,GAAG,CAAC,eAAe;QACxC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,CAAC;QACnC,CAAC,CAAC,KAAK,EAAE,cAAc,IAAI,IAAI,CAAC;IAElC,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS;QAC7B,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAC/D,CAAC,CAAC,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAEvC,MAAM,eAAe,GAAG,GAAG,CAAC,gBAAgB;QAC1C,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAC5C,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAEnD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;AACtF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAgB/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAyN5D,yFAAyF;AACzF,MAAM,WAAW,WAAW;IAC1B,yFAAyF;IACzF,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;CACvB;AAED,kEAAkE;AAClE,MAAM,WAAW,aAAa;IAC5B,gGAAgG;IAChG,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oEAAoE;IACpE,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B;4EACwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,GAAG,IAAI,EAC/B,wBAAwB,EAAE,gBAAgB,GAAG,IAAI,EACjD,OAAO,EAAE,aAAa,GACrB,MAAM,CA6LR;AAOD,8EAA8E"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAgB/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAyN5D,yFAAyF;AACzF,MAAM,WAAW,WAAW;IAC1B,yFAAyF;IACzF,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;CACvB;AAED,kEAAkE;AAClE,MAAM,WAAW,aAAa;IAC5B,gGAAgG;IAChG,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oEAAoE;IACpE,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B;4EACwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,GAAG,IAAI,EAC/B,wBAAwB,EAAE,gBAAgB,GAAG,IAAI,EACjD,OAAO,EAAE,aAAa,GACrB,MAAM,CAiMR;AAOD,8EAA8E"}
package/dist/server.js CHANGED
@@ -353,7 +353,11 @@ export function createMcpServer(db, indexer, tokenLogger, monitoringServerInstan
353
353
  }
354
354
  }
355
355
  catch (err) {
356
- result = { error: `Tool error: ${String(err)}` };
356
+ // Log the full error to stderr for debugging, but return only a generic
357
+ // message to the client: raw errors leak absolute host paths, file
358
+ // existence, and federated repo names into the LLM context (SEC-09).
359
+ process.stderr.write(`[pindex] Tool '${name}' failed: ${String(err)}\n`);
360
+ result = { error: `Tool '${name}' failed` };
357
361
  toolIsError = true;
358
362
  }
359
363
  // Passive observation (fire-and-forget, never throws)
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"get_dependencies.d.ts","sourceRoot":"","sources":["../../src/tools/get_dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE/E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEzD,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,oBAAoB,GAC1B,qBAAqB,EAAE,CA0BzB"}
1
+ {"version":3,"file":"get_dependencies.d.ts","sourceRoot":"","sources":["../../src/tools/get_dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE/E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAGzD,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,oBAAoB,GAC1B,qBAAqB,EAAE,CA4BzB"}
@@ -1,9 +1,12 @@
1
1
  import { getFileByPath, getDependenciesByFile, getImportedByFile } from '../db/queries.js';
2
+ import { resolveWithinRoot } from '../util/paths.js';
2
3
  export function getDependencies(repoSet, input) {
3
4
  const repos = repoSet.filter(input.repos);
4
5
  const direction = input.direction ?? 'both';
5
6
  const out = [];
6
7
  for (const repo of repos) {
8
+ if (repo.path && !resolveWithinRoot(repo.path, input.target))
9
+ continue;
7
10
  const file = getFileByPath(repo.db, input.target);
8
11
  if (!file)
9
12
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"get_dependencies.js","sourceRoot":"","sources":["../../src/tools/get_dependencies.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG3F,MAAM,UAAU,eAAe,CAC7B,OAAgB,EAChB,KAA2B;IAE3B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC;IAC5C,MAAM,GAAG,GAA4B,EAAE,CAAC;IAExC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI;YAAE,SAAS;QAEpB,MAAM,MAAM,GAA0B;YACpC,IAAI,EAAE,KAAK,CAAC,MAAM;YAClB,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,EAAE;SACf,CAAC;QAEF,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACpD,MAAM,CAAC,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,SAAS,KAAK,aAAa,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACxD,MAAM,CAAC,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"get_dependencies.js","sourceRoot":"","sources":["../../src/tools/get_dependencies.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,UAAU,eAAe,CAC7B,OAAgB,EAChB,KAA2B;IAE3B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC;IAC5C,MAAM,GAAG,GAA4B,EAAE,CAAC;IAExC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YAAE,SAAS;QAEvE,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI;YAAE,SAAS;QAEpB,MAAM,MAAM,GAA0B;YACpC,IAAI,EAAE,KAAK,CAAC,MAAM;YAClB,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,EAAE;SACf,CAAC;QAEF,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACpD,MAAM,CAAC,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,SAAS,KAAK,aAAa,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACxD,MAAM,CAAC,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"get_doc_chunk.d.ts","sourceRoot":"","sources":["../../src/tools/get_doc_chunk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAY,MAAM,aAAa,CAAC;AAEjF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEzD,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,EAAE,CAuC1F"}
1
+ {"version":3,"file":"get_doc_chunk.d.ts","sourceRoot":"","sources":["../../src/tools/get_doc_chunk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAY,MAAM,aAAa,CAAC;AAEjF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAGzD,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,EAAE,CAyC1F"}
@@ -1,8 +1,11 @@
1
1
  import { getFileByPath, getDocumentChunksByFileId } from '../db/queries.js';
2
+ import { resolveWithinRoot } from '../util/paths.js';
2
3
  export function getDocChunk(repoSet, input) {
3
4
  const repos = repoSet.filter(input.repos);
4
5
  const out = [];
5
6
  for (const repo of repos) {
7
+ if (repo.path && !resolveWithinRoot(repo.path, input.file))
8
+ continue;
6
9
  const fileRecord = getFileByPath(repo.db, input.file);
7
10
  if (!fileRecord)
8
11
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"get_doc_chunk.js","sourceRoot":"","sources":["../../src/tools/get_doc_chunk.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAG5E,MAAM,UAAU,WAAW,CAAC,OAAgB,EAAE,KAAuB;IACnE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAwB,EAAE,CAAC;IAEpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU;YAAE,SAAS;QAE1B,MAAM,SAAS,GAAG,yBAAyB,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAErC,MAAM,MAAM,GACV,KAAK,CAAC,WAAW,KAAK,SAAS;YAC7B,CAAC,CAAC,SAAS;iBACN,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,CAAC;iBAClD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACX,KAAK,EAAE,CAAC,CAAC,WAAW;gBACpB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,OAAO,EAAE,CAAC,CAAC,OAAO;aACnB,CAAC,CAAC;YACP,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpB,KAAK,EAAE,CAAC,CAAC,WAAW;gBACpB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,OAAO,EAAE,CAAC,CAAC,OAAO;aACnB,CAAC,CAAC,CAAC;QAEV,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,YAAY,EAAE,SAAS,CAAC,MAAM;YAC9B,MAAM;YACN,OAAO,EAAE,IAAI,CAAC,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"get_doc_chunk.js","sourceRoot":"","sources":["../../src/tools/get_doc_chunk.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,UAAU,WAAW,CAAC,OAAgB,EAAE,KAAuB;IACnE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAwB,EAAE,CAAC;IAEpC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS;QAErE,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU;YAAE,SAAS;QAE1B,MAAM,SAAS,GAAG,yBAAyB,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAErC,MAAM,MAAM,GACV,KAAK,CAAC,WAAW,KAAK,SAAS;YAC7B,CAAC,CAAC,SAAS;iBACN,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,CAAC;iBAClD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACX,KAAK,EAAE,CAAC,CAAC,WAAW;gBACpB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,OAAO,EAAE,CAAC,CAAC,OAAO;aACnB,CAAC,CAAC;YACP,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpB,KAAK,EAAE,CAAC,CAAC,WAAW;gBACpB,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,OAAO,EAAE,CAAC,CAAC,OAAO;aACnB,CAAC,CAAC,CAAC;QAEV,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,YAAY,EAAE,SAAS,CAAC,MAAM;YAC9B,MAAM;YACN,OAAO,EAAE,IAAI,CAAC,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"get_file_summary.d.ts","sourceRoot":"","sources":["../../src/tools/get_file_summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAc,MAAM,aAAa,CAAC;AAOzF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEzD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,mBAAmB,GACzB,oBAAoB,EAAE,CAmDxB"}
1
+ {"version":3,"file":"get_file_summary.d.ts","sourceRoot":"","sources":["../../src/tools/get_file_summary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAc,MAAM,aAAa,CAAC;AAOzF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAGzD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,mBAAmB,GACzB,oBAAoB,EAAE,CAuDxB"}
@@ -1,8 +1,13 @@
1
1
  import { getFileByPath, getSymbolsByFileId, getDependenciesByFile, getObservationsByFile, } from '../db/queries.js';
2
+ import { resolveWithinRoot } from '../util/paths.js';
2
3
  export function getFileSummary(repoSet, input) {
3
4
  const repos = repoSet.filter(input.repos);
4
5
  const out = [];
5
6
  for (const repo of repos) {
7
+ // Defense-in-depth: reject paths that escape the repo root before serving
8
+ // any metadata (mirrors get_context.ts; closes the SEC-08 read-back surface).
9
+ if (repo.path && !resolveWithinRoot(repo.path, input.file))
10
+ continue;
6
11
  const file = getFileByPath(repo.db, input.file);
7
12
  if (!file)
8
13
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"get_file_summary.js","sourceRoot":"","sources":["../../src/tools/get_file_summary.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,UAAU,cAAc,CAC5B,OAAgB,EAChB,KAA0B;IAE1B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,GAAG,GAA2B,EAAE,CAAC;IAEvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI;YAAE,SAAS;QAEpB,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE9E,MAAM,OAAO,GAAyB;YACpC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAkB;gBAC1B,SAAS,EAAE,CAAC,CAAC,SAAS;aACvB,CAAC,CAAC;YACH,OAAO;YACP,OAAO;YACP,aAAa,EAAE,IAAI,CAAC,kBAAkB,IAAI,SAAS;YACnD,OAAO,EAAE,IAAI,CAAC,IAAI;SACnB,CAAC;QAEF,gFAAgF;QAChF,2EAA2E;QAC3E,6EAA6E;QAC7E,4EAA4E;QAC5E,0EAA0E;QAC1E,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,EAAE,CAAC;YACpC,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;YACnD,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC,yBAAyB;QAChF,CAAC;QAED,kEAAkE;QAClE,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACnE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;YACzD,OAAO,CAAC,cAAc,GAAG;gBACvB,iBAAiB,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,IAAI;gBACtD,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;gBACpD,KAAK,EAAE,QAAQ;aAChB,CAAC;QACJ,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"get_file_summary.js","sourceRoot":"","sources":["../../src/tools/get_file_summary.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,mBAAmB;;;;;;;iBAO9B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;iBAI1B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;iBAK3B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;iBAG/B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;iBAG3B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;iBAIhC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;iBAGnC,CAAC;AAEH,eAAO,MAAM,aAAa;;iBAExB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;iBAE9B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;iBAGhC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;iBAK3B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;iBAG5B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;iBAKjC,CAAC;AAKH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAepD,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmBxB,eAAO,MAAM,mBAAmB;;;;;;;iBAO9B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;iBAI1B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;iBAK3B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;iBAG/B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;iBAG3B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;iBAIhC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;iBAGnC,CAAC;AAEH,eAAO,MAAM,aAAa;;iBAExB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;iBAE9B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;iBAGhC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;iBAK3B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;iBAG5B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;iBAKjC,CAAC;AAKH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAepD,CAAC"}