@mcp-abap-adt/core 4.7.0 → 4.8.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,25 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [4.8.1] - 2026-04-02
6
+
7
+ ### Changed
8
+ - Add build (tsc) step to pre-commit hook to catch type errors before commit
9
+
10
+ ## [4.8.0] - 2026-04-02
11
+
12
+ ### Added
13
+ - `RuntimeListDumps`: new `from` / `to` parameters (YYYYMMDDHHMMSS system local time) for server-side time-range filtering. Response is now a structured `dumps` array with `dump_id`, `datetime`, `error`, `title`, and `user` fields — replaces the raw atom feed payload.
14
+ - `RuntimeGetDumpById`: dump lookup by `datetime` + `user` without knowing the dump ID. Pass `datetime` (ISO or `"YYYY-MM-DD HH:MM:SS"`) and `user` to resolve the dump automatically using a ±2-minute server-side window and ±60-second client-side match. `dump_id` is now optional.
15
+
16
+ ### Changed
17
+ - `RuntimeGetDumpById`: `dump_id` parameter is no longer required — provide either `dump_id` or `datetime` + `user`.
18
+
19
+ ## [4.7.1] - 2026-04-01
20
+
21
+ ### Fixed
22
+ - Update server.json version to match package version
23
+
5
24
  ## [4.7.0] - 2026-04-01
6
25
 
7
26
  ### Changed
@@ -2,13 +2,21 @@ import type { HandlerContext } from '../../../lib/handlers/interfaces';
2
2
  export declare const TOOL_DEFINITION: {
3
3
  readonly name: "RuntimeGetDumpById";
4
4
  readonly available_in: readonly ["onprem", "cloud"];
5
- readonly description: "[runtime] Read a specific ABAP runtime dump by dump ID. Returns parsed JSON payload.";
5
+ readonly description: "[runtime] Read a specific ABAP runtime dump. Identify the dump by datetime + user (preferred, e.g. from a CALM event), or pass dump_id directly if already known.";
6
6
  readonly inputSchema: {
7
7
  readonly type: "object";
8
8
  readonly properties: {
9
+ readonly datetime: {
10
+ readonly type: "string";
11
+ readonly description: "Dump datetime (ISO or \"YYYY-MM-DD HH:MM:SS\"). Combined with user, uniquely identifies the dump. Preferred over dump_id.";
12
+ };
13
+ readonly user: {
14
+ readonly type: "string";
15
+ readonly description: "SAP username whose dump to read. Required when using datetime lookup.";
16
+ };
9
17
  readonly dump_id: {
10
18
  readonly type: "string";
11
- readonly description: "Runtime dump ID (for example: 694AB694097211F1929806D06D234D38).";
19
+ readonly description: "Full runtime dump ID. Use only when already known; prefer datetime + user otherwise.";
12
20
  };
13
21
  readonly view: {
14
22
  readonly type: "string";
@@ -17,11 +25,13 @@ export declare const TOOL_DEFINITION: {
17
25
  readonly default: "default";
18
26
  };
19
27
  };
20
- readonly required: readonly ["dump_id"];
28
+ readonly required: readonly [];
21
29
  };
22
30
  };
23
31
  interface RuntimeGetDumpByIdArgs {
24
- dump_id: string;
32
+ dump_id?: string;
33
+ datetime?: string;
34
+ user?: string;
25
35
  view?: 'default' | 'summary' | 'formatted';
26
36
  }
27
37
  export declare function handleRuntimeGetDumpById(context: HandlerContext, args: RuntimeGetDumpByIdArgs): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"handleRuntimeGetDumpById.d.ts","sourceRoot":"","sources":["../../../../src/handlers/system/readonly/handleRuntimeGetDumpById.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAIvE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;CAuBlB,CAAC;AAEX,UAAU,sBAAsB;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;CAC5C;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,sBAAsB;;;;;;GAoC7B"}
1
+ {"version":3,"file":"handleRuntimeGetDumpById.d.ts","sourceRoot":"","sources":["../../../../src/handlers/system/readonly/handleRuntimeGetDumpById.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAKvE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiClB,CAAC;AAEX,UAAU,sBAAsB;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;CAC5C;AAkFD,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,sBAAsB;;;;;;GAyC7B"}
@@ -4,17 +4,26 @@ exports.TOOL_DEFINITION = void 0;
4
4
  exports.handleRuntimeGetDumpById = handleRuntimeGetDumpById;
5
5
  const adt_clients_1 = require("@mcp-abap-adt/adt-clients");
6
6
  const utils_1 = require("../../../lib/utils");
7
+ const handleRuntimeListDumps_1 = require("./handleRuntimeListDumps");
7
8
  const runtimePayloadParser_1 = require("./runtimePayloadParser");
8
9
  exports.TOOL_DEFINITION = {
9
10
  name: 'RuntimeGetDumpById',
10
11
  available_in: ['onprem', 'cloud'],
11
- description: '[runtime] Read a specific ABAP runtime dump by dump ID. Returns parsed JSON payload.',
12
+ description: '[runtime] Read a specific ABAP runtime dump. Identify the dump by datetime + user (preferred, e.g. from a CALM event), or pass dump_id directly if already known.',
12
13
  inputSchema: {
13
14
  type: 'object',
14
15
  properties: {
16
+ datetime: {
17
+ type: 'string',
18
+ description: 'Dump datetime (ISO or "YYYY-MM-DD HH:MM:SS"). Combined with user, uniquely identifies the dump. Preferred over dump_id.',
19
+ },
20
+ user: {
21
+ type: 'string',
22
+ description: 'SAP username whose dump to read. Required when using datetime lookup.',
23
+ },
15
24
  dump_id: {
16
25
  type: 'string',
17
- description: 'Runtime dump ID (for example: 694AB694097211F1929806D06D234D38).',
26
+ description: 'Full runtime dump ID. Use only when already known; prefer datetime + user otherwise.',
18
27
  },
19
28
  view: {
20
29
  type: 'string',
@@ -23,24 +32,88 @@ exports.TOOL_DEFINITION = {
23
32
  default: 'default',
24
33
  },
25
34
  },
26
- required: ['dump_id'],
35
+ required: [],
27
36
  },
28
37
  };
38
+ function parseDatetimeToMs(raw) {
39
+ const trimmed = raw.trim();
40
+ // "2026-03-31 18:53:47" — space-separated, treat as UTC
41
+ const spaceForm = trimmed.match(/^(\d{4}-\d{2}-\d{2})\s+(\d{2}:\d{2}:\d{2})$/);
42
+ if (spaceForm) {
43
+ return Date.parse(`${spaceForm[1]}T${spaceForm[2]}Z`);
44
+ }
45
+ // ISO with or without Z/offset — let Date handle it
46
+ const ms = Date.parse(trimmed);
47
+ if (!isNaN(ms))
48
+ return ms;
49
+ throw new Error(`Cannot parse datetime: "${raw}"`);
50
+ }
51
+ function datetimeToSapLocal(raw) {
52
+ // Convert UTC datetime to YYYYMMDDHHMMSS (best-effort, no TZ conversion —
53
+ // caller should pass system-local time if known, or we use UTC as fallback)
54
+ const ms = parseDatetimeToMs(raw);
55
+ if (isNaN(ms))
56
+ return undefined;
57
+ const d = new Date(ms);
58
+ const pad = (n) => String(n).padStart(2, '0');
59
+ return (d.getUTCFullYear().toString() +
60
+ pad(d.getUTCMonth() + 1) +
61
+ pad(d.getUTCDate()) +
62
+ pad(d.getUTCHours()) +
63
+ pad(d.getUTCMinutes()) +
64
+ pad(d.getUTCSeconds()));
65
+ }
66
+ async function resolveDumpId(context, datetime, user) {
67
+ const targetMs = parseDatetimeToMs(datetime);
68
+ // Build from/to window (±2 min) in YYYYMMDDHHMMSS for server-side filtering
69
+ const fromMs = targetMs - 2 * 60_000;
70
+ const toMs = targetMs + 2 * 60_000;
71
+ const fromSap = datetimeToSapLocal(new Date(fromMs).toISOString());
72
+ const toSap = datetimeToSapLocal(new Date(toMs).toISOString());
73
+ const listResult = await (0, handleRuntimeListDumps_1.handleRuntimeListDumps)(context, {
74
+ user,
75
+ from: fromSap,
76
+ to: toSap,
77
+ top: 20,
78
+ });
79
+ if (listResult.isError) {
80
+ const msg = listResult.content[0]?.text ?? 'unknown error';
81
+ throw new Error(`Failed to list dumps for user "${user}": ${msg}`);
82
+ }
83
+ const text = listResult.content.find((c) => c.type === 'text')?.text;
84
+ const data = JSON.parse(text);
85
+ const dumps = data.dumps ?? [];
86
+ // Find closest match within ±60 seconds
87
+ let best;
88
+ for (const d of dumps) {
89
+ const dMs = parseDatetimeToMs(d.datetime);
90
+ const diff = Math.abs(dMs - targetMs);
91
+ if (diff <= 60_000 && (!best || diff < best.diff)) {
92
+ best = { dump_id: d.dump_id, diff };
93
+ }
94
+ }
95
+ if (!best) {
96
+ throw new Error(`No dump found for user="${user}" near datetime="${datetime}" (±60s). Available: ${dumps.map((d) => d.datetime).join(', ')}`);
97
+ }
98
+ return best.dump_id;
99
+ }
29
100
  async function handleRuntimeGetDumpById(context, args) {
30
101
  const { connection, logger } = context;
31
102
  try {
32
- if (!args?.dump_id) {
33
- throw new Error('Parameter "dump_id" is required');
103
+ let dumpId = args?.dump_id?.trim();
104
+ if (!dumpId) {
105
+ if (!args?.datetime || !args?.user) {
106
+ throw new Error('Provide either "dump_id" or both "datetime" and "user"');
107
+ }
108
+ dumpId = await resolveDumpId(context, args.datetime, args.user);
34
109
  }
35
110
  const view = args.view ?? 'default';
36
111
  const runtimeClient = new adt_clients_1.AdtRuntimeClient(connection, logger);
37
- const response = await runtimeClient.getRuntimeDumpById(args.dump_id, {
38
- view,
39
- });
112
+ const response = await runtimeClient.getRuntimeDumpById(dumpId, { view });
40
113
  return (0, utils_1.return_response)({
41
114
  data: JSON.stringify({
42
115
  success: true,
43
- dump_id: args.dump_id,
116
+ dump_id: dumpId,
44
117
  view,
45
118
  status: response.status,
46
119
  payload: (0, runtimePayloadParser_1.parseRuntimePayloadToJson)(response.data),
@@ -1 +1 @@
1
- {"version":3,"file":"handleRuntimeGetDumpById.js","sourceRoot":"","sources":["../../../../src/handlers/system/readonly/handleRuntimeGetDumpById.ts"],"names":[],"mappings":";;;AAmCA,4DAsCC;AAzED,2DAA6D;AAE7D,8CAAmE;AACnE,iEAAmE;AAEtD,QAAA,eAAe,GAAG;IAC7B,IAAI,EAAE,oBAAoB;IAC1B,YAAY,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAU;IAC1C,WAAW,EACT,sFAAsF;IACxF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,kEAAkE;aACrE;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC;gBACzC,WAAW,EACT,2EAA2E;gBAC7E,OAAO,EAAE,SAAS;aACnB;SACF;QACD,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB;CACO,CAAC;AAOJ,KAAK,UAAU,wBAAwB,CAC5C,OAAuB,EACvB,IAA4B;IAE5B,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEvC,IAAI,CAAC;QACH,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;QACpC,MAAM,aAAa,GAAG,IAAI,8BAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE;YACpE,IAAI;SACL,CAAC,CAAC;QAEH,OAAO,IAAA,uBAAe,EAAC;YACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;gBACE,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,IAAI;gBACJ,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,OAAO,EAAE,IAAA,gDAAyB,EAAC,QAAQ,CAAC,IAAI,CAAC;aAClD,EACD,IAAI,EACJ,CAAC,CACF;YACD,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,EAAE,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAC1D,OAAO,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"handleRuntimeGetDumpById.js","sourceRoot":"","sources":["../../../../src/handlers/system/readonly/handleRuntimeGetDumpById.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { HandlerContext } from '../../../lib/handlers/interfaces';
2
2
  export declare const TOOL_DEFINITION: {
3
3
  readonly name: "RuntimeListDumps";
4
4
  readonly available_in: readonly ["onprem", "cloud"];
5
- readonly description: "[runtime] List ABAP runtime dumps with optional user filter and paging. Returns parsed JSON payload.";
5
+ readonly description: "[runtime] List ABAP runtime dumps with optional user filter and paging. Returns structured list with dump_id, datetime, error type, title, and user.";
6
6
  readonly inputSchema: {
7
7
  readonly type: "object";
8
8
  readonly properties: {
@@ -10,6 +10,14 @@ export declare const TOOL_DEFINITION: {
10
10
  readonly type: "string";
11
11
  readonly description: "Optional username filter. If omitted, dumps for all users are returned.";
12
12
  };
13
+ readonly from: {
14
+ readonly type: "string";
15
+ readonly description: "Start of time range in YYYYMMDDHHMMSS format (system local time). Narrows results to dumps on or after this datetime.";
16
+ };
17
+ readonly to: {
18
+ readonly type: "string";
19
+ readonly description: "End of time range in YYYYMMDDHHMMSS format (system local time). Narrows results to dumps on or before this datetime.";
20
+ };
13
21
  readonly inlinecount: {
14
22
  readonly type: "string";
15
23
  readonly enum: readonly ["allpages", "none"];
@@ -33,6 +41,8 @@ export declare const TOOL_DEFINITION: {
33
41
  };
34
42
  interface RuntimeListDumpsArgs {
35
43
  user?: string;
44
+ from?: string;
45
+ to?: string;
36
46
  inlinecount?: 'allpages' | 'none';
37
47
  top?: number;
38
48
  skip?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"handleRuntimeListDumps.d.ts","sourceRoot":"","sources":["../../../../src/handlers/system/readonly/handleRuntimeListDumps.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAIvE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiClB,CAAC;AAEX,UAAU,oBAAoB;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,oBAAoB;;;;;;GA0C3B"}
1
+ {"version":3,"file":"handleRuntimeListDumps.d.ts","sourceRoot":"","sources":["../../../../src/handlers/system/readonly/handleRuntimeListDumps.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAIvE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2ClB,CAAC;AAEX,UAAU,oBAAoB;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA6CD,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,oBAAoB;;;;;;GAkD3B"}
@@ -8,7 +8,7 @@ const runtimePayloadParser_1 = require("./runtimePayloadParser");
8
8
  exports.TOOL_DEFINITION = {
9
9
  name: 'RuntimeListDumps',
10
10
  available_in: ['onprem', 'cloud'],
11
- description: '[runtime] List ABAP runtime dumps with optional user filter and paging. Returns parsed JSON payload.',
11
+ description: '[runtime] List ABAP runtime dumps with optional user filter and paging. Returns structured list with dump_id, datetime, error type, title, and user.',
12
12
  inputSchema: {
13
13
  type: 'object',
14
14
  properties: {
@@ -16,6 +16,14 @@ exports.TOOL_DEFINITION = {
16
16
  type: 'string',
17
17
  description: 'Optional username filter. If omitted, dumps for all users are returned.',
18
18
  },
19
+ from: {
20
+ type: 'string',
21
+ description: 'Start of time range in YYYYMMDDHHMMSS format (system local time). Narrows results to dumps on or after this datetime.',
22
+ },
23
+ to: {
24
+ type: 'string',
25
+ description: 'End of time range in YYYYMMDDHHMMSS format (system local time). Narrows results to dumps on or before this datetime.',
26
+ },
19
27
  inlinecount: {
20
28
  type: 'string',
21
29
  enum: ['allpages', 'none'],
@@ -37,30 +45,68 @@ exports.TOOL_DEFINITION = {
37
45
  required: [],
38
46
  },
39
47
  };
48
+ function extractDumpId(href) {
49
+ const match = href.match(/\/runtime\/dump\/(.+)$/);
50
+ return match ? decodeURIComponent(match[1]) : href;
51
+ }
52
+ function parseDumpEntries(payload) {
53
+ const feed = payload?.['atom:feed'];
54
+ if (!feed)
55
+ return [];
56
+ const raw = feed['atom:entry'];
57
+ if (!raw)
58
+ return [];
59
+ const entries = Array.isArray(raw) ? raw : [raw];
60
+ return entries.map((e) => {
61
+ const links = Array.isArray(e['atom:link'])
62
+ ? e['atom:link']
63
+ : [e['atom:link']];
64
+ const selfLink = links.find((l) => l?.rel === 'self');
65
+ const dump_id = selfLink?.href ? extractDumpId(selfLink.href) : '';
66
+ const cats = Array.isArray(e['atom:category'])
67
+ ? e['atom:category']
68
+ : [e['atom:category']];
69
+ const error = cats[0]?.term ?? '';
70
+ return {
71
+ dump_id,
72
+ datetime: e['atom:published'] ?? '',
73
+ error,
74
+ title: e['atom:title'] ?? '',
75
+ user: e['atom:author']?.['atom:name'] ?? '',
76
+ };
77
+ });
78
+ }
40
79
  async function handleRuntimeListDumps(context, args) {
41
80
  const { connection, logger } = context;
42
81
  try {
43
82
  const runtimeClient = new adt_clients_1.AdtRuntimeClient(connection, logger);
44
- const { user, inlinecount, top, skip, orderby } = args || {};
83
+ const { user, from, to, inlinecount, top, skip, orderby } = args || {};
45
84
  const response = user
46
85
  ? await runtimeClient.listRuntimeDumpsByUser(user, {
86
+ from,
87
+ to,
47
88
  inlinecount,
48
89
  top,
49
90
  skip,
50
91
  orderby,
51
92
  })
52
93
  : await runtimeClient.listRuntimeDumps({
94
+ from,
95
+ to,
53
96
  inlinecount,
54
97
  top,
55
98
  skip,
56
99
  orderby,
57
100
  });
101
+ const payload = (0, runtimePayloadParser_1.parseRuntimePayloadToJson)(response.data);
102
+ const dumps = parseDumpEntries(payload);
58
103
  return (0, utils_1.return_response)({
59
104
  data: JSON.stringify({
60
105
  success: true,
61
106
  user_filter: user || null,
107
+ count: dumps.length,
108
+ dumps,
62
109
  status: response.status,
63
- payload: (0, runtimePayloadParser_1.parseRuntimePayloadToJson)(response.data),
64
110
  }, null, 2),
65
111
  status: response.status,
66
112
  statusText: response.statusText,
@@ -1 +1 @@
1
- {"version":3,"file":"handleRuntimeListDumps.js","sourceRoot":"","sources":["../../../../src/handlers/system/readonly/handleRuntimeListDumps.ts"],"names":[],"mappings":";;;AAgDA,wDA4CC;AA5FD,2DAA6D;AAE7D,8CAAmE;AACnE,iEAAmE;AAEtD,QAAA,eAAe,GAAG;IAC7B,IAAI,EAAE,kBAAkB;IACxB,YAAY,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAU;IAC1C,WAAW,EACT,sGAAsG;IACxG,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,yEAAyE;aAC5E;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC;gBAC1B,WAAW,EAAE,+BAA+B;aAC7C;YACD,GAAG,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,sCAAsC;aACpD;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,4BAA4B;aAC1C;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0BAA0B;aACxC;SACF;QACD,QAAQ,EAAE,EAAE;KACb;CACO,CAAC;AAUJ,KAAK,UAAU,sBAAsB,CAC1C,OAAuB,EACvB,IAA0B;IAE1B,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,8BAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC/D,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;QAE7D,MAAM,QAAQ,GAAG,IAAI;YACnB,CAAC,CAAC,MAAM,aAAa,CAAC,sBAAsB,CAAC,IAAI,EAAE;gBAC/C,WAAW;gBACX,GAAG;gBACH,IAAI;gBACJ,OAAO;aACR,CAAC;YACJ,CAAC,CAAC,MAAM,aAAa,CAAC,gBAAgB,CAAC;gBACnC,WAAW;gBACX,GAAG;gBACH,IAAI;gBACJ,OAAO;aACR,CAAC,CAAC;QAEP,OAAO,IAAA,uBAAe,EAAC;YACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;gBACE,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,IAAI,IAAI,IAAI;gBACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,OAAO,EAAE,IAAA,gDAAyB,EAAC,QAAQ,CAAC,IAAI,CAAC;aAClD,EACD,IAAI,EACJ,CAAC,CACF;YACD,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,EAAE,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"handleRuntimeListDumps.js","sourceRoot":"","sources":["../../../../src/handlers/system/readonly/handleRuntimeListDumps.ts"],"names":[],"mappings":"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"}
@@ -944,12 +944,14 @@ Generated from code in `src/handlers/**` (not from docs).
944
944
 
945
945
  <a id="runtimegetdumpbyid-read-only-system"></a>
946
946
  #### RuntimeGetDumpById (Read-Only / System)
947
- **Description:** [runtime] Read a specific ABAP runtime dump by dump ID. Returns parsed JSON payload.
947
+ **Description:** [runtime] Read a specific ABAP runtime dump. Identify the dump by datetime + user (preferred, e.g. from a CALM event), or pass dump_id directly if already known.
948
948
 
949
949
  **Source:** `src/handlers/system/readonly/handleRuntimeGetDumpById.ts`
950
950
 
951
951
  **Parameters:**
952
- - `dump_id` (string, required) - Runtime dump ID (for example: 694AB694097211F1929806D06D234D38).
952
+ - `datetime` (string, optional) - Dump datetime (ISO or "YYYY-MM-DD HH:MM:SS"). Combined with user, uniquely identifies the dump. Preferred over dump_id.
953
+ - `dump_id` (string, optional) - Full runtime dump ID. Use only when already known; prefer datetime + user otherwise.
954
+ - `user` (string, optional) - SAP username whose dump to read. Required when using datetime lookup.
953
955
  - `view` (string, optional (default: default)) - Dump view mode: default payload, summary section, or formatted long text.
954
956
 
955
957
  ---
@@ -972,14 +974,16 @@ Generated from code in `src/handlers/**` (not from docs).
972
974
 
973
975
  <a id="runtimelistdumps-read-only-system"></a>
974
976
  #### RuntimeListDumps (Read-Only / System)
975
- **Description:** [runtime] List ABAP runtime dumps with optional user filter and paging. Returns parsed JSON payload.
977
+ **Description:** [runtime] List ABAP runtime dumps with optional user filter and paging. Returns structured list with dump_id, datetime, error type, title, and user.
976
978
 
977
979
  **Source:** `src/handlers/system/readonly/handleRuntimeListDumps.ts`
978
980
 
979
981
  **Parameters:**
982
+ - `from` (string, optional) - Start of time range in YYYYMMDDHHMMSS format (system local time). Narrows results to dumps on or after this datetime.
980
983
  - `inlinecount` (string, optional) - Include total count metadata.
981
984
  - `orderby` (string, optional) - ADT order by expression.
982
985
  - `skip` (number, optional) - Number of records to skip.
986
+ - `to` (string, optional) - End of time range in YYYYMMDDHHMMSS format (system local time). Narrows results to dumps on or before this datetime.
983
987
  - `top` (number, optional) - Maximum number of records to return.
984
988
  - `user` (string, optional) - Optional username filter. If omitted, dumps for all users are returned.
985
989
 
@@ -655,12 +655,14 @@ Generated from code in `src/handlers/**` (not from docs).
655
655
 
656
656
  <a id="runtimegetdumpbyid-read-only-system"></a>
657
657
  #### RuntimeGetDumpById (Read-Only / System)
658
- **Description:** [runtime] Read a specific ABAP runtime dump by dump ID. Returns parsed JSON payload.
658
+ **Description:** [runtime] Read a specific ABAP runtime dump. Identify the dump by datetime + user (preferred, e.g. from a CALM event), or pass dump_id directly if already known.
659
659
 
660
660
  **Source:** `src/handlers/system/readonly/handleRuntimeGetDumpById.ts`
661
661
 
662
662
  **Parameters:**
663
- - `dump_id` (string, required) - Runtime dump ID (for example: 694AB694097211F1929806D06D234D38).
663
+ - `datetime` (string, optional) - Dump datetime (ISO or "YYYY-MM-DD HH:MM:SS"). Combined with user, uniquely identifies the dump. Preferred over dump_id.
664
+ - `dump_id` (string, optional) - Full runtime dump ID. Use only when already known; prefer datetime + user otherwise.
665
+ - `user` (string, optional) - SAP username whose dump to read. Required when using datetime lookup.
664
666
  - `view` (string, optional (default: default)) - Dump view mode: default payload, summary section, or formatted long text.
665
667
 
666
668
  ---
@@ -683,14 +685,16 @@ Generated from code in `src/handlers/**` (not from docs).
683
685
 
684
686
  <a id="runtimelistdumps-read-only-system"></a>
685
687
  #### RuntimeListDumps (Read-Only / System)
686
- **Description:** [runtime] List ABAP runtime dumps with optional user filter and paging. Returns parsed JSON payload.
688
+ **Description:** [runtime] List ABAP runtime dumps with optional user filter and paging. Returns structured list with dump_id, datetime, error type, title, and user.
687
689
 
688
690
  **Source:** `src/handlers/system/readonly/handleRuntimeListDumps.ts`
689
691
 
690
692
  **Parameters:**
693
+ - `from` (string, optional) - Start of time range in YYYYMMDDHHMMSS format (system local time). Narrows results to dumps on or after this datetime.
691
694
  - `inlinecount` (string, optional) - Include total count metadata.
692
695
  - `orderby` (string, optional) - ADT order by expression.
693
696
  - `skip` (number, optional) - Number of records to skip.
697
+ - `to` (string, optional) - End of time range in YYYYMMDDHHMMSS format (system local time). Narrows results to dumps on or before this datetime.
694
698
  - `top` (number, optional) - Maximum number of records to return.
695
699
  - `user` (string, optional) - Optional username filter. If omitted, dumps for all users are returned.
696
700
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mcp-abap-adt/core",
3
3
  "mcpName": "io.github.fr0ster/mcp-abap-adt",
4
- "version": "4.7.0",
4
+ "version": "4.8.1",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {
@@ -136,7 +136,7 @@
136
136
  "yaml": "^2.8.1"
137
137
  },
138
138
  "dependencies": {
139
- "@mcp-abap-adt/adt-clients": "^3.10.2",
139
+ "@mcp-abap-adt/adt-clients": "^3.14.1",
140
140
  "@mcp-abap-adt/auth-broker": "^1.0.5",
141
141
  "@mcp-abap-adt/auth-providers": "^1.0.5",
142
142
  "@mcp-abap-adt/auth-stores": "^1.0.4",