@mcp-abap-adt/adt-clients 29.0.0 → 29.1.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.
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Class run operations - execute ABAP classes that implement if_oo_adt_classrun
3
3
  */
4
+ import type { IDebuggeeIds } from '@mcp-abap-adt/interfaces-adt';
4
5
  import type { IAbapConnection, IAdtWireResponse } from '@mcp-abap-adt/interfaces-adt-connection';
5
6
  /**
6
7
  * Run an ABAP class that implements if_oo_adt_classrun interface.
@@ -45,7 +46,7 @@ import type { IAbapConnection, IAdtWireResponse } from '@mcp-abap-adt/interfaces
45
46
  * }
46
47
  * ```
47
48
  */
48
- export declare function runClass(connection: IAbapConnection, className: string, runnable?: boolean, _sessionId?: string): Promise<IAdtWireResponse>;
49
+ export declare function runClass(connection: IAbapConnection, className: string, runnable?: boolean, _sessionId?: string, debuggee?: IDebuggeeIds): Promise<IAdtWireResponse>;
49
50
  export type { IClassUnitTestDefinition, IClassUnitTestRunOptions, } from '@mcp-abap-adt/interfaces-adt';
50
51
  import type { IClassUnitTestDefinition, IClassUnitTestRunOptions } from '@mcp-abap-adt/interfaces-adt';
51
52
  import { getUnitTestRunResult, getUnitTestRunStatus } from '../shared/abapUnit';
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/core/class/run.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EACjB,MAAM,yCAAyC,CAAC;AAIjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,eAAe,EAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,OAAc,EACxB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC,CAmB3B;AAOD,YAAY,EACV,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,8BAA8B,CAAC;AAMtC,OAAO,KAAK,EACV,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EAErB,MAAM,oBAAoB,CAAC;AAE5B,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,wBAAwB,EAAE,EACjC,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,gBAAgB,CAAC,CA6C3B;AAED,mFAAmF;AACnF,eAAO,MAAM,sBAAsB,6BAAuB,CAAC;AAE3D,qEAAqE;AACrE,eAAO,MAAM,sBAAsB,6BAAuB,CAAC;AAE3D;;;;GAIG;AACH,wBAAsB,6BAA6B,CACjD,UAAU,EAAE,eAAe,EAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,gBAAgB,CAAC,CAM3B"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/core/class/run.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EACjB,MAAM,yCAAyC,CAAC;AAKjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,eAAe,EAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,OAAc,EACxB,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAoB3B;AAOD,YAAY,EACV,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,8BAA8B,CAAC;AAMtC,OAAO,KAAK,EACV,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EAErB,MAAM,oBAAoB,CAAC;AAE5B,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,wBAAwB,EAAE,EACjC,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,gBAAgB,CAAC,CA6C3B;AAED,mFAAmF;AACnF,eAAO,MAAM,sBAAsB,6BAAuB,CAAC;AAE3D,qEAAqE;AACrE,eAAO,MAAM,sBAAsB,6BAAuB,CAAC;AAE3D;;;;GAIG;AACH,wBAAsB,6BAA6B,CACjD,UAAU,EAAE,eAAe,EAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,gBAAgB,CAAC,CAM3B"}
@@ -7,6 +7,7 @@ exports.getClassUnitTestResult = exports.getClassUnitTestStatus = void 0;
7
7
  exports.runClass = runClass;
8
8
  exports.startClassUnitTestRun = startClassUnitTestRun;
9
9
  exports.startClassUnitTestRunByObject = startClassUnitTestRunByObject;
10
+ const passport_1 = require("../../runtime/debugger/passport");
10
11
  const timeouts_1 = require("../../utils/timeouts");
11
12
  const xml_1 = require("../../utils/xml");
12
13
  /**
@@ -52,13 +53,14 @@ const xml_1 = require("../../utils/xml");
52
53
  * }
53
54
  * ```
54
55
  */
55
- async function runClass(connection, className, runnable = true, _sessionId) {
56
+ async function runClass(connection, className, runnable = true, _sessionId, debuggee) {
56
57
  if (!runnable) {
57
58
  throw new Error(`Class ${className} is not marked as runnable (does not implement if_oo_adt_classrun)`);
58
59
  }
59
60
  const url = `/sap/bc/adt/oo/classrun/${className}`;
60
61
  const headers = {
61
62
  Accept: contentTypes_1.ACCEPT_SOURCE,
63
+ ...(debuggee && { 'SAP-PASSPORT': (0, passport_1.debuggeePassport)(debuggee) }),
62
64
  };
63
65
  return connection.makeAdtRequest({
64
66
  url,
@@ -1,11 +1,12 @@
1
1
  /**
2
2
  * Program run operations - execute ABAP executable programs
3
3
  */
4
+ import type { IDebuggeeIds } from '@mcp-abap-adt/interfaces-adt';
4
5
  import type { IAbapConnection, IAdtWireResponse } from '@mcp-abap-adt/interfaces-adt-connection';
5
6
  /**
6
7
  * Run an ABAP executable program.
7
8
  *
8
9
  * Endpoint: POST /sap/bc/adt/programs/programrun/{programName}
9
10
  */
10
- export declare function runProgram(connection: IAbapConnection, programName: string, _sessionId?: string): Promise<IAdtWireResponse>;
11
+ export declare function runProgram(connection: IAbapConnection, programName: string, _sessionId?: string, debuggee?: IDebuggeeIds): Promise<IAdtWireResponse>;
11
12
  //# sourceMappingURL=run.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/core/program/run.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EACjB,MAAM,yCAAyC,CAAC;AAKjD;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,UAAU,EAAE,eAAe,EAC3B,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC,CAY3B"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/core/program/run.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EACjB,MAAM,yCAAyC,CAAC;AAMjD;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,UAAU,EAAE,eAAe,EAC3B,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAa3B"}
@@ -5,6 +5,7 @@
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.runProgram = runProgram;
7
7
  const contentTypes_1 = require("../../constants/contentTypes");
8
+ const passport_1 = require("../../runtime/debugger/passport");
8
9
  const internalUtils_1 = require("../../utils/internalUtils");
9
10
  const timeouts_1 = require("../../utils/timeouts");
10
11
  /**
@@ -12,7 +13,7 @@ const timeouts_1 = require("../../utils/timeouts");
12
13
  *
13
14
  * Endpoint: POST /sap/bc/adt/programs/programrun/{programName}
14
15
  */
15
- async function runProgram(connection, programName, _sessionId) {
16
+ async function runProgram(connection, programName, _sessionId, debuggee) {
16
17
  const normalizedName = (0, internalUtils_1.encodeSapObjectName)(programName).toUpperCase();
17
18
  return connection.makeAdtRequest({
18
19
  url: `/sap/bc/adt/programs/programrun/${normalizedName}`,
@@ -21,6 +22,7 @@ async function runProgram(connection, programName, _sessionId) {
21
22
  headers: {
22
23
  Accept: contentTypes_1.ACCEPT_SOURCE,
23
24
  'X-sap-adt-profiling': 'server-time',
25
+ ...(debuggee && { 'SAP-PASSPORT': (0, passport_1.debuggeePassport)(debuggee) }),
24
26
  },
25
27
  });
26
28
  }
@@ -1,4 +1,4 @@
1
- import type { IAdtAnalyseOptions, IAdtError, IAdtResponse, IAdtRunnable, IClassExecuteWithProfilerOptions, IClassExecutionTarget, IProfilerTraceParameters, IResultStrategy, IRunnableWithProfiler, ITraceScheduling } from '@mcp-abap-adt/interfaces-adt';
1
+ import type { IAdtAnalyseOptions, IAdtError, IAdtResponse, IAdtRunnable, IClassExecuteOptions, IClassExecuteWithProfilerOptions, IClassExecutionTarget, IProfilerTraceParameters, IResultStrategy, IRunnableWithProfiler, ITraceScheduling } from '@mcp-abap-adt/interfaces-adt';
2
2
  import type { IAbapConnection } from '@mcp-abap-adt/interfaces-adt-connection';
3
3
  import type { ILogger } from '@mcp-abap-adt/interfaces-utils';
4
4
  import { type ITraceSchedulingResults } from '../traceScheduling';
@@ -41,7 +41,7 @@ export declare class ClassExecutor<R extends IClassExecutorResults = typeof clas
41
41
  listRequests<E extends IAdtError = IAdtError>(options?: IAdtAnalyseOptions<E>): Promise<IAdtResponse<ReturnType<R['requests']>, E>>;
42
42
  getRequestsByUri<E extends IAdtError = IAdtError>(uri: string, options?: IAdtAnalyseOptions<E>): Promise<IAdtResponse<ReturnType<R['requests']>, E>>;
43
43
  scheduleTrace<E extends IAdtError = IAdtError>(options?: IProfilerTraceParameters & IAdtAnalyseOptions<E>): Promise<IAdtResponse<ReturnType<R['scheduled']>, E>>;
44
- run<E extends IAdtError = IAdtError>(target: IClassExecutionTarget, options?: IAdtAnalyseOptions<E>): Promise<IAdtResponse<ReturnType<R['run']>, E>>;
44
+ run<E extends IAdtError = IAdtError>(target: IClassExecutionTarget, options?: IClassExecuteOptions & IAdtAnalyseOptions<E>): Promise<IAdtResponse<ReturnType<R['run']>, E>>;
45
45
  runWithProfiler<E extends IAdtError = IAdtError>(target: IClassExecutionTarget, options: IClassExecuteWithProfilerOptions & IAdtAnalyseOptions<E>): Promise<IAdtResponse<ReturnType<R['run']>, E>>;
46
46
  }
47
47
  //# sourceMappingURL=ClassExecutor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClassExecutor.d.ts","sourceRoot":"","sources":["../../../src/executors/class/ClassExecutor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClassExecutor.d.ts","sourceRoot":"","sources":["../../../src/executors/class/ClassExecutor.ts"],"names":[],"mappings":"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"}
@@ -56,7 +56,7 @@ class ClassExecutor {
56
56
  return this.scheduling.scheduleTrace(options);
57
57
  }
58
58
  async run(target, options) {
59
- return (0, adtResponse_1.answering)(() => (0, run_1.runClass)(this.connection, target.className, true), this.results.run, options?.analyse);
59
+ return (0, adtResponse_1.answering)(() => (0, run_1.runClass)(this.connection, target.className, true, undefined, options?.debuggee), this.results.run, options?.analyse);
60
60
  }
61
61
  async runWithProfiler(target, options) {
62
62
  const encodedProfilerId = encodeURIComponent(options.profilerId);
@@ -1,4 +1,4 @@
1
- import type { IAdtAnalyseOptions, IAdtError, IAdtResponse, IAdtRunnable, IProfilerTraceParameters, IProgramExecuteWithProfilerOptions, IProgramExecutionTarget, IResultStrategy, IRunnableWithProfiler, ITraceScheduling } from '@mcp-abap-adt/interfaces-adt';
1
+ import type { IAdtAnalyseOptions, IAdtError, IAdtResponse, IAdtRunnable, IProfilerTraceParameters, IProgramExecuteOptions, IProgramExecuteWithProfilerOptions, IProgramExecutionTarget, IResultStrategy, IRunnableWithProfiler, ITraceScheduling } from '@mcp-abap-adt/interfaces-adt';
2
2
  import type { IAbapConnection } from '@mcp-abap-adt/interfaces-adt-connection';
3
3
  import type { ILogger } from '@mcp-abap-adt/interfaces-utils';
4
4
  import { type ITraceSchedulingResults } from '../traceScheduling';
@@ -40,7 +40,7 @@ export declare class ProgramExecutor<R extends IProgramExecutorResults = typeof
40
40
  listRequests<E extends IAdtError = IAdtError>(options?: IAdtAnalyseOptions<E>): Promise<IAdtResponse<ReturnType<R['requests']>, E>>;
41
41
  getRequestsByUri<E extends IAdtError = IAdtError>(uri: string, options?: IAdtAnalyseOptions<E>): Promise<IAdtResponse<ReturnType<R['requests']>, E>>;
42
42
  scheduleTrace<E extends IAdtError = IAdtError>(options?: IProfilerTraceParameters & IAdtAnalyseOptions<E>): Promise<IAdtResponse<ReturnType<R['scheduled']>, E>>;
43
- run<E extends IAdtError = IAdtError>(target: IProgramExecutionTarget, options?: IAdtAnalyseOptions<E>): Promise<IAdtResponse<ReturnType<R['run']>, E>>;
43
+ run<E extends IAdtError = IAdtError>(target: IProgramExecutionTarget, options?: IProgramExecuteOptions & IAdtAnalyseOptions<E>): Promise<IAdtResponse<ReturnType<R['run']>, E>>;
44
44
  runWithProfiler<E extends IAdtError = IAdtError>(target: IProgramExecutionTarget, options: IProgramExecuteWithProfilerOptions & IAdtAnalyseOptions<E>): Promise<IAdtResponse<ReturnType<R['run']>, E>>;
45
45
  }
46
46
  //# sourceMappingURL=ProgramExecutor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProgramExecutor.d.ts","sourceRoot":"","sources":["../../../src/executors/program/ProgramExecutor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProgramExecutor.d.ts","sourceRoot":"","sources":["../../../src/executors/program/ProgramExecutor.ts"],"names":[],"mappings":"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"}
@@ -55,7 +55,7 @@ class ProgramExecutor {
55
55
  return this.scheduling.scheduleTrace(options);
56
56
  }
57
57
  async run(target, options) {
58
- return (0, adtResponse_1.answering)(() => (0, run_1.runProgram)(this.connection, target.programName), this.results.run, options?.analyse);
58
+ return (0, adtResponse_1.answering)(() => (0, run_1.runProgram)(this.connection, target.programName, undefined, options?.debuggee), this.results.run, options?.analyse);
59
59
  }
60
60
  async runWithProfiler(target, options) {
61
61
  const normalizedProgramName = (0, internalUtils_1.encodeSapObjectName)(target.programName).toUpperCase();
@@ -0,0 +1,29 @@
1
+ /**
2
+ * The `SAP-PASSPORT` a run carries so that a terminal-mode listener catches it.
3
+ *
4
+ * A terminal-mode listener catches a request by the terminal id and IDE id the
5
+ * request carries in its DSR passport, as two system variable items: (2, 1) the
6
+ * terminal id, (2, 2) the IDE id. A run URL has no parameter for them. This is
7
+ * the passport the ADT client builds for its own runs: version 3, system type 10,
8
+ * a random root context id and transaction id, the two items, nothing else.
9
+ *
10
+ * Measured on premise (2026-10-12, BASIS 816): a class run carrying it is caught
11
+ * by the terminal-mode listener with those ids and by no other; without it no
12
+ * terminal-mode listener catches the run; a passport whose root context id and
13
+ * transaction id are zero is caught all the same. The output was compared byte
14
+ * for byte with SAP's own passport library on the same fields.
15
+ */
16
+ import type { IDebuggeeIds } from '@mcp-abap-adt/interfaces-adt';
17
+ /** Fixed per-request fields, for a reproducible passport; random when omitted. */
18
+ export interface IDebuggeePassportFields {
19
+ /** 16 bytes as 32 hex characters. */
20
+ rootContextId?: string;
21
+ /** 32 hex characters, written as text. */
22
+ transId?: string;
23
+ }
24
+ /**
25
+ * The `SAP-PASSPORT` header value (upper-case hex) carrying the debuggee's ids.
26
+ * Each id is 32 hex characters, as {@link IDebuggeeIds} states.
27
+ */
28
+ export declare function debuggeePassport(ids: IDebuggeeIds, fields?: IDebuggeePassportFields): string;
29
+ //# sourceMappingURL=passport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passport.d.ts","sourceRoot":"","sources":["../../../src/runtime/debugger/passport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAqBjE,kFAAkF;AAClF,MAAM,WAAW,uBAAuB;IACtC,qCAAqC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,YAAY,EACjB,MAAM,GAAE,uBAA4B,GACnC,MAAM,CAWR"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ /**
3
+ * The `SAP-PASSPORT` a run carries so that a terminal-mode listener catches it.
4
+ *
5
+ * A terminal-mode listener catches a request by the terminal id and IDE id the
6
+ * request carries in its DSR passport, as two system variable items: (2, 1) the
7
+ * terminal id, (2, 2) the IDE id. A run URL has no parameter for them. This is
8
+ * the passport the ADT client builds for its own runs: version 3, system type 10,
9
+ * a random root context id and transaction id, the two items, nothing else.
10
+ *
11
+ * Measured on premise (2026-10-12, BASIS 816): a class run carrying it is caught
12
+ * by the terminal-mode listener with those ids and by no other; without it no
13
+ * terminal-mode listener catches the run; a passport whose root context id and
14
+ * transaction id are zero is caught all the same. The output was compared byte
15
+ * for byte with SAP's own passport library on the same fields.
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.debuggeePassport = debuggeePassport;
19
+ const node_crypto_1 = require("node:crypto");
20
+ /** 288 bytes: the passport with every per-request field zero. */
21
+ const TEMPLATE = [
22
+ '2A54482A03012000000000000000000000000000000000000000000000000000',
23
+ '0000000000000000000000000000000000000000000000000000000000000000',
24
+ '0000000000000000000000000000000000000000000000000000000000000000',
25
+ '0000000000000000000000000000000000000000000000000000000000000000',
26
+ '0000000000000000000000000000000000000000000000000000000000000000',
27
+ '000000000000000000000000000000000000000000000000000A000000000000',
28
+ '0000000000000000000000000000000000000000000000000000000000000001',
29
+ '00E22A54482A01003A0100010002000200010300170000000000000000000000',
30
+ '000000000000020002030017000000000000000000000000000000002A54482A',
31
+ ].join('');
32
+ /** Byte offsets of the per-request fields. */
33
+ const TRANS_ID = 149; // 32 ASCII hex characters
34
+ const ROOT_CONTEXT_ID = 186; // 16 bytes
35
+ const TERMINAL_ID = 245; // 16 bytes, system variable item (2, 1)
36
+ const IDE_ID = 268; // 16 bytes, system variable item (2, 2)
37
+ /**
38
+ * The `SAP-PASSPORT` header value (upper-case hex) carrying the debuggee's ids.
39
+ * Each id is 32 hex characters, as {@link IDebuggeeIds} states.
40
+ */
41
+ function debuggeePassport(ids, fields = {}) {
42
+ const passport = Buffer.from(TEMPLATE, 'hex');
43
+ const hex = () => (0, node_crypto_1.randomBytes)(16).toString('hex').toUpperCase();
44
+ Buffer.from(fields.transId ?? hex(), 'ascii').copy(passport, TRANS_ID);
45
+ Buffer.from(fields.rootContextId ?? hex(), 'hex').copy(passport, ROOT_CONTEXT_ID);
46
+ Buffer.from(ids.terminalId, 'hex').copy(passport, TERMINAL_ID);
47
+ Buffer.from(ids.ideId, 'hex').copy(passport, IDE_ID);
48
+ return passport.toString('hex').toUpperCase();
49
+ }
@@ -1980,14 +1980,27 @@ const terminal = { debuggingMode: 'terminal', terminalId, ideId } as const;
1980
1980
  Windows client keeps one per logon, and a further window or a browser joins
1981
1981
  it. A `terminalId` equal to `ideId` means that IDE's own requests only
1982
1982
  (server source, BASIS 816, read 2026-10-11).
1983
- - **A catch in terminal mode is unmeasured.** The mode follows the discovery and
1984
- the server source: the listener, the check, the breakpoints and their
1985
- deletion answer `200` on premise (2026-10-11), BASIS 816, but Eclipse's own
1986
- runs under Terminal ID were not caught there. If it does not catch for you,
1987
- file an issue with: the identity's mode; whether the terminal id is the one
1988
- SAP GUI shows; how the program was started (SAP GUI, browser, RFC, job); and
1989
- the wire log of the request (`WIRE_LOG=<file>` in this repository's tests;
1990
- `DEBUG_HTTP_WIRE=true` in the MCP server).
1983
+ - **A catch in terminal mode needs the ids on the request.** A terminal-mode
1984
+ listener catches a request by the terminal id and IDE id the request carries
1985
+ in its `SAP-PASSPORT` header, the way the ADT client sends them; a run URL has
1986
+ no parameter for them. Give the run the identity's ids and it carries them:
1987
+
1988
+ ```typescript
1989
+ await new AdtExecutor(triggerConnection, logger)
1990
+ .getClassExecutor()
1991
+ .run({ className }, { debuggee: { terminalId, ideId } });
1992
+ ```
1993
+
1994
+ Measured on premise (2026-10-12), BASIS 816: a class run with the ids was
1995
+ caught by the listener with those ids and by no other, with `terminalId`
1996
+ equal to `ideId` or not; without them no terminal-mode listener caught it.
1997
+ A program run takes the same option. A request this library does not start
1998
+ (SAP GUI, a browser) carries what its own client puts there.
1999
+ - **The ids do not separate the breakpoints.** Two listeners of one SAP user in
2000
+ terminal mode, with other terminal and IDE ids, both listened, and each run
2001
+ was caught only by the listener whose ids it carried, but `setBreakpoints`
2002
+ under one identity replaced the set the other had armed (measured the same
2003
+ day). The server source reads otherwise (below); the measurement stands.
1991
2004
 
1992
2005
  #### Another user
1993
2006
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-abap-adt/adt-clients",
3
- "version": "29.0.0",
3
+ "version": "29.1.0",
4
4
  "description": "ADT clients for SAP ABAP systems - AdtClient and AdtRuntimeClient",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -117,7 +117,7 @@
117
117
  "node": ">=18.0.0"
118
118
  },
119
119
  "dependencies": {
120
- "@mcp-abap-adt/interfaces-adt": "^15.0.0",
120
+ "@mcp-abap-adt/interfaces-adt": "^15.1.0",
121
121
  "@mcp-abap-adt/interfaces-adt-connection": "^2.0.0",
122
122
  "@mcp-abap-adt/interfaces-network": "^2.0.0",
123
123
  "@mcp-abap-adt/interfaces-utils": "^1.1.0",
@@ -127,7 +127,7 @@
127
127
  },
128
128
  "devDependencies": {
129
129
  "@biomejs/biome": "^2.4.4",
130
- "@mcp-abap-adt/adt-strategies": "^0.9.0",
130
+ "@mcp-abap-adt/adt-strategies": "^0.10.0",
131
131
  "@mcp-abap-adt/auth-providers": "^5.0.1",
132
132
  "@mcp-abap-adt/connection": "^10.0.2",
133
133
  "@mcp-abap-adt/interfaces-auth": "^3.0.0",