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,373 @@
1
+ /**
2
+ * openlore telemetry — cognitive telemetry analysis for EpistemicLease.
3
+ *
4
+ * Reads append-only JSONL streams from .openlore/telemetry/ and computes
5
+ * higher-level behavioral metrics describing long-session agent cognition.
6
+ *
7
+ * Streams line-by-line via readline (O(1) memory — arbitrarily large sessions).
8
+ */
9
+ import { Command } from 'commander';
10
+ import { createReadStream, existsSync, watch } from 'node:fs';
11
+ import { createInterface } from 'node:readline';
12
+ import { join } from 'node:path';
13
+ import { OPENLORE_DIR } from '../../constants.js';
14
+ const TELEMETRY_SUBDIR = 'telemetry';
15
+ // ============================================================================
16
+ // JSONL reader — O(1) streaming
17
+ // ============================================================================
18
+ async function readJsonl(filePath) {
19
+ if (!existsSync(filePath))
20
+ return [];
21
+ const rows = [];
22
+ const rl = createInterface({ input: createReadStream(filePath, 'utf-8'), crlfDelay: Infinity });
23
+ for await (const line of rl) {
24
+ const trimmed = line.trim();
25
+ if (!trimmed)
26
+ continue;
27
+ try {
28
+ rows.push(JSON.parse(trimmed));
29
+ }
30
+ catch { /* skip malformed */ }
31
+ }
32
+ return rows;
33
+ }
34
+ // ============================================================================
35
+ // METRIC COMPUTATIONS
36
+ // ============================================================================
37
+ function computeToolStats(mcp) {
38
+ const calls = mcp.filter(e => e.event === 'tool_call');
39
+ const errors = mcp.filter(e => e.event === 'tool_error');
40
+ const byTool = new Map();
41
+ for (const e of calls) {
42
+ const arr = byTool.get(e.tool) ?? [];
43
+ arr.push(e.ms);
44
+ byTool.set(e.tool, arr);
45
+ }
46
+ const stats = [...byTool.entries()].map(([tool, latencies]) => {
47
+ const avg = Math.round(latencies.reduce((a, b) => a + b, 0) / latencies.length);
48
+ const max = Math.max(...latencies);
49
+ return { tool, count: latencies.length, avg_ms: avg, max_ms: max };
50
+ }).sort((a, b) => b.count - a.count);
51
+ return { stats, total_calls: calls.length, total_errors: errors.length };
52
+ }
53
+ function computeCacheStats(cache) {
54
+ const hits = cache.filter(e => e.hit).length;
55
+ const total = cache.length;
56
+ return { hits, misses: total - hits, total, hit_rate: total ? Math.round(hits / total * 100) : 0 };
57
+ }
58
+ function computeOrientQuality(orient) {
59
+ if (!orient.length)
60
+ return null;
61
+ const avg = (arr) => arr.length ? Math.round(arr.reduce((a, b) => a + b, 0) / arr.length) : 0;
62
+ const byAgent = new Map();
63
+ for (const e of orient) {
64
+ const agent = e.agent ?? 'unknown';
65
+ const arr = byAgent.get(agent) ?? [];
66
+ arr.push(e);
67
+ byAgent.set(agent, arr);
68
+ }
69
+ const perAgent = [...byAgent.entries()]
70
+ .map(([agent, events]) => ({
71
+ agent,
72
+ calls: events.length,
73
+ avg_functions: avg(events.map(e => e.functions)),
74
+ avg_files: avg(events.map(e => e.files)),
75
+ avg_insertion_points: avg(events.map(e => e.insertion_points)),
76
+ }))
77
+ .sort((a, b) => b.calls - a.calls);
78
+ return { total_calls: orient.length, per_agent: perAgent };
79
+ }
80
+ /**
81
+ * Obstinacy: tool calls (non-orient) after each stale event before next orient/reset.
82
+ * High value = agent ignores stale warnings.
83
+ */
84
+ function computeObstinacy(mcp, lease) {
85
+ const events = [];
86
+ for (const e of lease) {
87
+ if (e.event === 'stale')
88
+ events.push({ ts: e.ts, kind: 'stale', depth: e.depth });
89
+ if (e.event === 'orient_reset')
90
+ events.push({ ts: e.ts, kind: 'orient' });
91
+ }
92
+ for (const e of mcp) {
93
+ if (e.event === 'tool_call')
94
+ events.push({ ts: e.ts, kind: e.tool === 'orient' ? 'orient' : 'tool', tool: e.tool });
95
+ }
96
+ // ISO 8601 strings from toISOString() are lexicographically sortable
97
+ events.sort((a, b) => a.ts.localeCompare(b.ts));
98
+ const segments = [];
99
+ let inStale = false;
100
+ let staleDepth = 0;
101
+ let callCount = 0;
102
+ for (const ev of events) {
103
+ if (ev.kind === 'stale') {
104
+ if (!inStale) {
105
+ inStale = true;
106
+ staleDepth = ev.depth ?? 1;
107
+ callCount = 0;
108
+ }
109
+ else if ((ev.depth ?? 1) > staleDepth) {
110
+ staleDepth = ev.depth ?? 1;
111
+ }
112
+ }
113
+ else if (ev.kind === 'orient') {
114
+ if (inStale) {
115
+ segments.push({ depth: staleDepth, calls_before_orient: callCount });
116
+ }
117
+ inStale = false;
118
+ callCount = 0;
119
+ }
120
+ else if (ev.kind === 'tool' && inStale) {
121
+ callCount++;
122
+ }
123
+ }
124
+ if (inStale)
125
+ segments.push({ depth: staleDepth, calls_before_orient: callCount });
126
+ const avg = (arr) => arr.length ? (arr.reduce((a, b) => a + b, 0) / arr.length).toFixed(1) : '—';
127
+ const d2 = segments.filter(s => s.depth >= 2).map(s => s.calls_before_orient);
128
+ const d3 = segments.filter(s => s.depth >= 3).map(s => s.calls_before_orient);
129
+ return {
130
+ total_stale_episodes: segments.length,
131
+ avg_calls_before_orient: avg(segments.map(s => s.calls_before_orient)),
132
+ depth2_avg: avg(d2),
133
+ depth3_avg: avg(d3),
134
+ episodes: segments,
135
+ };
136
+ }
137
+ /**
138
+ * Recovery efficiency: time from stale to orient call (ms),
139
+ * and recovery half-life: time from orient_reset to first degraded/stale after it.
140
+ */
141
+ function computeRecovery(mcp, lease) {
142
+ const staleTs = lease.filter(e => e.event === 'stale').map(e => e.ts).sort();
143
+ const orientTs = mcp.filter(e => e.event === 'tool_call' && e.tool === 'orient').map(e => e.ts).sort();
144
+ const latencies = [];
145
+ for (const st of staleTs) {
146
+ const next = orientTs.find(o => o > st);
147
+ if (next)
148
+ latencies.push(new Date(next).getTime() - new Date(st).getTime());
149
+ }
150
+ const avg = latencies.length ? Math.round(latencies.reduce((a, b) => a + b, 0) / latencies.length) : null;
151
+ // Recovery half-life: orient_reset → next degraded/stale (how long context stays fresh post-orient).
152
+ const resetTs = lease.filter(e => e.event === 'orient_reset').map(e => e.ts).sort();
153
+ const degradationTs = lease.filter(e => e.event === 'degraded' || e.event === 'stale').map(e => e.ts).sort();
154
+ const stableDurations = [];
155
+ for (const rt of resetTs) {
156
+ const next = degradationTs.find(d => d > rt);
157
+ if (next)
158
+ stableDurations.push(new Date(next).getTime() - new Date(rt).getTime());
159
+ }
160
+ const avgStableMs = stableDurations.length
161
+ ? Math.round(stableDurations.reduce((a, b) => a + b, 0) / stableDurations.length)
162
+ : null;
163
+ const staleRecurrences = lease.filter(e => e.event === 'stale').length;
164
+ const orients = orientTs.length;
165
+ return {
166
+ stale_events: staleRecurrences,
167
+ orient_calls: orients,
168
+ orient_resets: resetTs.length,
169
+ avg_recovery_ms: avg,
170
+ avg_stable_after_orient_ms: avgStableMs,
171
+ recurrence_rate: orients ? `${(staleRecurrences / orients).toFixed(2)} stale/orient` : '—',
172
+ };
173
+ }
174
+ /**
175
+ * Trajectory entropy: low entropy oscillation (auth→billing→auth→billing) vs
176
+ * exploratory (auth→billing→infra→cache). Uses bigram repetition ratio.
177
+ */
178
+ function computeTrajectoryEntropy(lease) {
179
+ const densities = lease
180
+ .filter(e => e.event === 'degraded' || e.event === 'stale')
181
+ .map(e => e.density ?? 0)
182
+ .filter(d => d > 0);
183
+ const bursts = lease.filter(e => (e.event === 'degraded' || e.event === 'stale') && (e.density ?? 0) >= 0.6).length;
184
+ const avg = densities.length ? (densities.reduce((a, b) => a + b, 0) / densities.length).toFixed(3) : '—';
185
+ const max = densities.length ? Math.max(...densities).toFixed(3) : '—';
186
+ return {
187
+ avg_density: avg,
188
+ max_density: max,
189
+ burst_events: bursts,
190
+ density_samples: densities.length,
191
+ };
192
+ }
193
+ // ============================================================================
194
+ // RENDERING
195
+ // ============================================================================
196
+ function hr() { console.log('─'.repeat(60)); }
197
+ function section(title) { hr(); console.log(` ${title}`); hr(); }
198
+ function renderSummary(mcp, orient, cache, lease) {
199
+ const tools = computeToolStats(mcp);
200
+ const cacheStats = computeCacheStats(cache);
201
+ const quality = computeOrientQuality(orient);
202
+ const obstinacy = computeObstinacy(mcp, lease);
203
+ const recovery = computeRecovery(mcp, lease);
204
+ const trajectory = computeTrajectoryEntropy(lease);
205
+ section('TOOL LATENCY');
206
+ if (tools.stats.length) {
207
+ console.log(` ${'tool'.padEnd(32)} ${'calls'.padStart(6)} ${'avg ms'.padStart(8)} ${'max ms'.padStart(8)}`);
208
+ for (const s of tools.stats.slice(0, 15)) {
209
+ console.log(` ${s.tool.padEnd(32)} ${String(s.count).padStart(6)} ${String(s.avg_ms).padStart(8)} ${String(s.max_ms).padStart(8)}`);
210
+ }
211
+ console.log(`\n total: ${tools.total_calls} calls, ${tools.total_errors} errors`);
212
+ }
213
+ else {
214
+ console.log(' no mcp.jsonl data');
215
+ }
216
+ section('CACHE');
217
+ console.log(` hit rate : ${cacheStats.hit_rate}% (${cacheStats.hits} hits / ${cacheStats.total} reads)`);
218
+ section('ORIENT QUALITY');
219
+ if (quality) {
220
+ console.log(` total calls : ${quality.total_calls}\n`);
221
+ console.log(` ${'agent'.padEnd(28)} ${'calls'.padStart(6)} ${'avg fn'.padStart(8)} ${'avg files'.padStart(10)} ${'avg ins pts'.padStart(12)}`);
222
+ for (const r of quality.per_agent) {
223
+ console.log(` ${r.agent.padEnd(28)} ${String(r.calls).padStart(6)} ${String(r.avg_functions).padStart(8)} ${String(r.avg_files).padStart(10)} ${String(r.avg_insertion_points).padStart(12)}`);
224
+ }
225
+ }
226
+ else {
227
+ console.log(' no orient.jsonl data');
228
+ }
229
+ section('EPISTEMIC STATE');
230
+ const degraded = lease.filter(e => e.event === 'degraded').length;
231
+ const stale = lease.filter(e => e.event === 'stale').length;
232
+ const d2 = lease.filter(e => e.event === 'stale' && (e.depth ?? 0) >= 2).length;
233
+ const d3 = lease.filter(e => e.event === 'stale' && (e.depth ?? 0) >= 3).length;
234
+ const triggers = new Map();
235
+ for (const e of lease) {
236
+ if (e.trigger)
237
+ triggers.set(e.trigger, (triggers.get(e.trigger) ?? 0) + 1);
238
+ }
239
+ console.log(` degraded events : ${degraded}`);
240
+ console.log(` stale events : ${stale} (depth≥2: ${d2}, depth≥3: ${d3})`);
241
+ if (triggers.size) {
242
+ console.log(` triggers : ${[...triggers.entries()].map(([k, v]) => `${k}×${v}`).join(' ')}`);
243
+ }
244
+ section('OBSTINACY INDEX');
245
+ console.log(` stale episodes : ${obstinacy.total_stale_episodes}`);
246
+ console.log(` avg calls before orient: ${obstinacy.avg_calls_before_orient}`);
247
+ console.log(` depth≥2 avg : ${obstinacy.depth2_avg}`);
248
+ console.log(` depth≥3 avg : ${obstinacy.depth3_avg}`);
249
+ section('RECOVERY EFFICIENCY');
250
+ console.log(` avg stale→orient latency : ${recovery.avg_recovery_ms != null ? `${recovery.avg_recovery_ms}ms` : '—'}`);
251
+ console.log(` recovery half-life : ${recovery.avg_stable_after_orient_ms != null ? `${recovery.avg_stable_after_orient_ms}ms` : '—'} (orient_reset → next degradation)`);
252
+ console.log(` orient resets : ${recovery.orient_resets}`);
253
+ console.log(` recurrence rate : ${recovery.recurrence_rate}`);
254
+ section('TRAJECTORY DYNAMICS');
255
+ console.log(` avg cross-module density : ${trajectory.avg_density}`);
256
+ console.log(` max density : ${trajectory.max_density}`);
257
+ console.log(` burst events (≥0.6) : ${trajectory.burst_events}`);
258
+ hr();
259
+ }
260
+ function renderLive(dir) {
261
+ const leaseFile = join(dir, OPENLORE_DIR, TELEMETRY_SUBDIR, 'epistemic-lease.jsonl');
262
+ const mcpFile = join(dir, OPENLORE_DIR, TELEMETRY_SUBDIR, 'mcp.jsonl');
263
+ // Track file positions to only read new lines; in-flight guard prevents
264
+ // overlapping reads when watch() fires twice before the first stream ends.
265
+ const offsets = new Map([
266
+ [leaseFile, 0], [mcpFile, 0],
267
+ ]);
268
+ const inFlight = new Set();
269
+ async function tail(filePath) {
270
+ if (!existsSync(filePath))
271
+ return;
272
+ if (inFlight.has(filePath))
273
+ return;
274
+ inFlight.add(filePath);
275
+ const { createReadStream } = await import('node:fs');
276
+ const offset = offsets.get(filePath) ?? 0;
277
+ const stream = createReadStream(filePath, { start: offset, encoding: 'utf-8' });
278
+ let buf = '';
279
+ stream.on('data', chunk => { buf += chunk; });
280
+ stream.on('end', () => {
281
+ offsets.set(filePath, offset + Buffer.byteLength(buf, 'utf-8'));
282
+ inFlight.delete(filePath);
283
+ for (const line of buf.split('\n')) {
284
+ const trimmed = line.trim();
285
+ if (!trimmed)
286
+ continue;
287
+ try {
288
+ const ev = JSON.parse(trimmed);
289
+ const ts = String(ev['ts'] ?? '').slice(11, 23);
290
+ if (filePath === leaseFile) {
291
+ const evt = ev['event'];
292
+ if (evt === 'stale' || evt === 'degraded') {
293
+ const density = Number(ev['density'] ?? 0);
294
+ const oscillation = Number(ev['oscillation'] ?? 0);
295
+ const isSpike = density >= 0.60;
296
+ const isOscillating = oscillation >= 0.50;
297
+ const structuredType = isSpike ? 'TRAJECTORY_SPIKE' : 'STATE_TRANSITION';
298
+ const depthStr = evt === 'stale' ? ` depth=${ev['depth']}` : '';
299
+ let line = `${ts} [${structuredType}] ${String(evt).toUpperCase()}${depthStr} trigger=${ev['trigger']} load=${ev['cognitive_load']} density=${density.toFixed(3)}`;
300
+ if (isOscillating)
301
+ line += ` [OSCILLATION_DETECTED osc=${oscillation.toFixed(2)}]`;
302
+ console.log(line);
303
+ }
304
+ else if (evt === 'orient_reset') {
305
+ console.log(`${ts} [ORIENT_RECOVERY] from=${ev['from_state']} prior_load=${ev['prior_load']} prior_depth=${ev['prior_depth']}`);
306
+ }
307
+ else if (evt === 'depth_escalate') {
308
+ const burstStr = ev['trigger'] === 'burst' ? ' (burst)' : '';
309
+ console.log(`${ts} [STATE_TRANSITION] DEPTH ${ev['from_depth']} → ${ev['to_depth']}${burstStr} density=${Number(ev['density'] ?? 0).toFixed(3)}`);
310
+ }
311
+ }
312
+ else {
313
+ const tool = ev['tool'];
314
+ const agent = ev['agent'] ? ` [${ev['agent']}]` : '';
315
+ if (ev['event'] === 'tool_call')
316
+ console.log(`${ts} ${String(tool).padEnd(30)} ${ev['ms']}ms${agent}`);
317
+ else if (ev['event'] === 'tool_error')
318
+ console.log(`${ts} ERROR ${tool}${agent}`);
319
+ }
320
+ }
321
+ catch { /* skip */ }
322
+ }
323
+ });
324
+ }
325
+ console.log(`Watching ${join(dir, OPENLORE_DIR, TELEMETRY_SUBDIR)} — Ctrl+C to stop\n`);
326
+ const files = [leaseFile, mcpFile];
327
+ // Initial tail
328
+ Promise.all(files.map(tail));
329
+ const watchDir = join(dir, OPENLORE_DIR, TELEMETRY_SUBDIR);
330
+ if (existsSync(watchDir)) {
331
+ watch(watchDir, { persistent: true }, async (_event, filename) => {
332
+ if (!filename)
333
+ return;
334
+ const full = join(watchDir, filename);
335
+ if (files.includes(full))
336
+ await tail(full);
337
+ });
338
+ }
339
+ }
340
+ // ============================================================================
341
+ // COMMAND
342
+ // ============================================================================
343
+ export const telemetryCommand = new Command('telemetry')
344
+ .description('Analyze EpistemicLease cognitive telemetry')
345
+ .argument('[directory]', 'Project directory', process.cwd())
346
+ .option('--live', 'Stream cognitive events in real time')
347
+ .addHelpText('after', `
348
+ Examples:
349
+ $ openlore telemetry Summary stats for current directory
350
+ $ openlore telemetry /path/to/repo Summary for specific project
351
+ $ openlore telemetry --live Stream events live
352
+ `)
353
+ .action(async function (directory, options) {
354
+ const dir = directory ?? process.cwd();
355
+ const telDir = join(dir, OPENLORE_DIR, TELEMETRY_SUBDIR);
356
+ if (options.live) {
357
+ renderLive(dir);
358
+ return; // keep process alive — watcher keeps running
359
+ }
360
+ const [mcp, orient, cache, lease] = await Promise.all([
361
+ readJsonl(join(telDir, 'mcp.jsonl')),
362
+ readJsonl(join(telDir, 'orient.jsonl')),
363
+ readJsonl(join(telDir, 'cache.jsonl')),
364
+ readJsonl(join(telDir, 'epistemic-lease.jsonl')),
365
+ ]);
366
+ if (!mcp.length && !orient.length && !cache.length && !lease.length) {
367
+ console.log(`No telemetry found at ${telDir}`);
368
+ console.log('Enable with: export OPENLORE_TELEMETRY=1');
369
+ return;
370
+ }
371
+ renderSummary(mcp, orient, cache, lease);
372
+ });
373
+ //# sourceMappingURL=telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../src/cli/commands/telemetry.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -22,6 +22,7 @@ import { auditCommand } from './commands/audit.js';
22
22
  import { testCommand } from './commands/test.js';
23
23
  import { digestCommand } from './commands/digest.js';
24
24
  import { decisionsCommand } from './commands/decisions.js';
25
+ import { telemetryCommand } from './commands/telemetry.js';
25
26
  import { configureLogger } from '../utils/logger.js';
26
27
  // Read version from package.json at runtime so it never drifts from the published version
27
28
  const require = createRequire(import.meta.url);
@@ -114,5 +115,6 @@ program.addCommand(auditCommand);
114
115
  program.addCommand(testCommand);
115
116
  program.addCommand(digestCommand);
116
117
  program.addCommand(decisionsCommand);
118
+ program.addCommand(telemetryCommand);
117
119
  program.parse();
118
120
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"decisions.d.ts","sourceRoot":"","sources":["../../../../src/core/services/mcp-handlers/decisions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAgBH,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,yBAAyB,CAAC;AA8B9E,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,MAAM,EAAE,EACxB,UAAU,CAAC,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,aAAa,GACpB,OAAO,CAAC,OAAO,CAAC,CAqFlB;AAMD,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CA6BlB;AAMD,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,EACV,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,CAoBlB;AAMD,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,EACV,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,CAmBlB;AAMD,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,MAAM,UAAQ,EACd,EAAE,CAAC,EAAE,MAAM,GACV,OAAO,CAAC,OAAO,CAAC,CAkClB"}
1
+ {"version":3,"file":"decisions.d.ts","sourceRoot":"","sources":["../../../../src/core/services/mcp-handlers/decisions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiBH,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,yBAAyB,CAAC;AA8B9E,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,MAAM,EAAE,EACxB,UAAU,CAAC,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,aAAa,GACpB,OAAO,CAAC,OAAO,CAAC,CAqFlB;AAMD,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CA6BlB;AAMD,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,EACV,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,CAqBlB;AAMD,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,EACV,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC,CAoBlB;AAMD,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,MAAM,UAAQ,EACd,EAAE,CAAC,EAAE,MAAM,GACV,OAAO,CAAC,OAAO,CAAC,CAoClB"}
@@ -9,6 +9,7 @@
9
9
  */
10
10
  import { spawn } from 'node:child_process';
11
11
  import { validateDirectory, sanitizeMcpError } from './utils.js';
12
+ import { emit } from '../telemetry.js';
12
13
  import { loadDecisionStore, saveDecisionStore, upsertDecisions, patchDecision, makeDecisionId, } from '../../decisions/store.js';
13
14
  import { syncApprovedDecisions } from '../../decisions/syncer.js';
14
15
  import { buildSpecMap, matchFileToDomains } from '../../../core/drift/spec-mapper.js';
@@ -172,6 +173,7 @@ export async function handleApproveDecision(directory, id, note) {
172
173
  reviewNote: note,
173
174
  });
174
175
  await saveDecisionStore(rootPath, updated);
176
+ emit(rootPath, 'decisions', { event: 'decision_approved', id, title: decision.title });
175
177
  return { id, status: 'approved', title: decision.title };
176
178
  }
177
179
  catch (err) {
@@ -194,6 +196,7 @@ export async function handleRejectDecision(directory, id, note) {
194
196
  reviewNote: note,
195
197
  });
196
198
  await saveDecisionStore(rootPath, updated);
199
+ emit(rootPath, 'decisions', { event: 'decision_rejected', id, title: decision.title });
197
200
  return { id, status: 'rejected', title: decision.title };
198
201
  }
199
202
  catch (err) {
@@ -225,6 +228,7 @@ export async function handleSyncDecisions(directory, dryRun = false, id) {
225
228
  specMap,
226
229
  dryRun,
227
230
  });
231
+ emit(rootPath, 'decisions', { event: 'decisions_synced', count: result.synced.length, dry_run: dryRun });
228
232
  return {
229
233
  synced: result.synced.map((d) => ({ id: d.id, title: d.title, specs: d.syncedToSpecs })),
230
234
  errors: result.errors,
@@ -1 +1 @@
1
- {"version":3,"file":"decisions.js","sourceRoot":"","sources":["../../../../src/core/services/mcp-handlers/decisions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decisions.js","sourceRoot":"","sources":["../../../../src/core/services/mcp-handlers/decisions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
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
+ export type FreshnessState = 'fresh' | 'degraded' | 'stale';
28
+ export type StaleDepth = 1 | 2 | 3;
29
+ export interface EpistemicTracker {
30
+ lastOrientAt: Date;
31
+ graphVersionAtOrient: string;
32
+ cognitiveLoad: number;
33
+ modulesVisited: Set<string>;
34
+ freshnessState: FreshnessState;
35
+ /** Escalating severity within stale state. 0 when not stale. */
36
+ staleDepth: 0 | StaleDepth;
37
+ lastGitCheckAt: number;
38
+ /** Top-level source directories derived from the actual project layout. */
39
+ sourceRoots: string[];
40
+ /** V3.1: last resolved module for switch detection. */
41
+ lastModule: string | null;
42
+ /** V3.1: sliding window of last N module accesses (null = no filePath on that call). */
43
+ moduleAccessWindow: (string | null)[];
44
+ /** V3.1: epoch ms of last density-bonus application (cooldown). */
45
+ lastDensityPenaltyAt: number;
46
+ /** V3.1: epoch ms of last module switch (dampening). */
47
+ lastSwitchAt: number;
48
+ /** V3.2: oscillation score — repeated bigram transitions / total transitions [0,1]. */
49
+ oscillation: number;
50
+ }
51
+ export declare function getSourceRoots(directory: string): string[];
52
+ export declare function createTracker(directory: string): EpistemicTracker;
53
+ export declare function updateTracker(tracker: EpistemicTracker, toolName: string, directory: string, filePath?: string): void;
54
+ /**
55
+ * Returns the freshness signal for the current tracker state, or null if fresh.
56
+ * prepend=true → signal should appear before the tool result (stale).
57
+ * prepend=false → signal should appear after the tool result (degraded).
58
+ *
59
+ * Callers that build MCP content arrays should add this as a separate TextContent
60
+ * item rather than string-concatenating into the result body.
61
+ */
62
+ export declare function getFreshnessSignal(tracker: EpistemicTracker): {
63
+ text: string;
64
+ prepend: boolean;
65
+ } | null;
66
+ export declare function injectFreshness(text: string, tracker: EpistemicTracker): string;
67
+ //# sourceMappingURL=epistemic-lease.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"epistemic-lease.d.ts","sourceRoot":"","sources":["../../../../src/core/services/mcp-handlers/epistemic-lease.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAgBH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AAC5D,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEnC,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,IAAI,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,cAAc,EAAE,cAAc,CAAC;IAC/B,gEAAgE;IAChE,UAAU,EAAE,CAAC,GAAG,UAAU,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,uDAAuD;IACvD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,wFAAwF;IACxF,kBAAkB,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IACtC,mEAAmE;IACnE,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB,uFAAuF;IACvF,WAAW,EAAE,MAAM,CAAC;CACrB;AA2HD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAe1D;AAoED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAgBjE;AAuBD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,IAAI,CA4GN;AAkED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,gBAAgB,GACxB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAiB3C;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAI/E"}