@mcp-abap-adt/core 4.1.1 → 4.2.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.
Files changed (121) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/handlers/behavior_definition/low/handleCreateBehaviorDefinition.d.ts.map +1 -1
  3. package/dist/handlers/behavior_definition/low/handleCreateBehaviorDefinition.js +3 -0
  4. package/dist/handlers/behavior_definition/low/handleCreateBehaviorDefinition.js.map +1 -1
  5. package/dist/handlers/behavior_definition/low/handleUpdateBehaviorDefinition.d.ts +5 -0
  6. package/dist/handlers/behavior_definition/low/handleUpdateBehaviorDefinition.d.ts.map +1 -1
  7. package/dist/handlers/behavior_definition/low/handleUpdateBehaviorDefinition.js +6 -1
  8. package/dist/handlers/behavior_definition/low/handleUpdateBehaviorDefinition.js.map +1 -1
  9. package/dist/handlers/behavior_definition/readonly/handleReadBehaviorDefinition.d.ts +33 -0
  10. package/dist/handlers/behavior_definition/readonly/handleReadBehaviorDefinition.d.ts.map +1 -0
  11. package/dist/handlers/behavior_definition/readonly/handleReadBehaviorDefinition.js +87 -0
  12. package/dist/handlers/behavior_definition/readonly/handleReadBehaviorDefinition.js.map +1 -0
  13. package/dist/handlers/behavior_implementation/readonly/handleReadBehaviorImplementation.d.ts +33 -0
  14. package/dist/handlers/behavior_implementation/readonly/handleReadBehaviorImplementation.d.ts.map +1 -0
  15. package/dist/handlers/behavior_implementation/readonly/handleReadBehaviorImplementation.js +87 -0
  16. package/dist/handlers/behavior_implementation/readonly/handleReadBehaviorImplementation.js.map +1 -0
  17. package/dist/handlers/class/readonly/handleReadClass.d.ts +33 -0
  18. package/dist/handlers/class/readonly/handleReadClass.d.ts.map +1 -0
  19. package/dist/handlers/class/readonly/handleReadClass.js +85 -0
  20. package/dist/handlers/class/readonly/handleReadClass.js.map +1 -0
  21. package/dist/handlers/data_element/high/handleUpdateDataElement.d.ts.map +1 -1
  22. package/dist/handlers/data_element/high/handleUpdateDataElement.js +1 -0
  23. package/dist/handlers/data_element/high/handleUpdateDataElement.js.map +1 -1
  24. package/dist/handlers/data_element/readonly/handleReadDataElement.d.ts +33 -0
  25. package/dist/handlers/data_element/readonly/handleReadDataElement.d.ts.map +1 -0
  26. package/dist/handlers/data_element/readonly/handleReadDataElement.js +85 -0
  27. package/dist/handlers/data_element/readonly/handleReadDataElement.js.map +1 -0
  28. package/dist/handlers/ddlx/high/handleUpdateMetadataExtension.d.ts +4 -0
  29. package/dist/handlers/ddlx/high/handleUpdateMetadataExtension.d.ts.map +1 -1
  30. package/dist/handlers/ddlx/high/handleUpdateMetadataExtension.js +5 -0
  31. package/dist/handlers/ddlx/high/handleUpdateMetadataExtension.js.map +1 -1
  32. package/dist/handlers/domain/readonly/handleReadDomain.d.ts +33 -0
  33. package/dist/handlers/domain/readonly/handleReadDomain.d.ts.map +1 -0
  34. package/dist/handlers/domain/readonly/handleReadDomain.js +85 -0
  35. package/dist/handlers/domain/readonly/handleReadDomain.js.map +1 -0
  36. package/dist/handlers/function/readonly/handleGetFunction.d.ts +1 -7
  37. package/dist/handlers/function/readonly/handleGetFunction.d.ts.map +1 -1
  38. package/dist/handlers/function/readonly/handleGetFunction.js +7 -36
  39. package/dist/handlers/function/readonly/handleGetFunction.js.map +1 -1
  40. package/dist/handlers/function_group/readonly/handleReadFunctionGroup.d.ts +33 -0
  41. package/dist/handlers/function_group/readonly/handleReadFunctionGroup.d.ts.map +1 -0
  42. package/dist/handlers/function_group/readonly/handleReadFunctionGroup.js +85 -0
  43. package/dist/handlers/function_group/readonly/handleReadFunctionGroup.js.map +1 -0
  44. package/dist/handlers/function_module/high/handleGetFunctionModule.d.ts.map +1 -1
  45. package/dist/handlers/function_module/high/handleGetFunctionModule.js +13 -3
  46. package/dist/handlers/function_module/high/handleGetFunctionModule.js.map +1 -1
  47. package/dist/handlers/function_module/readonly/handleReadFunctionModule.d.ts +38 -0
  48. package/dist/handlers/function_module/readonly/handleReadFunctionModule.d.ts.map +1 -0
  49. package/dist/handlers/function_module/readonly/handleReadFunctionModule.js +94 -0
  50. package/dist/handlers/function_module/readonly/handleReadFunctionModule.js.map +1 -0
  51. package/dist/handlers/interface/readonly/handleReadInterface.d.ts +33 -0
  52. package/dist/handlers/interface/readonly/handleReadInterface.d.ts.map +1 -0
  53. package/dist/handlers/interface/readonly/handleReadInterface.js +85 -0
  54. package/dist/handlers/interface/readonly/handleReadInterface.js.map +1 -0
  55. package/dist/handlers/metadata_extension/readonly/handleReadMetadataExtension.d.ts +33 -0
  56. package/dist/handlers/metadata_extension/readonly/handleReadMetadataExtension.d.ts.map +1 -0
  57. package/dist/handlers/metadata_extension/readonly/handleReadMetadataExtension.js +87 -0
  58. package/dist/handlers/metadata_extension/readonly/handleReadMetadataExtension.js.map +1 -0
  59. package/dist/handlers/package/high/handleCreatePackage.d.ts +2 -0
  60. package/dist/handlers/package/high/handleCreatePackage.d.ts.map +1 -1
  61. package/dist/handlers/package/high/handleCreatePackage.js +7 -0
  62. package/dist/handlers/package/high/handleCreatePackage.js.map +1 -1
  63. package/dist/handlers/package/low/handleCreatePackage.d.ts +5 -0
  64. package/dist/handlers/package/low/handleCreatePackage.d.ts.map +1 -1
  65. package/dist/handlers/package/low/handleCreatePackage.js +8 -1
  66. package/dist/handlers/package/low/handleCreatePackage.js.map +1 -1
  67. package/dist/handlers/package/readonly/handleReadPackage.d.ts +33 -0
  68. package/dist/handlers/package/readonly/handleReadPackage.d.ts.map +1 -0
  69. package/dist/handlers/package/readonly/handleReadPackage.js +85 -0
  70. package/dist/handlers/package/readonly/handleReadPackage.js.map +1 -0
  71. package/dist/handlers/program/readonly/handleReadProgram.d.ts +33 -0
  72. package/dist/handlers/program/readonly/handleReadProgram.d.ts.map +1 -0
  73. package/dist/handlers/program/readonly/handleReadProgram.js +85 -0
  74. package/dist/handlers/program/readonly/handleReadProgram.js.map +1 -0
  75. package/dist/handlers/service_binding/readonly/handleReadServiceBinding.d.ts +26 -0
  76. package/dist/handlers/service_binding/readonly/handleReadServiceBinding.d.ts.map +1 -0
  77. package/dist/handlers/service_binding/readonly/handleReadServiceBinding.js +78 -0
  78. package/dist/handlers/service_binding/readonly/handleReadServiceBinding.js.map +1 -0
  79. package/dist/handlers/service_definition/readonly/handleReadServiceDefinition.d.ts +33 -0
  80. package/dist/handlers/service_definition/readonly/handleReadServiceDefinition.d.ts.map +1 -0
  81. package/dist/handlers/service_definition/readonly/handleReadServiceDefinition.js +85 -0
  82. package/dist/handlers/service_definition/readonly/handleReadServiceDefinition.js.map +1 -0
  83. package/dist/handlers/structure/readonly/handleReadStructure.d.ts +33 -0
  84. package/dist/handlers/structure/readonly/handleReadStructure.d.ts.map +1 -0
  85. package/dist/handlers/structure/readonly/handleReadStructure.js +85 -0
  86. package/dist/handlers/structure/readonly/handleReadStructure.js.map +1 -0
  87. package/dist/handlers/system/readonly/handleGetAbapSystemSymbols.d.ts.map +1 -1
  88. package/dist/handlers/system/readonly/handleGetAbapSystemSymbols.js +4 -3
  89. package/dist/handlers/system/readonly/handleGetAbapSystemSymbols.js.map +1 -1
  90. package/dist/handlers/table/readonly/handleReadTable.d.ts +33 -0
  91. package/dist/handlers/table/readonly/handleReadTable.d.ts.map +1 -0
  92. package/dist/handlers/table/readonly/handleReadTable.js +85 -0
  93. package/dist/handlers/table/readonly/handleReadTable.js.map +1 -0
  94. package/dist/handlers/view/readonly/handleReadView.d.ts +33 -0
  95. package/dist/handlers/view/readonly/handleReadView.d.ts.map +1 -0
  96. package/dist/handlers/view/readonly/handleReadView.js +85 -0
  97. package/dist/handlers/view/readonly/handleReadView.js.map +1 -0
  98. package/dist/lib/auth/brokerFactory.d.ts.map +1 -1
  99. package/dist/lib/auth/brokerFactory.js +6 -2
  100. package/dist/lib/auth/brokerFactory.js.map +1 -1
  101. package/dist/lib/handlers/groups/ReadOnlyHandlersGroup.d.ts.map +1 -1
  102. package/dist/lib/handlers/groups/ReadOnlyHandlersGroup.js +82 -7
  103. package/dist/lib/handlers/groups/ReadOnlyHandlersGroup.js.map +1 -1
  104. package/dist/lib/systemContext.d.ts +1 -0
  105. package/dist/lib/systemContext.d.ts.map +1 -1
  106. package/dist/lib/systemContext.js +1 -0
  107. package/dist/lib/systemContext.js.map +1 -1
  108. package/dist/lib/utils.js +1 -1
  109. package/dist/server/BaseMcpServer.d.ts.map +1 -1
  110. package/dist/server/BaseMcpServer.js +5 -1
  111. package/dist/server/BaseMcpServer.js.map +1 -1
  112. package/dist/server/launcher.js +3 -2
  113. package/dist/server/launcher.js.map +1 -1
  114. package/docs/development/roadmaps/TRANSPORT_CRUD_ISSUE_11.md +89 -0
  115. package/docs/user-guide/AVAILABLE_TOOLS.md +259 -12
  116. package/docs/user-guide/AVAILABLE_TOOLS_COMPACT.md +1 -1
  117. package/docs/user-guide/AVAILABLE_TOOLS_HIGH.md +2 -1
  118. package/docs/user-guide/AVAILABLE_TOOLS_LEGACY.md +120 -12
  119. package/docs/user-guide/AVAILABLE_TOOLS_LOW.md +3 -1
  120. package/docs/user-guide/AVAILABLE_TOOLS_READONLY.md +255 -11
  121. package/package.json +2 -2
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TOOL_DEFINITION = void 0;
4
+ exports.handleReadPackage = handleReadPackage;
5
+ const clients_1 = require("../../../lib/clients");
6
+ const utils_1 = require("../../../lib/utils");
7
+ exports.TOOL_DEFINITION = {
8
+ name: 'ReadPackage',
9
+ available_in: ['onprem', 'cloud', 'legacy'],
10
+ description: '[read-only] Read ABAP package definition and metadata (super-package, responsible, description, etc.).',
11
+ inputSchema: {
12
+ type: 'object',
13
+ properties: {
14
+ package_name: {
15
+ type: 'string',
16
+ description: 'Package name (e.g., Z_MY_PACKAGE).',
17
+ },
18
+ version: {
19
+ type: 'string',
20
+ enum: ['active', 'inactive'],
21
+ description: 'Version to read: "active" (default) or "inactive".',
22
+ default: 'active',
23
+ },
24
+ },
25
+ required: ['package_name'],
26
+ },
27
+ };
28
+ async function handleReadPackage(context, args) {
29
+ const { connection, logger } = context;
30
+ try {
31
+ const { package_name, version = 'active' } = args;
32
+ if (!package_name)
33
+ return (0, utils_1.return_error)(new Error('package_name is required'));
34
+ const client = (0, clients_1.createAdtClient)(connection, logger);
35
+ const packageName = package_name.toUpperCase();
36
+ const obj = client.getPackage();
37
+ let source_code = null;
38
+ try {
39
+ const readResult = await obj.read({ packageName }, version);
40
+ if (readResult?.readResult?.data) {
41
+ source_code =
42
+ typeof readResult.readResult.data === 'string'
43
+ ? readResult.readResult.data
44
+ : safeStringify(readResult.readResult.data);
45
+ }
46
+ }
47
+ catch (e) {
48
+ logger?.warn(`Could not read source for ${packageName}: ${e?.message}`);
49
+ }
50
+ let metadata = null;
51
+ try {
52
+ const metaResult = await obj.readMetadata({ packageName });
53
+ if (metaResult?.metadataResult?.data) {
54
+ metadata =
55
+ typeof metaResult.metadataResult.data === 'string'
56
+ ? metaResult.metadataResult.data
57
+ : safeStringify(metaResult.metadataResult.data);
58
+ }
59
+ }
60
+ catch (e) {
61
+ logger?.warn(`Could not read metadata for ${packageName}: ${e?.message}`);
62
+ }
63
+ return (0, utils_1.return_response)({
64
+ data: JSON.stringify({
65
+ success: true,
66
+ package_name: packageName,
67
+ version,
68
+ source_code,
69
+ metadata,
70
+ }, null, 2),
71
+ });
72
+ }
73
+ catch (error) {
74
+ return (0, utils_1.return_error)(error);
75
+ }
76
+ }
77
+ function safeStringify(data) {
78
+ try {
79
+ return JSON.stringify(data);
80
+ }
81
+ catch {
82
+ return String(data);
83
+ }
84
+ }
85
+ //# sourceMappingURL=handleReadPackage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleReadPackage.js","sourceRoot":"","sources":["../../../../src/handlers/package/readonly/handleReadPackage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { HandlerContext } from '../../../lib/handlers/interfaces';
2
+ export declare const TOOL_DEFINITION: {
3
+ readonly name: "ReadProgram";
4
+ readonly available_in: readonly ["onprem", "legacy"];
5
+ readonly description: "[read-only] Read ABAP program source code and metadata (package, responsible, description, etc.).";
6
+ readonly inputSchema: {
7
+ readonly type: "object";
8
+ readonly properties: {
9
+ readonly program_name: {
10
+ readonly type: "string";
11
+ readonly description: "Program name (e.g., Z_MY_PROGRAM).";
12
+ };
13
+ readonly version: {
14
+ readonly type: "string";
15
+ readonly enum: readonly ["active", "inactive"];
16
+ readonly description: "Version to read: \"active\" (default) or \"inactive\".";
17
+ readonly default: "active";
18
+ };
19
+ };
20
+ readonly required: readonly ["program_name"];
21
+ };
22
+ };
23
+ export declare function handleReadProgram(context: HandlerContext, args: {
24
+ program_name: string;
25
+ version?: 'active' | 'inactive';
26
+ }): Promise<{
27
+ isError: boolean;
28
+ content: {
29
+ type: string;
30
+ text: any;
31
+ }[];
32
+ }>;
33
+ //# sourceMappingURL=handleReadProgram.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleReadProgram.d.ts","sourceRoot":"","sources":["../../../../src/handlers/program/readonly/handleReadProgram.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAOvE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;CAqBlB,CAAC;AAEX,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAA;CAAE;;;;;;GAyDhE"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TOOL_DEFINITION = void 0;
4
+ exports.handleReadProgram = handleReadProgram;
5
+ const clients_1 = require("../../../lib/clients");
6
+ const utils_1 = require("../../../lib/utils");
7
+ exports.TOOL_DEFINITION = {
8
+ name: 'ReadProgram',
9
+ available_in: ['onprem', 'legacy'],
10
+ description: '[read-only] Read ABAP program source code and metadata (package, responsible, description, etc.).',
11
+ inputSchema: {
12
+ type: 'object',
13
+ properties: {
14
+ program_name: {
15
+ type: 'string',
16
+ description: 'Program name (e.g., Z_MY_PROGRAM).',
17
+ },
18
+ version: {
19
+ type: 'string',
20
+ enum: ['active', 'inactive'],
21
+ description: 'Version to read: "active" (default) or "inactive".',
22
+ default: 'active',
23
+ },
24
+ },
25
+ required: ['program_name'],
26
+ },
27
+ };
28
+ async function handleReadProgram(context, args) {
29
+ const { connection, logger } = context;
30
+ try {
31
+ const { program_name, version = 'active' } = args;
32
+ if (!program_name)
33
+ return (0, utils_1.return_error)(new Error('program_name is required'));
34
+ const client = (0, clients_1.createAdtClient)(connection, logger);
35
+ const programName = program_name.toUpperCase();
36
+ const obj = client.getProgram();
37
+ let source_code = null;
38
+ try {
39
+ const readResult = await obj.read({ programName }, version);
40
+ if (readResult?.readResult?.data) {
41
+ source_code =
42
+ typeof readResult.readResult.data === 'string'
43
+ ? readResult.readResult.data
44
+ : safeStringify(readResult.readResult.data);
45
+ }
46
+ }
47
+ catch (e) {
48
+ logger?.warn(`Could not read source for ${programName}: ${e?.message}`);
49
+ }
50
+ let metadata = null;
51
+ try {
52
+ const metaResult = await obj.readMetadata({ programName });
53
+ if (metaResult?.metadataResult?.data) {
54
+ metadata =
55
+ typeof metaResult.metadataResult.data === 'string'
56
+ ? metaResult.metadataResult.data
57
+ : safeStringify(metaResult.metadataResult.data);
58
+ }
59
+ }
60
+ catch (e) {
61
+ logger?.warn(`Could not read metadata for ${programName}: ${e?.message}`);
62
+ }
63
+ return (0, utils_1.return_response)({
64
+ data: JSON.stringify({
65
+ success: true,
66
+ program_name: programName,
67
+ version,
68
+ source_code,
69
+ metadata,
70
+ }, null, 2),
71
+ });
72
+ }
73
+ catch (error) {
74
+ return (0, utils_1.return_error)(error);
75
+ }
76
+ }
77
+ function safeStringify(data) {
78
+ try {
79
+ return JSON.stringify(data);
80
+ }
81
+ catch {
82
+ return String(data);
83
+ }
84
+ }
85
+ //# sourceMappingURL=handleReadProgram.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleReadProgram.js","sourceRoot":"","sources":["../../../../src/handlers/program/readonly/handleReadProgram.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { HandlerContext } from '../../../lib/handlers/interfaces';
2
+ export declare const TOOL_DEFINITION: {
3
+ readonly name: "ReadServiceBinding";
4
+ readonly available_in: readonly ["onprem", "cloud"];
5
+ readonly description: "[read-only] Read ABAP service binding source/payload and metadata (package, responsible, description, etc.).";
6
+ readonly inputSchema: {
7
+ readonly type: "object";
8
+ readonly properties: {
9
+ readonly service_binding_name: {
10
+ readonly type: "string";
11
+ readonly description: "Service binding name (e.g., ZUI_MY_BINDING).";
12
+ };
13
+ };
14
+ readonly required: readonly ["service_binding_name"];
15
+ };
16
+ };
17
+ export declare function handleReadServiceBinding(context: HandlerContext, args: {
18
+ service_binding_name: string;
19
+ }): Promise<{
20
+ isError: boolean;
21
+ content: {
22
+ type: string;
23
+ text: any;
24
+ }[];
25
+ }>;
26
+ //# sourceMappingURL=handleReadServiceBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleReadServiceBinding.d.ts","sourceRoot":"","sources":["../../../../src/handlers/service_binding/readonly/handleReadServiceBinding.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAOvE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;CAelB,CAAC;AAEX,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE;IAAE,oBAAoB,EAAE,MAAM,CAAA;CAAE;;;;;;GAqDvC"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TOOL_DEFINITION = void 0;
4
+ exports.handleReadServiceBinding = handleReadServiceBinding;
5
+ const clients_1 = require("../../../lib/clients");
6
+ const utils_1 = require("../../../lib/utils");
7
+ exports.TOOL_DEFINITION = {
8
+ name: 'ReadServiceBinding',
9
+ available_in: ['onprem', 'cloud'],
10
+ description: '[read-only] Read ABAP service binding source/payload and metadata (package, responsible, description, etc.).',
11
+ inputSchema: {
12
+ type: 'object',
13
+ properties: {
14
+ service_binding_name: {
15
+ type: 'string',
16
+ description: 'Service binding name (e.g., ZUI_MY_BINDING).',
17
+ },
18
+ },
19
+ required: ['service_binding_name'],
20
+ },
21
+ };
22
+ async function handleReadServiceBinding(context, args) {
23
+ const { connection, logger } = context;
24
+ try {
25
+ const { service_binding_name } = args;
26
+ if (!service_binding_name)
27
+ return (0, utils_1.return_error)(new Error('service_binding_name is required'));
28
+ const client = (0, clients_1.createAdtClient)(connection, logger);
29
+ const bindingName = service_binding_name.trim().toUpperCase();
30
+ const obj = client.getServiceBinding();
31
+ let source_code = null;
32
+ try {
33
+ const readResult = await obj.read({ bindingName });
34
+ if (readResult?.readResult?.data) {
35
+ source_code =
36
+ typeof readResult.readResult.data === 'string'
37
+ ? readResult.readResult.data
38
+ : safeStringify(readResult.readResult.data);
39
+ }
40
+ }
41
+ catch (e) {
42
+ logger?.warn(`Could not read source for ${bindingName}: ${e?.message}`);
43
+ }
44
+ let metadata = null;
45
+ try {
46
+ const metaResult = await obj.readMetadata({ bindingName });
47
+ if (metaResult?.metadataResult?.data) {
48
+ metadata =
49
+ typeof metaResult.metadataResult.data === 'string'
50
+ ? metaResult.metadataResult.data
51
+ : safeStringify(metaResult.metadataResult.data);
52
+ }
53
+ }
54
+ catch (e) {
55
+ logger?.warn(`Could not read metadata for ${bindingName}: ${e?.message}`);
56
+ }
57
+ return (0, utils_1.return_response)({
58
+ data: JSON.stringify({
59
+ success: true,
60
+ service_binding_name: bindingName,
61
+ source_code,
62
+ metadata,
63
+ }, null, 2),
64
+ });
65
+ }
66
+ catch (error) {
67
+ return (0, utils_1.return_error)(error);
68
+ }
69
+ }
70
+ function safeStringify(data) {
71
+ try {
72
+ return JSON.stringify(data);
73
+ }
74
+ catch {
75
+ return String(data);
76
+ }
77
+ }
78
+ //# sourceMappingURL=handleReadServiceBinding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleReadServiceBinding.js","sourceRoot":"","sources":["../../../../src/handlers/service_binding/readonly/handleReadServiceBinding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { HandlerContext } from '../../../lib/handlers/interfaces';
2
+ export declare const TOOL_DEFINITION: {
3
+ readonly name: "ReadServiceDefinition";
4
+ readonly available_in: readonly ["onprem", "cloud"];
5
+ readonly description: "[read-only] Read ABAP service definition source code and metadata (package, responsible, description, etc.).";
6
+ readonly inputSchema: {
7
+ readonly type: "object";
8
+ readonly properties: {
9
+ readonly service_definition_name: {
10
+ readonly type: "string";
11
+ readonly description: "Service definition name (e.g., Z_MY_SRVD).";
12
+ };
13
+ readonly version: {
14
+ readonly type: "string";
15
+ readonly enum: readonly ["active", "inactive"];
16
+ readonly description: "Version to read: \"active\" (default) or \"inactive\".";
17
+ readonly default: "active";
18
+ };
19
+ };
20
+ readonly required: readonly ["service_definition_name"];
21
+ };
22
+ };
23
+ export declare function handleReadServiceDefinition(context: HandlerContext, args: {
24
+ service_definition_name: string;
25
+ version?: 'active' | 'inactive';
26
+ }): Promise<{
27
+ isError: boolean;
28
+ content: {
29
+ type: string;
30
+ text: any;
31
+ }[];
32
+ }>;
33
+ //# sourceMappingURL=handleReadServiceDefinition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleReadServiceDefinition.d.ts","sourceRoot":"","sources":["../../../../src/handlers/service_definition/readonly/handleReadServiceDefinition.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAOvE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;CAqBlB,CAAC;AAEX,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE;IACJ,uBAAuB,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CACjC;;;;;;GA6DF"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TOOL_DEFINITION = void 0;
4
+ exports.handleReadServiceDefinition = handleReadServiceDefinition;
5
+ const clients_1 = require("../../../lib/clients");
6
+ const utils_1 = require("../../../lib/utils");
7
+ exports.TOOL_DEFINITION = {
8
+ name: 'ReadServiceDefinition',
9
+ available_in: ['onprem', 'cloud'],
10
+ description: '[read-only] Read ABAP service definition source code and metadata (package, responsible, description, etc.).',
11
+ inputSchema: {
12
+ type: 'object',
13
+ properties: {
14
+ service_definition_name: {
15
+ type: 'string',
16
+ description: 'Service definition name (e.g., Z_MY_SRVD).',
17
+ },
18
+ version: {
19
+ type: 'string',
20
+ enum: ['active', 'inactive'],
21
+ description: 'Version to read: "active" (default) or "inactive".',
22
+ default: 'active',
23
+ },
24
+ },
25
+ required: ['service_definition_name'],
26
+ },
27
+ };
28
+ async function handleReadServiceDefinition(context, args) {
29
+ const { connection, logger } = context;
30
+ try {
31
+ const { service_definition_name, version = 'active' } = args;
32
+ if (!service_definition_name)
33
+ return (0, utils_1.return_error)(new Error('service_definition_name is required'));
34
+ const client = (0, clients_1.createAdtClient)(connection, logger);
35
+ const serviceDefinitionName = service_definition_name.toUpperCase();
36
+ const obj = client.getServiceDefinition();
37
+ let source_code = null;
38
+ try {
39
+ const readResult = await obj.read({ serviceDefinitionName }, version);
40
+ if (readResult?.readResult?.data) {
41
+ source_code =
42
+ typeof readResult.readResult.data === 'string'
43
+ ? readResult.readResult.data
44
+ : safeStringify(readResult.readResult.data);
45
+ }
46
+ }
47
+ catch (e) {
48
+ logger?.warn(`Could not read source for ${serviceDefinitionName}: ${e?.message}`);
49
+ }
50
+ let metadata = null;
51
+ try {
52
+ const metaResult = await obj.readMetadata({ serviceDefinitionName });
53
+ if (metaResult?.metadataResult?.data) {
54
+ metadata =
55
+ typeof metaResult.metadataResult.data === 'string'
56
+ ? metaResult.metadataResult.data
57
+ : safeStringify(metaResult.metadataResult.data);
58
+ }
59
+ }
60
+ catch (e) {
61
+ logger?.warn(`Could not read metadata for ${serviceDefinitionName}: ${e?.message}`);
62
+ }
63
+ return (0, utils_1.return_response)({
64
+ data: JSON.stringify({
65
+ success: true,
66
+ service_definition_name: serviceDefinitionName,
67
+ version,
68
+ source_code,
69
+ metadata,
70
+ }, null, 2),
71
+ });
72
+ }
73
+ catch (error) {
74
+ return (0, utils_1.return_error)(error);
75
+ }
76
+ }
77
+ function safeStringify(data) {
78
+ try {
79
+ return JSON.stringify(data);
80
+ }
81
+ catch {
82
+ return String(data);
83
+ }
84
+ }
85
+ //# sourceMappingURL=handleReadServiceDefinition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleReadServiceDefinition.js","sourceRoot":"","sources":["../../../../src/handlers/service_definition/readonly/handleReadServiceDefinition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { HandlerContext } from '../../../lib/handlers/interfaces';
2
+ export declare const TOOL_DEFINITION: {
3
+ readonly name: "ReadStructure";
4
+ readonly available_in: readonly ["onprem", "cloud"];
5
+ readonly description: "[read-only] Read ABAP structure definition and metadata (package, responsible, description, etc.).";
6
+ readonly inputSchema: {
7
+ readonly type: "object";
8
+ readonly properties: {
9
+ readonly structure_name: {
10
+ readonly type: "string";
11
+ readonly description: "Structure name (e.g., Z_MY_STRUCTURE).";
12
+ };
13
+ readonly version: {
14
+ readonly type: "string";
15
+ readonly enum: readonly ["active", "inactive"];
16
+ readonly description: "Version to read: \"active\" (default) or \"inactive\".";
17
+ readonly default: "active";
18
+ };
19
+ };
20
+ readonly required: readonly ["structure_name"];
21
+ };
22
+ };
23
+ export declare function handleReadStructure(context: HandlerContext, args: {
24
+ structure_name: string;
25
+ version?: 'active' | 'inactive';
26
+ }): Promise<{
27
+ isError: boolean;
28
+ content: {
29
+ type: string;
30
+ text: any;
31
+ }[];
32
+ }>;
33
+ //# sourceMappingURL=handleReadStructure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleReadStructure.d.ts","sourceRoot":"","sources":["../../../../src/handlers/structure/readonly/handleReadStructure.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAOvE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;CAqBlB,CAAC;AAEX,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAA;CAAE;;;;;;GA2DlE"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TOOL_DEFINITION = void 0;
4
+ exports.handleReadStructure = handleReadStructure;
5
+ const clients_1 = require("../../../lib/clients");
6
+ const utils_1 = require("../../../lib/utils");
7
+ exports.TOOL_DEFINITION = {
8
+ name: 'ReadStructure',
9
+ available_in: ['onprem', 'cloud'],
10
+ description: '[read-only] Read ABAP structure definition and metadata (package, responsible, description, etc.).',
11
+ inputSchema: {
12
+ type: 'object',
13
+ properties: {
14
+ structure_name: {
15
+ type: 'string',
16
+ description: 'Structure name (e.g., Z_MY_STRUCTURE).',
17
+ },
18
+ version: {
19
+ type: 'string',
20
+ enum: ['active', 'inactive'],
21
+ description: 'Version to read: "active" (default) or "inactive".',
22
+ default: 'active',
23
+ },
24
+ },
25
+ required: ['structure_name'],
26
+ },
27
+ };
28
+ async function handleReadStructure(context, args) {
29
+ const { connection, logger } = context;
30
+ try {
31
+ const { structure_name, version = 'active' } = args;
32
+ if (!structure_name)
33
+ return (0, utils_1.return_error)(new Error('structure_name is required'));
34
+ const client = (0, clients_1.createAdtClient)(connection, logger);
35
+ const structureName = structure_name.toUpperCase();
36
+ const obj = client.getStructure();
37
+ let source_code = null;
38
+ try {
39
+ const readResult = await obj.read({ structureName }, version);
40
+ if (readResult?.readResult?.data) {
41
+ source_code =
42
+ typeof readResult.readResult.data === 'string'
43
+ ? readResult.readResult.data
44
+ : safeStringify(readResult.readResult.data);
45
+ }
46
+ }
47
+ catch (e) {
48
+ logger?.warn(`Could not read source for ${structureName}: ${e?.message}`);
49
+ }
50
+ let metadata = null;
51
+ try {
52
+ const metaResult = await obj.readMetadata({ structureName });
53
+ if (metaResult?.metadataResult?.data) {
54
+ metadata =
55
+ typeof metaResult.metadataResult.data === 'string'
56
+ ? metaResult.metadataResult.data
57
+ : safeStringify(metaResult.metadataResult.data);
58
+ }
59
+ }
60
+ catch (e) {
61
+ logger?.warn(`Could not read metadata for ${structureName}: ${e?.message}`);
62
+ }
63
+ return (0, utils_1.return_response)({
64
+ data: JSON.stringify({
65
+ success: true,
66
+ structure_name: structureName,
67
+ version,
68
+ source_code,
69
+ metadata,
70
+ }, null, 2),
71
+ });
72
+ }
73
+ catch (error) {
74
+ return (0, utils_1.return_error)(error);
75
+ }
76
+ }
77
+ function safeStringify(data) {
78
+ try {
79
+ return JSON.stringify(data);
80
+ }
81
+ catch {
82
+ return String(data);
83
+ }
84
+ }
85
+ //# sourceMappingURL=handleReadStructure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleReadStructure.js","sourceRoot":"","sources":["../../../../src/handlers/structure/readonly/handleReadStructure.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"handleGetAbapSystemSymbols.d.ts","sourceRoot":"","sources":["../../../../src/handlers/system/readonly/handleGetAbapSystemSymbols.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAMvE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;CAmBlB,CAAC;AAEX,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EACA,OAAO,GACP,QAAQ,GACR,UAAU,GACV,UAAU,GACV,UAAU,GACV,MAAM,GACN,WAAW,GACX,MAAM,GACN,SAAS,GACT,QAAQ,GACR,SAAS,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,CAAC;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,cAAc;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,uBAAuB;IAC/B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,qBAAqB,EAAE;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAED,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;CACxC;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;IACpE,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA6nBD,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,GAAG;;;;;;;;;;;;GA6DV"}
1
+ {"version":3,"file":"handleGetAbapSystemSymbols.d.ts","sourceRoot":"","sources":["../../../../src/handlers/system/readonly/handleGetAbapSystemSymbols.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAMvE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;CAmBlB,CAAC;AAEX,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EACA,OAAO,GACP,QAAQ,GACR,UAAU,GACV,UAAU,GACV,UAAU,GACV,MAAM,GACN,WAAW,GACX,MAAM,GACN,SAAS,GACT,QAAQ,GACR,SAAS,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,CAAC;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,cAAc;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,uBAAuB;IAC/B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,qBAAqB,EAAE;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAED,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;CACxC;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;IACpE,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA8nBD,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,GAAG;;;;;;;;;;;;GA6DV"}
@@ -5,7 +5,7 @@ exports.handleGetAbapSystemSymbols = handleGetAbapSystemSymbols;
5
5
  const utils_1 = require("../../../lib/utils");
6
6
  const writeResultToFile_1 = require("../../../lib/writeResultToFile");
7
7
  const handleGetClass_1 = require("../../class/high/handleGetClass");
8
- const handleGetFunction_1 = require("../../function/readonly/handleGetFunction");
8
+ const handleGetFunctionModule_1 = require("../../function_module/high/handleGetFunctionModule");
9
9
  const handleGetInterface_1 = require("../../interface/high/handleGetInterface");
10
10
  exports.TOOL_DEFINITION = {
11
11
  name: 'GetAbapSystemSymbols',
@@ -455,8 +455,9 @@ class AbapSystemSymbolResolver {
455
455
  }
456
456
  async resolveFunctionSymbol(context, symbol) {
457
457
  try {
458
- const functionInfo = await (0, handleGetFunction_1.handleGetFunction)(context, {
459
- function_name: symbol.name,
458
+ const functionInfo = await (0, handleGetFunctionModule_1.handleGetFunctionModule)(context, {
459
+ function_module_name: symbol.name,
460
+ function_group_name: '',
460
461
  });
461
462
  if (!functionInfo ||
462
463
  functionInfo.isError ||