openlore 2.0.0 → 2.0.1

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.
@@ -0,0 +1,431 @@
1
+ /**
2
+ * Epistemic Lease — session-level architectural confidence decay for MCP agents.
3
+ *
4
+ * Models repository understanding as a temporary, degradable representation rather
5
+ * than permanent truth. Injects freshness signals into every MCP tool response so
6
+ * that agents drifting toward internally cached reasoning ("repo fiction") see
7
+ * confidence decay even when they have stopped calling orient/graph tools.
8
+ *
9
+ * Decay triggers (any one sufficient):
10
+ * - Time: >15min → degraded, >30min → stale
11
+ * - Git hash divergence from orient baseline → immediate stale
12
+ * - Weighted cognitive load: >30 → degraded, >60 → stale
13
+ * - Cross-module trajectory density: ≥0.15 → degraded, ≥0.30 → stale
14
+ * Density = module switches in last 15 calls / window size.
15
+ * Each switch also adds +5 debt; high-density window +15; burst +20.
16
+ *
17
+ * Stale escalates through 3 depths to prevent warning blindness:
18
+ * - Depth 1 (load≥60, age≥30min): procedural — explains what NOT to do
19
+ * - Depth 2 (load≥85, age≥45min): risk-framing — names downstream consequences
20
+ * - Depth 3 (load≥110, age≥60min): imperative — minimal text, hardest to skim
21
+ *
22
+ * Injection:
23
+ * - fresh → no injection (zero overhead)
24
+ * - degraded → 3-line signal appended (low friction)
25
+ * - stale → depth-varying capability-invalidation block prepended
26
+ */
27
+ import { spawnSync } from 'node:child_process';
28
+ import { join } from 'node:path';
29
+ import { DatabaseSync } from 'node:sqlite';
30
+ import { OPENLORE_DIR, OPENLORE_ANALYSIS_SUBDIR, ARTIFACT_CALL_GRAPH_DB, } from '../../../constants.js';
31
+ import { emit } from '../telemetry.js';
32
+ // ============================================================================
33
+ // TOOL COGNITIVE WEIGHTS
34
+ // Three tiers: lightweight ops (1-2), structural ops (3-5), architectural ops (8).
35
+ // ============================================================================
36
+ const TOOL_WEIGHTS = {
37
+ // Resets tracker — not counted
38
+ orient: 0,
39
+ analyze_codebase: 0,
40
+ // Lightweight: search / read operations
41
+ search_code: 1,
42
+ search_specs: 1,
43
+ search_unified: 1,
44
+ list_spec_domains: 1,
45
+ list_decisions: 1,
46
+ record_decision: 1,
47
+ get_env_vars: 1,
48
+ get_external_packages: 1,
49
+ // Structural: function/file-level reads
50
+ get_spec: 2,
51
+ get_signatures: 2,
52
+ get_function_body: 2,
53
+ get_function_skeleton: 2,
54
+ get_mapping: 2,
55
+ get_test_coverage: 2,
56
+ get_route_inventory: 2,
57
+ get_schema_inventory: 2,
58
+ get_ui_components: 2,
59
+ get_middleware_inventory: 2,
60
+ // Structural-heavy: graph and architecture reads
61
+ get_architecture_overview: 3,
62
+ get_call_graph: 3,
63
+ get_file_dependencies: 3,
64
+ get_critical_hubs: 3,
65
+ get_god_functions: 3,
66
+ get_leaf_functions: 3,
67
+ get_refactor_report: 3,
68
+ get_duplicate_report: 3,
69
+ check_spec_drift: 3,
70
+ detect_changes: 3,
71
+ audit_spec_coverage: 3,
72
+ get_decisions: 3,
73
+ get_minimal_context: 3,
74
+ // Graph traversal / cross-module
75
+ get_subgraph: 5,
76
+ analyze_impact: 5,
77
+ get_cluster: 4,
78
+ generate_change_proposal: 5,
79
+ annotate_story: 5,
80
+ generate_tests: 4,
81
+ get_low_risk_refactor_candidates: 4,
82
+ // Deep architectural tracing
83
+ trace_execution_path: 8,
84
+ };
85
+ // ============================================================================
86
+ // THRESHOLDS
87
+ // ============================================================================
88
+ const DEGRADE_LOAD_THRESHOLD = 30;
89
+ const STALE_LOAD_THRESHOLD = 60;
90
+ const STALE_D2_LOAD_THRESHOLD = 85;
91
+ const STALE_D3_LOAD_THRESHOLD = 110;
92
+ const DEGRADE_AGE_MS = 15 * 60 * 1000;
93
+ const STALE_AGE_MS = 30 * 60 * 1000;
94
+ const STALE_D2_AGE_MS = 45 * 60 * 1000;
95
+ const STALE_D3_AGE_MS = 60 * 60 * 1000;
96
+ const GIT_CHECK_INTERVAL_MS = 30_000;
97
+ // V3.1 cross-module trajectory model
98
+ const CROSS_MODULE_WINDOW_SIZE = 15;
99
+ const CROSS_MODULE_DEGRADE_DENSITY = 0.15;
100
+ const CROSS_MODULE_STALE_DENSITY = 0.30;
101
+ const MODULE_SWITCH_BASE_WEIGHT = 5;
102
+ const HIGH_DENSITY_DEBT_BONUS = 15;
103
+ const BURST_DEBT_SPIKE = 20;
104
+ const DENSITY_BONUS_COOLDOWN_MS = 60_000;
105
+ const SWITCH_DAMPENING_MS = 5_000;
106
+ // V3.2 oscillation model — detects back-and-forth (A→B→A→B) vs exploration
107
+ const BURST_DENSITY_THRESHOLD = 0.60; // density for post-stale burst escalation
108
+ const BURST_TOOL_WEIGHT_THRESHOLD = 8; // tool weight for post-stale burst escalation
109
+ // ============================================================================
110
+ // GIT HASH
111
+ // ============================================================================
112
+ function getGitHash(directory) {
113
+ try {
114
+ const result = spawnSync('git', ['rev-parse', 'HEAD'], {
115
+ cwd: directory,
116
+ encoding: 'utf-8',
117
+ stdio: ['ignore', 'pipe', 'ignore'],
118
+ timeout: 2000,
119
+ });
120
+ return result.stdout?.trim() ?? '';
121
+ }
122
+ catch {
123
+ return '';
124
+ }
125
+ }
126
+ // ============================================================================
127
+ // MODULE EXTRACTION
128
+ // Extract top-level module segment from a file path, using the source root
129
+ // directories derived from the call-graph db (files actually analyzed, already
130
+ // filtered by config include/exclude patterns).
131
+ //
132
+ // src/core/services/mcp.ts → root "src" → module "core"
133
+ // packages/auth/src/jwt.ts → root "packages" → module "auth"
134
+ //
135
+ // Returns [] when no analysis exists yet — module tracking stays silent rather
136
+ // than tracking arbitrary filesystem dirs as if they were analyzed modules.
137
+ // ============================================================================
138
+ export function getSourceRoots(directory) {
139
+ try {
140
+ const dbPath = join(directory, OPENLORE_DIR, OPENLORE_ANALYSIS_SUBDIR, ARTIFACT_CALL_GRAPH_DB);
141
+ const db = new DatabaseSync(dbPath);
142
+ const rows = db.prepare('SELECT DISTINCT file_path FROM nodes WHERE is_external = 0').all();
143
+ db.close();
144
+ const roots = new Set();
145
+ for (const { file_path } of rows) {
146
+ const first = file_path.split(/[/\\]/)[0];
147
+ if (first)
148
+ roots.add(first);
149
+ }
150
+ return [...roots];
151
+ }
152
+ catch {
153
+ return [];
154
+ }
155
+ }
156
+ function moduleFromPath(filePath, sourceRoots) {
157
+ const parts = filePath.split(/[/\\]/);
158
+ for (const root of sourceRoots) {
159
+ const idx = parts.indexOf(root);
160
+ if (idx >= 0 && idx + 1 < parts.length) {
161
+ return parts[idx + 1];
162
+ }
163
+ }
164
+ return null;
165
+ }
166
+ // ============================================================================
167
+ // CROSS-MODULE DENSITY
168
+ // Counts module transitions in the sliding window, skipping null entries.
169
+ // Denominator is total window length so non-file calls dilute density.
170
+ // ============================================================================
171
+ function computeCrossModuleDensity(window) {
172
+ if (window.length < 2)
173
+ return 0;
174
+ let switches = 0;
175
+ let prev = null;
176
+ for (const mod of window) {
177
+ if (mod !== null) {
178
+ if (prev !== null && mod !== prev)
179
+ switches++;
180
+ prev = mod;
181
+ }
182
+ }
183
+ // Fixed denominator = window capacity so early-session (small window) doesn't
184
+ // produce inflated density — density only reaches threshold after real accumulation.
185
+ return switches / CROSS_MODULE_WINDOW_SIZE;
186
+ }
187
+ // ============================================================================
188
+ // OSCILLATION SCORE
189
+ // Bigram repetition ratio: how often the module 2 calls ago reappears.
190
+ // A→B→A→B→A scores 1.0 (pure confusion loop); A→B→C→D→E scores 0.0.
191
+ // Fixed denominator = window entries ≥ 3 so early-session doesn't spike.
192
+ // ============================================================================
193
+ function computeOscillationScore(window) {
194
+ const modules = window.filter((m) => m !== null);
195
+ if (modules.length < 3)
196
+ return 0;
197
+ let repeated = 0;
198
+ let total = 0;
199
+ for (let i = 2; i < modules.length; i++) {
200
+ total++;
201
+ if (modules[i] === modules[i - 2])
202
+ repeated++;
203
+ }
204
+ return total > 0 ? repeated / total : 0;
205
+ }
206
+ // ============================================================================
207
+ // STALE DEPTH
208
+ // Monotonic — depth can only increase, never decrease until orient() reset.
209
+ // ============================================================================
210
+ function computeStaleDepth(load, ageMs) {
211
+ if (load >= STALE_D3_LOAD_THRESHOLD || ageMs >= STALE_D3_AGE_MS)
212
+ return 3;
213
+ if (load >= STALE_D2_LOAD_THRESHOLD || ageMs >= STALE_D2_AGE_MS)
214
+ return 2;
215
+ return 1;
216
+ }
217
+ // ============================================================================
218
+ // TRACKER LIFECYCLE
219
+ // ============================================================================
220
+ export function createTracker(directory) {
221
+ return {
222
+ lastOrientAt: new Date(),
223
+ graphVersionAtOrient: getGitHash(directory),
224
+ cognitiveLoad: 0,
225
+ modulesVisited: new Set(),
226
+ freshnessState: 'fresh',
227
+ staleDepth: 0,
228
+ lastGitCheckAt: Date.now(),
229
+ sourceRoots: getSourceRoots(directory),
230
+ lastModule: null,
231
+ moduleAccessWindow: [],
232
+ lastDensityPenaltyAt: 0,
233
+ lastSwitchAt: 0,
234
+ oscillation: 0,
235
+ };
236
+ }
237
+ function resetTracker(tracker, directory) {
238
+ tracker.lastOrientAt = new Date();
239
+ tracker.graphVersionAtOrient = getGitHash(directory);
240
+ tracker.cognitiveLoad = 0;
241
+ tracker.modulesVisited = new Set();
242
+ tracker.freshnessState = 'fresh';
243
+ tracker.staleDepth = 0;
244
+ tracker.lastGitCheckAt = Date.now();
245
+ tracker.lastModule = null;
246
+ tracker.moduleAccessWindow = [];
247
+ tracker.lastDensityPenaltyAt = 0;
248
+ tracker.lastSwitchAt = 0;
249
+ tracker.oscillation = 0;
250
+ // sourceRoots not reset — project layout doesn't change during a session
251
+ }
252
+ function transitionToStale(tracker, load, ageMs) {
253
+ tracker.freshnessState = 'stale';
254
+ tracker.staleDepth = computeStaleDepth(load, ageMs);
255
+ }
256
+ export function updateTracker(tracker, toolName, directory, filePath) {
257
+ if (toolName === 'orient') {
258
+ if (tracker.freshnessState !== 'fresh') {
259
+ emit(directory, 'epistemic-lease', {
260
+ event: 'orient_reset',
261
+ from_state: tracker.freshnessState,
262
+ prior_load: tracker.cognitiveLoad,
263
+ prior_depth: tracker.staleDepth,
264
+ tool: 'orient', module: null, cognitive_load: tracker.cognitiveLoad, density: 0,
265
+ oscillation: tracker.oscillation, age_min: Math.floor((Date.now() - tracker.lastOrientAt.getTime()) / 60_000),
266
+ });
267
+ }
268
+ resetTracker(tracker, directory);
269
+ return;
270
+ }
271
+ const now = Date.now();
272
+ const ageMs = now - tracker.lastOrientAt.getTime();
273
+ const weight = TOOL_WEIGHTS[toolName] ?? 1;
274
+ // Update trajectory window on EVERY call (including when stale) so burst
275
+ // detection and oscillation scoring reflect the actual navigation path.
276
+ const mod = filePath ? moduleFromPath(filePath, tracker.sourceRoots) : null;
277
+ tracker.moduleAccessWindow.push(mod);
278
+ if (tracker.moduleAccessWindow.length > CROSS_MODULE_WINDOW_SIZE) {
279
+ tracker.moduleAccessWindow.shift();
280
+ }
281
+ const density = computeCrossModuleDensity(tracker.moduleAccessWindow);
282
+ const oscillation = computeOscillationScore(tracker.moduleAccessWindow);
283
+ tracker.oscillation = oscillation;
284
+ // Already stale — time-based depth escalation only, plus V3.2 burst sensitivity.
285
+ // Load stops accumulating here; burst detection uses tool weight and density instead.
286
+ if (tracker.freshnessState === 'stale') {
287
+ // Post-stale burst: heavy architectural tool or trajectory burst → immediate depth 3
288
+ if (tracker.staleDepth < 3 && (weight >= BURST_TOOL_WEIGHT_THRESHOLD || density >= BURST_DENSITY_THRESHOLD)) {
289
+ emit(directory, 'epistemic-lease', {
290
+ event: 'depth_escalate', from_depth: tracker.staleDepth, to_depth: 3,
291
+ tool: toolName, module: mod, cognitive_load: tracker.cognitiveLoad,
292
+ density, oscillation, age_min: Math.floor(ageMs / 60_000), trigger: 'burst',
293
+ });
294
+ tracker.staleDepth = 3;
295
+ return;
296
+ }
297
+ const newDepth = computeStaleDepth(tracker.cognitiveLoad, ageMs);
298
+ if (newDepth > tracker.staleDepth) {
299
+ emit(directory, 'epistemic-lease', {
300
+ event: 'depth_escalate', from_depth: tracker.staleDepth, to_depth: newDepth,
301
+ tool: toolName, module: mod, cognitive_load: tracker.cognitiveLoad,
302
+ density, oscillation, age_min: Math.floor(ageMs / 60_000),
303
+ });
304
+ tracker.staleDepth = newDepth;
305
+ }
306
+ return;
307
+ }
308
+ // Accumulate cognitive load from tool weight
309
+ tracker.cognitiveLoad += weight;
310
+ if (mod !== null) {
311
+ tracker.modulesVisited.add(mod);
312
+ const isSwitch = tracker.lastModule !== null && mod !== tracker.lastModule;
313
+ // Dampen rapid back-and-forth (same switch pair within SWITCH_DAMPENING_MS)
314
+ if (isSwitch && now - tracker.lastSwitchAt > SWITCH_DAMPENING_MS) {
315
+ tracker.cognitiveLoad += MODULE_SWITCH_BASE_WEIGHT;
316
+ tracker.lastSwitchAt = now;
317
+ }
318
+ tracker.lastModule = mod;
319
+ }
320
+ // Density-based debt bonus (with cooldown to prevent double-counting)
321
+ if (density >= CROSS_MODULE_STALE_DENSITY && now - tracker.lastDensityPenaltyAt > DENSITY_BONUS_COOLDOWN_MS) {
322
+ const isBurst = density >= BURST_DENSITY_THRESHOLD;
323
+ tracker.cognitiveLoad += isBurst ? BURST_DEBT_SPIKE : HIGH_DENSITY_DEBT_BONUS;
324
+ tracker.lastDensityPenaltyAt = now;
325
+ }
326
+ const ageMin = Math.floor(ageMs / 60_000);
327
+ const telCtx = { tool: toolName, module: mod, cognitive_load: tracker.cognitiveLoad, density, oscillation, age_min: ageMin };
328
+ // Rate-limited git hash check (~every 30s) — structural invalidation
329
+ if (now - tracker.lastGitCheckAt > GIT_CHECK_INTERVAL_MS) {
330
+ tracker.lastGitCheckAt = now;
331
+ const currentHash = getGitHash(directory);
332
+ if (currentHash && tracker.graphVersionAtOrient && currentHash !== tracker.graphVersionAtOrient) {
333
+ transitionToStale(tracker, tracker.cognitiveLoad, ageMs);
334
+ emit(directory, 'epistemic-lease', { event: 'stale', trigger: 'git', depth: tracker.staleDepth, ...telCtx });
335
+ return;
336
+ }
337
+ }
338
+ // State transitions: stale > degraded > fresh (never reverses)
339
+ if (ageMs >= STALE_AGE_MS || tracker.cognitiveLoad >= STALE_LOAD_THRESHOLD || density >= CROSS_MODULE_STALE_DENSITY) {
340
+ const trigger = density >= CROSS_MODULE_STALE_DENSITY ? 'density' : tracker.cognitiveLoad >= STALE_LOAD_THRESHOLD ? 'load' : 'time';
341
+ transitionToStale(tracker, tracker.cognitiveLoad, ageMs);
342
+ emit(directory, 'epistemic-lease', { event: 'stale', trigger, depth: tracker.staleDepth, ...telCtx });
343
+ }
344
+ else if (tracker.freshnessState === 'fresh' && (ageMs >= DEGRADE_AGE_MS ||
345
+ tracker.cognitiveLoad >= DEGRADE_LOAD_THRESHOLD ||
346
+ density >= CROSS_MODULE_DEGRADE_DENSITY)) {
347
+ const trigger = density >= CROSS_MODULE_DEGRADE_DENSITY ? 'density' : tracker.cognitiveLoad >= DEGRADE_LOAD_THRESHOLD ? 'load' : 'time';
348
+ tracker.freshnessState = 'degraded';
349
+ emit(directory, 'epistemic-lease', { event: 'degraded', trigger, ...telCtx });
350
+ }
351
+ }
352
+ // ============================================================================
353
+ // FRESHNESS SIGNALS
354
+ //
355
+ // Stale depth variants use different rhetorical strategies to resist blindness:
356
+ // Depth 1 — procedural: enumerates what NOT to do, offers orient()
357
+ // Depth 2 — consequential: names downstream risks of ignoring the signal
358
+ // Depth 3 — imperative: minimal text, command form, hardest to skim past
359
+ //
360
+ // Degraded: appended (low friction, visible but not blocking).
361
+ // Stale: prepended (agent sees it before reading any result).
362
+ // ============================================================================
363
+ function staleBlock(ageMin, load, depth) {
364
+ const header = `\n╔══════════════════════════════════════════════════════════╗\n` +
365
+ (depth === 1
366
+ ? `║ EPISTEMIC LEASE: STALE ║\n`
367
+ : depth === 2
368
+ ? `║ EPISTEMIC LEASE: STALE [ELEVATED] ║\n`
369
+ : `║ EPISTEMIC LEASE: STALE [CRITICAL] ║\n`) +
370
+ `╚══════════════════════════════════════════════════════════╝\n` +
371
+ `Context age: ${ageMin}min | Cognitive load score: ${load}\n\n`;
372
+ const body = depth === 1
373
+ ? (`Cached architectural reasoning reliability: LOW\n` +
374
+ `Cross-module dependency assumptions: UNRELIABLE\n` +
375
+ `Internal repository model: NOT AUTHORITATIVE\n\n` +
376
+ `Before continuing:\n` +
377
+ ` - Do NOT rely on previous dependency assumptions\n` +
378
+ ` - Do NOT infer cross-module relationships from memory\n` +
379
+ ` - Do NOT compile delegation prompts from cached architectural model\n` +
380
+ ` - Do NOT continue architectural reasoning from internal state\n\n` +
381
+ `Call orient() to restore architectural authority.\n`)
382
+ : depth === 2
383
+ ? (`Dependency assumptions: NO LONGER AUTHORITATIVE\n` +
384
+ `Architectural inference from memory: HIGH HALLUCINATION RISK\n` +
385
+ `Delegation prompt compilation: UNSAFE — context unreliable\n\n` +
386
+ `Continuing without orient() risks embedding stale architectural\n` +
387
+ `assumptions into refactor plans, cross-module reasoning, and\n` +
388
+ `delegation context that cannot easily be corrected downstream.\n\n` +
389
+ `orient() required before architectural decisions.\n`)
390
+ : (`Cross-module reasoning reliability: CRITICALLY LOW\n` +
391
+ `Repository model: EXPIRED — do not use for architectural decisions\n\n` +
392
+ `STOP. Call orient() before any architectural reasoning.\n`);
393
+ return header + body + `─────────────────────────────────────────────────────────────\n\n`;
394
+ }
395
+ function degradedSignal(ageMin, modules) {
396
+ return (`\n─────────────────────────────────────────────────────────────\n` +
397
+ `[EPISTEMIC LEASE: DEGRADED | age: ${ageMin}min | modules visited: ${modules}]\n` +
398
+ `Cross-module dependency assumptions: reduced confidence.\n` +
399
+ `Call orient() before architectural decisions or delegation prompt compilation.\n`);
400
+ }
401
+ /**
402
+ * Returns the freshness signal for the current tracker state, or null if fresh.
403
+ * prepend=true → signal should appear before the tool result (stale).
404
+ * prepend=false → signal should appear after the tool result (degraded).
405
+ *
406
+ * Callers that build MCP content arrays should add this as a separate TextContent
407
+ * item rather than string-concatenating into the result body.
408
+ */
409
+ export function getFreshnessSignal(tracker) {
410
+ if (tracker.freshnessState === 'fresh')
411
+ return null;
412
+ const ageMin = Math.floor((Date.now() - tracker.lastOrientAt.getTime()) / 60_000);
413
+ if (tracker.freshnessState === 'stale') {
414
+ // staleDepth is always ≥1 when freshnessState === 'stale' — invariant enforced by transitionToStale.
415
+ return {
416
+ text: staleBlock(ageMin, tracker.cognitiveLoad, tracker.staleDepth),
417
+ prepend: true,
418
+ };
419
+ }
420
+ return {
421
+ text: degradedSignal(ageMin, tracker.modulesVisited.size),
422
+ prepend: false,
423
+ };
424
+ }
425
+ export function injectFreshness(text, tracker) {
426
+ const signal = getFreshnessSignal(tracker);
427
+ if (!signal)
428
+ return text;
429
+ return signal.prepend ? signal.text + text : text + signal.text;
430
+ }
431
+ //# sourceMappingURL=epistemic-lease.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"epistemic-lease.js","sourceRoot":"","sources":["../../../../src/core/services/mcp-handlers/epistemic-lease.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/core/services/mcp-handlers/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,+FAA+F;AAC/F,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG;IAAE,SAAS,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC;AAGnE;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAG7F;AAED,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0BjG;AAQD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAM7E;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,QAAQ,GAAG,MAAiB,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAgB/H;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMjE;AAED,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CA2B1G;AA6CD,mFAAmF;AACnF,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMhF;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAetE;AAMD,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClG;AAED,MAAM,WAAW,YAAY;IAC3B,2DAA2D;IAC3D,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IACpC,uDAAuD;IACvD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IACtC,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAKD,uFAAuF;AACvF,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,MAAU,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAgD3G;AAED,gEAAgE;AAChE,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAOpI;AAED,6FAA6F;AAC7F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAUlL"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/core/services/mcp-handlers/utils.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { extname, join, relative, resolve, sep } from 'node:path';
7
7
  import { EdgeStore } from '../edge-store.js';
8
8
  import { ANALYSIS_STALE_THRESHOLD_MS, ARTIFACT_FINGERPRINT, ARTIFACT_LLM_CONTEXT, OPENLORE_ANALYSIS_SUBDIR, OPENLORE_DIR } from '../../../constants.js';
9
9
  import { logger } from '../../../utils/logger.js';
10
+ import { emit } from '../telemetry.js';
10
11
  /**
11
12
  * Resolve and validate a user-supplied directory path.
12
13
  *
@@ -101,9 +102,11 @@ export async function readCachedContext(directory, timeout) {
101
102
  if (EdgeStore.exists(analysisDir)) {
102
103
  ctx.edgeStore = EdgeStore.open(EdgeStore.dbPath(analysisDir));
103
104
  }
105
+ emit(directory, 'cache', { event: 'cache_read', hit: true });
104
106
  return ctx;
105
107
  }
106
108
  catch {
109
+ emit(directory, 'cache', { event: 'cache_read', hit: false });
107
110
  return null;
108
111
  }
109
112
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/core/services/mcp-handlers/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/core/services/mcp-handlers/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Opt-in telemetry writer for openlore.
3
+ *
4
+ * Gate: OPENLORE_TELEMETRY=1 (disabled by default).
5
+ * Writes append-only JSONL to .openlore/telemetry/<domain>.jsonl.
6
+ * Never throws — telemetry must not crash the hot path.
7
+ */
8
+ /**
9
+ * Emit a telemetry event to .openlore/telemetry/<domain>.jsonl.
10
+ *
11
+ * @param directory - project root (must be absolute)
12
+ * @param domain - log file name without extension (e.g. 'mcp', 'cache', 'epistemic-lease')
13
+ * @param payload - arbitrary fields merged with the timestamp
14
+ */
15
+ export declare function emit(directory: string, domain: string, payload: Record<string, unknown>): void;
16
+ //# sourceMappingURL=telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../../src/core/services/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH;;;;;;GAMG;AACH,wBAAgB,IAAI,CAClB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI,CAWN"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Opt-in telemetry writer for openlore.
3
+ *
4
+ * Gate: OPENLORE_TELEMETRY=1 (disabled by default).
5
+ * Writes append-only JSONL to .openlore/telemetry/<domain>.jsonl.
6
+ * Never throws — telemetry must not crash the hot path.
7
+ */
8
+ import { appendFileSync, mkdirSync } from 'node:fs';
9
+ import { join } from 'node:path';
10
+ import { OPENLORE_DIR } from '../../constants.js';
11
+ const TELEMETRY_SUBDIR = 'telemetry';
12
+ const _createdDirs = new Set();
13
+ /**
14
+ * Emit a telemetry event to .openlore/telemetry/<domain>.jsonl.
15
+ *
16
+ * @param directory - project root (must be absolute)
17
+ * @param domain - log file name without extension (e.g. 'mcp', 'cache', 'epistemic-lease')
18
+ * @param payload - arbitrary fields merged with the timestamp
19
+ */
20
+ export function emit(directory, domain, payload) {
21
+ if (!process.env['OPENLORE_TELEMETRY'])
22
+ return;
23
+ if (!directory)
24
+ return;
25
+ try {
26
+ const dir = join(directory, OPENLORE_DIR, TELEMETRY_SUBDIR);
27
+ if (!_createdDirs.has(dir)) {
28
+ mkdirSync(dir, { recursive: true });
29
+ _createdDirs.add(dir);
30
+ }
31
+ const line = JSON.stringify({ ts: new Date().toISOString(), ...payload }) + '\n';
32
+ appendFileSync(join(dir, `${domain}.jsonl`), line, 'utf-8');
33
+ }
34
+ catch {
35
+ // never crash the hot path
36
+ }
37
+ }
38
+ //# sourceMappingURL=telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../src/core/services/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,gBAAgB,GAAG,WAAW,CAAC;AACrC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,UAAU,IAAI,CAClB,SAAiB,EACjB,MAAc,EACd,OAAgC;IAEhC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;QAAE,OAAO;IAC/C,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;QAC5D,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;QAC3F,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;QACjF,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,2BAA2B;IAC7B,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openlore",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "description": "Reverse-engineer OpenSpec specifications from existing codebases",
5
5
  "type": "module",
6
6
  "main": "dist/api/index.js",