dap-mcp-server 0.1.9 → 0.1.11

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,103 @@
1
+ /**
2
+ * Copyright (c) 2026 Ivan Iraci <ivan.iraci@professioneit.com>
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ * of this software and associated documentation files (the "Software"), to deal
6
+ * in the Software without restriction, including without limitation the rights
7
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ * copies of the Software, and to permit persons to whom the Software is
9
+ * furnished to do so, subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in
12
+ * all copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ * SOFTWARE.
21
+ */
22
+ import { DebugSession } from "./session.js";
23
+ /**
24
+ * Launch a program, run until it hits the given breakpoint, evaluate a set of
25
+ * expressions in that frame, and disconnect. Collapses a multi-call workflow
26
+ * into a single operation suitable for "what is X at line N?" debugging.
27
+ */
28
+ export async function runDebugInspect(registry, sessions, opts) {
29
+ const config = opts.adapterConfig ?? registry.get(opts.adapter);
30
+ if (!config) {
31
+ throw new Error(`Adapter '${opts.adapter}' not found. Use list_adapters to see available adapters or configure_adapter to register one.`);
32
+ }
33
+ const id = sessions.generateId();
34
+ const session = new DebugSession(id, config);
35
+ sessions.add(session);
36
+ try {
37
+ await session.initialize();
38
+ const launchArgs = {
39
+ ...config.launchDefaults,
40
+ program: opts.program,
41
+ stopOnEntry: false,
42
+ };
43
+ if (opts.args !== undefined)
44
+ launchArgs.args = opts.args;
45
+ if (opts.cwd !== undefined)
46
+ launchArgs.cwd = opts.cwd;
47
+ if (opts.env !== undefined)
48
+ launchArgs.env = opts.env;
49
+ const launchPromise = session.launch(launchArgs);
50
+ await session.setBreakpoints(opts.at.file, [
51
+ {
52
+ line: opts.at.line,
53
+ condition: opts.at.condition,
54
+ hitCondition: opts.at.hitCondition,
55
+ },
56
+ ]);
57
+ await session.configurationDone();
58
+ await launchPromise;
59
+ const waitMs = opts.timeout ?? 30000;
60
+ try {
61
+ await session.waitForStopped(waitMs);
62
+ }
63
+ catch {
64
+ const { output } = session.getOutput();
65
+ return {
66
+ hit: false,
67
+ status: session.state,
68
+ output: output.map((e) => e.text),
69
+ };
70
+ }
71
+ const state = await session.collectState();
72
+ const values = {};
73
+ if (opts.expressions && opts.expressions.length > 0) {
74
+ for (const expr of opts.expressions) {
75
+ try {
76
+ const r = await session.evaluate(expr);
77
+ values[expr] = { result: r.result, type: r.type };
78
+ }
79
+ catch (err) {
80
+ values[expr] = { error: err instanceof Error ? err.message : String(err) };
81
+ }
82
+ }
83
+ }
84
+ return {
85
+ hit: true,
86
+ reason: state.reason,
87
+ location: state.location,
88
+ values: opts.expressions && opts.expressions.length > 0 ? values : undefined,
89
+ output: state.output,
90
+ status: "stopped",
91
+ };
92
+ }
93
+ finally {
94
+ sessions.remove(session.id);
95
+ try {
96
+ await session.disconnect();
97
+ }
98
+ catch {
99
+ /* best-effort cleanup */
100
+ }
101
+ }
102
+ }
103
+ //# sourceMappingURL=inspect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/session/inspect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Copyright (c) 2026 Ivan Iraci <ivan.iraci@professioneit.com>
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ * of this software and associated documentation files (the "Software"), to deal
6
+ * in the Software without restriction, including without limitation the rights
7
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ * copies of the Software, and to permit persons to whom the Software is
9
+ * furnished to do so, subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in
12
+ * all copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ * SOFTWARE.
21
+ */
22
+ import { AdapterRegistry } from "../adapters/registry.js";
23
+ import { SessionManager } from "./session-manager.js";
24
+ import { AdapterConfig } from "../dap/types.js";
25
+ export interface RunOptions {
26
+ adapter: string;
27
+ program: string;
28
+ args?: string[];
29
+ cwd?: string;
30
+ env?: Record<string, string>;
31
+ /** Optional logpoints — break with logMessage emits formatted output without pausing. */
32
+ logpoints?: Array<{
33
+ file: string;
34
+ line: number;
35
+ logMessage: string;
36
+ }>;
37
+ /** Total wall-clock timeout for the whole run (default: 60_000ms). */
38
+ timeout?: number;
39
+ adapterConfig?: AdapterConfig;
40
+ }
41
+ export interface RunResult {
42
+ terminated: boolean;
43
+ output: string[];
44
+ status: string;
45
+ }
46
+ /**
47
+ * Launch a program with no stops, let it run to completion, and return the
48
+ * collected output. Use for "what does this script actually do / print / crash with?"
49
+ * cases where you don't need to inspect intermediate state. Pair with logpoints
50
+ * for printf-style debugging.
51
+ */
52
+ export declare function runDebugRun(registry: AdapterRegistry, sessions: SessionManager, opts: RunOptions): Promise<RunResult>;
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Copyright (c) 2026 Ivan Iraci <ivan.iraci@professioneit.com>
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ * of this software and associated documentation files (the "Software"), to deal
6
+ * in the Software without restriction, including without limitation the rights
7
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ * copies of the Software, and to permit persons to whom the Software is
9
+ * furnished to do so, subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in
12
+ * all copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ * SOFTWARE.
21
+ */
22
+ import { DebugSession } from "./session.js";
23
+ /**
24
+ * Launch a program with no stops, let it run to completion, and return the
25
+ * collected output. Use for "what does this script actually do / print / crash with?"
26
+ * cases where you don't need to inspect intermediate state. Pair with logpoints
27
+ * for printf-style debugging.
28
+ */
29
+ export async function runDebugRun(registry, sessions, opts) {
30
+ const config = opts.adapterConfig ?? registry.get(opts.adapter);
31
+ if (!config) {
32
+ throw new Error(`Adapter '${opts.adapter}' not found. Use list_adapters to see available adapters or configure_adapter to register one.`);
33
+ }
34
+ const id = sessions.generateId();
35
+ const session = new DebugSession(id, config);
36
+ sessions.add(session);
37
+ const totalTimeout = opts.timeout ?? 60_000;
38
+ const deadline = Date.now() + totalTimeout;
39
+ try {
40
+ await session.initialize();
41
+ const launchArgs = {
42
+ ...config.launchDefaults,
43
+ program: opts.program,
44
+ stopOnEntry: false,
45
+ };
46
+ if (opts.args !== undefined)
47
+ launchArgs.args = opts.args;
48
+ if (opts.cwd !== undefined)
49
+ launchArgs.cwd = opts.cwd;
50
+ if (opts.env !== undefined)
51
+ launchArgs.env = opts.env;
52
+ const launchPromise = session.launch(launchArgs);
53
+ if (opts.logpoints && opts.logpoints.length > 0) {
54
+ const byFile = new Map();
55
+ for (const lp of opts.logpoints) {
56
+ const existing = byFile.get(lp.file) ?? [];
57
+ existing.push({ line: lp.line, logMessage: lp.logMessage });
58
+ byFile.set(lp.file, existing);
59
+ }
60
+ for (const [file, bps] of byFile) {
61
+ await session.setBreakpoints(file, bps);
62
+ }
63
+ }
64
+ await session.configurationDone();
65
+ await launchPromise;
66
+ // Loop: if the program stops unexpectedly (e.g. exception, surprise breakpoint),
67
+ // continue. Exit when the program terminates or the deadline passes.
68
+ while (session.state !== "terminated") {
69
+ const remaining = deadline - Date.now();
70
+ if (remaining <= 0)
71
+ break;
72
+ if (session.state === "stopped") {
73
+ await session.continueExecution();
74
+ }
75
+ try {
76
+ await Promise.race([
77
+ session.waitForTerminated(remaining),
78
+ session.waitForStopped(remaining),
79
+ ]);
80
+ }
81
+ catch {
82
+ // Both rejected (timeout). Bail.
83
+ break;
84
+ }
85
+ }
86
+ const { output } = session.getOutput();
87
+ return {
88
+ terminated: session.state === "terminated",
89
+ output: output.map((e) => e.text),
90
+ status: session.state,
91
+ };
92
+ }
93
+ finally {
94
+ sessions.remove(session.id);
95
+ try {
96
+ await session.disconnect();
97
+ }
98
+ catch {
99
+ /* best-effort cleanup */
100
+ }
101
+ }
102
+ }
103
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/session/run.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@
19
19
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
20
  * SOFTWARE.
21
21
  */
22
- import { SessionState, StoppedState, AdapterConfig, OutputEntry, BreakpointConfig, BreakpointResult } from "../dap/types.js";
22
+ import { SessionState, StoppedState, AdapterConfig, OutputEntry, BreakpointConfig, BreakpointResult, Variable } from "../dap/types.js";
23
23
  import { DebugProtocol } from "@vscode/debugprotocol";
24
24
  export declare class DebugSession {
25
25
  readonly id: string;
@@ -27,6 +27,7 @@ export declare class DebugSession {
27
27
  private adapterConfig;
28
28
  private _state;
29
29
  private outputBuffer;
30
+ private nextOutputSeq;
30
31
  private breakpointsMap;
31
32
  private capabilities;
32
33
  private stoppedThreadId?;
@@ -36,8 +37,10 @@ export declare class DebugSession {
36
37
  private launchMode;
37
38
  private stoppedResolvers;
38
39
  private initializedResolvers;
40
+ private terminatedResolvers;
39
41
  private _initializedReceived;
40
42
  constructor(id: string, config: AdapterConfig);
43
+ private resolveTerminatedWaiters;
41
44
  get state(): SessionState;
42
45
  initialize(): Promise<DebugProtocol.Capabilities>;
43
46
  waitForInitialized(timeout?: number): Promise<void>;
@@ -51,17 +54,12 @@ export declare class DebugSession {
51
54
  stepIn(threadId?: number): Promise<void>;
52
55
  stepOut(threadId?: number): Promise<void>;
53
56
  pause(threadId?: number): Promise<void>;
57
+ waitForTerminated(timeout?: number): Promise<void>;
54
58
  waitForStopped(timeout?: number): Promise<DebugProtocol.StoppedEvent>;
55
59
  getThreads(): Promise<DebugProtocol.Thread[]>;
56
60
  getStackTrace(threadId: number, depth?: number): Promise<DebugProtocol.StackFrame[]>;
57
61
  getScopes(frameId: number): Promise<DebugProtocol.Scope[]>;
58
- getVariables(variablesReference: number, depth?: number): Promise<Array<{
59
- name: string;
60
- value: string;
61
- type?: string;
62
- hasChildren: boolean;
63
- variablesReference: number;
64
- }>>;
62
+ getVariables(variablesReference: number, depth?: number): Promise<Variable[]>;
65
63
  evaluate(expression: string, frameId?: number, context?: "repl" | "watch" | "hover"): Promise<{
66
64
  result: string;
67
65
  type?: string;
@@ -70,9 +68,10 @@ export declare class DebugSession {
70
68
  }>;
71
69
  collectState(threadId?: number, depth?: number, variableDepth?: number): Promise<StoppedState>;
72
70
  addOutput(category: string, text: string): void;
73
- getOutput(category?: string, clear?: boolean): {
71
+ getOutput(category?: string, clear?: boolean, since?: number): {
74
72
  output: OutputEntry[];
75
73
  truncated: boolean;
74
+ nextSince: number;
76
75
  };
77
76
  disconnect(terminateDebuggee?: boolean): Promise<void>;
78
77
  getLaunchConfig(): Record<string, unknown> | undefined;
@@ -30,6 +30,7 @@ export class DebugSession {
30
30
  adapterConfig;
31
31
  _state = "idle";
32
32
  outputBuffer = new RingBuffer(MAX_OUTPUT_LINES);
33
+ nextOutputSeq = 1;
33
34
  breakpointsMap = new Map();
34
35
  capabilities = {};
35
36
  stoppedThreadId;
@@ -39,6 +40,7 @@ export class DebugSession {
39
40
  launchMode = "launch";
40
41
  stoppedResolvers = [];
41
42
  initializedResolvers = [];
43
+ terminatedResolvers = [];
42
44
  _initializedReceived = false;
43
45
  constructor(id, config) {
44
46
  this.id = id;
@@ -54,8 +56,15 @@ export class DebugSession {
54
56
  if (this._state !== "terminated") {
55
57
  this._state = "terminated";
56
58
  }
59
+ this.resolveTerminatedWaiters();
57
60
  });
58
61
  }
62
+ resolveTerminatedWaiters() {
63
+ const resolvers = this.terminatedResolvers;
64
+ this.terminatedResolvers = [];
65
+ for (const r of resolvers)
66
+ r();
67
+ }
59
68
  get state() {
60
69
  return this._state;
61
70
  }
@@ -172,6 +181,33 @@ export class DebugSession {
172
181
  const tid = threadId ?? this.stoppedThreadId ?? 1;
173
182
  await this.client.sendRequest("pause", { threadId: tid });
174
183
  }
184
+ async waitForTerminated(timeout = DEFAULT_TIMEOUT) {
185
+ if (this._state === "terminated")
186
+ return;
187
+ return new Promise((resolve, reject) => {
188
+ let settled = false;
189
+ const wrapped = () => {
190
+ if (settled)
191
+ return;
192
+ settled = true;
193
+ clearTimeout(timer);
194
+ const idx = this.terminatedResolvers.indexOf(wrapped);
195
+ if (idx !== -1)
196
+ this.terminatedResolvers.splice(idx, 1);
197
+ resolve();
198
+ };
199
+ const timer = setTimeout(() => {
200
+ if (settled)
201
+ return;
202
+ settled = true;
203
+ const idx = this.terminatedResolvers.indexOf(wrapped);
204
+ if (idx !== -1)
205
+ this.terminatedResolvers.splice(idx, 1);
206
+ reject(new Error("timeout"));
207
+ }, timeout);
208
+ this.terminatedResolvers.push(wrapped);
209
+ });
210
+ }
175
211
  async waitForStopped(timeout = DEFAULT_TIMEOUT) {
176
212
  if (this._state === "stopped") {
177
213
  return {
@@ -233,8 +269,7 @@ export class DebugSession {
233
269
  if (depth > 1) {
234
270
  for (const v of vars) {
235
271
  if (v.hasChildren) {
236
- const children = await this.getVariables(v.variablesReference, depth - 1);
237
- v.value = `${v.value} { ${children.map((c) => `${c.name}: ${c.value}`).join(", ")} }`;
272
+ v.children = await this.getVariables(v.variablesReference, depth - 1);
238
273
  }
239
274
  }
240
275
  }
@@ -291,11 +326,23 @@ export class DebugSession {
291
326
  };
292
327
  }
293
328
  addOutput(category, text) {
294
- this.outputBuffer.push({ category, text, timestamp: new Date().toISOString() });
329
+ this.outputBuffer.push({
330
+ seq: this.nextOutputSeq++,
331
+ category,
332
+ text,
333
+ timestamp: new Date().toISOString(),
334
+ });
295
335
  }
296
- getOutput(category, clear = false) {
297
- const entries = category
298
- ? this.outputBuffer.getFiltered((e) => e.category === category)
336
+ getOutput(category, clear = false, since) {
337
+ const matches = (e) => {
338
+ if (category && e.category !== category)
339
+ return false;
340
+ if (since !== undefined && e.seq <= since)
341
+ return false;
342
+ return true;
343
+ };
344
+ const entries = category !== undefined || since !== undefined
345
+ ? this.outputBuffer.getFiltered(matches)
299
346
  : this.outputBuffer.getAll();
300
347
  const truncated = this.outputBuffer.truncated;
301
348
  if (clear) {
@@ -306,7 +353,9 @@ export class DebugSession {
306
353
  this.outputBuffer.clear();
307
354
  }
308
355
  }
309
- return { output: entries, truncated };
356
+ const lastInResult = entries.length > 0 ? entries[entries.length - 1].seq : undefined;
357
+ const nextSince = lastInResult ?? since ?? this.nextOutputSeq - 1;
358
+ return { output: entries, truncated, nextSince };
310
359
  }
311
360
  async disconnect(terminateDebuggee) {
312
361
  const terminate = terminateDebuggee ?? this.launchMode === "launch";
@@ -366,6 +415,7 @@ export class DebugSession {
366
415
  case "terminated":
367
416
  case "exited":
368
417
  this._state = "terminated";
418
+ this.resolveTerminatedWaiters();
369
419
  break;
370
420
  }
371
421
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session/session.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dap-mcp-server",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "description": "MCP server wrapping the Debug Adapter Protocol for AI-driven debugging",
5
5
  "keywords": [
6
6
  "LLM",
@@ -28,6 +28,9 @@ export const BUILTIN_ADAPTERS: AdapterConfig[] = [
28
28
  runtime: "python3",
29
29
  program: "-m",
30
30
  args: ["debugpy.adapter"],
31
+ launchDefaults: {
32
+ console: "internalConsole",
33
+ },
31
34
  installHint: "pip install debugpy",
32
35
  },
33
36
  // node adapter removed — no reliable universal path to js-debug-dap.
@@ -66,8 +66,13 @@ export class DAPClient extends EventEmitter {
66
66
 
67
67
  this.process = spawn(cmd, runtimeArgs, {
68
68
  stdio: ["pipe", "pipe", "pipe"],
69
+ detached: true,
69
70
  });
70
71
 
72
+ // Detached child must be unref'd so the parent Node process can exit
73
+ // even if the adapter is still running (cleanup happens via dispose()).
74
+ this.process.unref();
75
+
71
76
  this.parser = new MessageParser((msg) => this.handleMessage(msg));
72
77
 
73
78
  this.process.stdout!.on("data", (data: Buffer) => {
@@ -181,6 +186,23 @@ export class DAPClient extends EventEmitter {
181
186
  );
182
187
  }
183
188
  }
189
+ } else if (msg.type === "request") {
190
+ // Reverse request from the adapter (e.g. runInTerminal).
191
+ // We reject all reverse requests — the MCP server has no terminal.
192
+ const req = msg as DebugProtocol.Request;
193
+ const errorResponse: DebugProtocol.Response = {
194
+ seq: this.seq++,
195
+ type: "response",
196
+ request_seq: req.seq,
197
+ command: req.command,
198
+ success: false,
199
+ message: `Reverse request '${req.command}' is not supported by this client`,
200
+ };
201
+ try {
202
+ this.process?.stdin?.write(encodeMessage(errorResponse));
203
+ } catch {
204
+ // ignore — process may have exited
205
+ }
184
206
  } else if (msg.type === "event") {
185
207
  const event = msg as DebugProtocol.Event;
186
208
  this.emit(event.event, event);
package/src/dap/types.ts CHANGED
@@ -24,6 +24,16 @@
24
24
 
25
25
  export type SessionState = "idle" | "configuring" | "running" | "stopped" | "terminated";
26
26
 
27
+ export interface Variable {
28
+ name: string;
29
+ value: string;
30
+ type?: string;
31
+ hasChildren: boolean;
32
+ variablesReference: number;
33
+ /** Populated when getVariables is called with depth > 1 and this variable has children. */
34
+ children?: Variable[];
35
+ }
36
+
27
37
  export interface StoppedState {
28
38
  status: "stopped";
29
39
  reason: string;
@@ -43,13 +53,7 @@ export interface StoppedState {
43
53
  }>;
44
54
  scopes: Array<{
45
55
  name: string;
46
- variables: Array<{
47
- name: string;
48
- value: string;
49
- type?: string;
50
- hasChildren: boolean;
51
- variablesReference: number;
52
- }>;
56
+ variables: Variable[];
53
57
  }>;
54
58
  output?: string[];
55
59
  }
@@ -72,6 +76,8 @@ export interface AdapterConfig {
72
76
  }
73
77
 
74
78
  export interface OutputEntry {
79
+ /** Monotonic per-session sequence number assigned at push time. Survives ring-buffer eviction. */
80
+ seq: number;
75
81
  category: string;
76
82
  text: string;
77
83
  timestamp: string;