arc-1 0.6.0 → 0.6.2
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/README.md +25 -26
- package/dist/adt/btp.d.ts +19 -12
- package/dist/adt/btp.d.ts.map +1 -1
- package/dist/adt/btp.js +48 -35
- package/dist/adt/btp.js.map +1 -1
- package/dist/adt/client.d.ts +20 -2
- package/dist/adt/client.d.ts.map +1 -1
- package/dist/adt/client.js +65 -2
- package/dist/adt/client.js.map +1 -1
- package/dist/adt/codeintel.d.ts.map +1 -1
- package/dist/adt/codeintel.js +1 -10
- package/dist/adt/codeintel.js.map +1 -1
- package/dist/adt/config.d.ts +2 -0
- package/dist/adt/config.d.ts.map +1 -1
- package/dist/adt/config.js +2 -0
- package/dist/adt/config.js.map +1 -1
- package/dist/adt/crud.d.ts +7 -0
- package/dist/adt/crud.d.ts.map +1 -1
- package/dist/adt/crud.js +35 -3
- package/dist/adt/crud.js.map +1 -1
- package/dist/adt/ddic-xml.d.ts +78 -0
- package/dist/adt/ddic-xml.d.ts.map +1 -0
- package/dist/adt/ddic-xml.js +203 -0
- package/dist/adt/ddic-xml.js.map +1 -0
- package/dist/adt/devtools.d.ts +30 -7
- package/dist/adt/devtools.d.ts.map +1 -1
- package/dist/adt/devtools.js +215 -76
- package/dist/adt/devtools.js.map +1 -1
- package/dist/adt/diagnostics.d.ts.map +1 -1
- package/dist/adt/diagnostics.js +105 -184
- package/dist/adt/diagnostics.js.map +1 -1
- package/dist/adt/errors.d.ts +12 -0
- package/dist/adt/errors.d.ts.map +1 -1
- package/dist/adt/errors.js +42 -0
- package/dist/adt/errors.js.map +1 -1
- package/dist/adt/features.d.ts.map +1 -1
- package/dist/adt/features.js +23 -3
- package/dist/adt/features.js.map +1 -1
- package/dist/adt/flp.d.ts +43 -0
- package/dist/adt/flp.d.ts.map +1 -0
- package/dist/adt/flp.js +213 -0
- package/dist/adt/flp.js.map +1 -0
- package/dist/adt/http.d.ts +2 -0
- package/dist/adt/http.d.ts.map +1 -1
- package/dist/adt/http.js +162 -4
- package/dist/adt/http.js.map +1 -1
- package/dist/adt/transport.d.ts +48 -3
- package/dist/adt/transport.d.ts.map +1 -1
- package/dist/adt/transport.js +222 -32
- package/dist/adt/transport.js.map +1 -1
- package/dist/adt/types.d.ts +107 -0
- package/dist/adt/types.d.ts.map +1 -1
- package/dist/adt/ui5-repository.d.ts +19 -0
- package/dist/adt/ui5-repository.d.ts.map +1 -0
- package/dist/adt/ui5-repository.js +43 -0
- package/dist/adt/ui5-repository.js.map +1 -0
- package/dist/adt/xml-parser.d.ts +43 -1
- package/dist/adt/xml-parser.d.ts.map +1 -1
- package/dist/adt/xml-parser.js +208 -3
- package/dist/adt/xml-parser.js.map +1 -1
- package/dist/handlers/intent.d.ts +20 -6
- package/dist/handlers/intent.d.ts.map +1 -1
- package/dist/handlers/intent.js +1304 -104
- package/dist/handlers/intent.js.map +1 -1
- package/dist/handlers/schemas.d.ts +240 -0
- package/dist/handlers/schemas.d.ts.map +1 -1
- package/dist/handlers/schemas.js +201 -5
- package/dist/handlers/schemas.js.map +1 -1
- package/dist/handlers/tools.d.ts.map +1 -1
- package/dist/handlers/tools.js +339 -49
- package/dist/handlers/tools.js.map +1 -1
- package/dist/server/config.d.ts.map +1 -1
- package/dist/server/config.js +15 -3
- package/dist/server/config.js.map +1 -1
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +32 -3
- package/dist/server/http.js.map +1 -1
- package/dist/server/server.d.ts +1 -1
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +38 -6
- package/dist/server/server.js.map +1 -1
- package/dist/server/types.d.ts +2 -0
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/types.js +5 -3
- package/dist/server/types.js.map +1 -1
- package/dist/server/xsuaa.d.ts +13 -0
- package/dist/server/xsuaa.d.ts.map +1 -1
- package/dist/server/xsuaa.js +28 -2
- package/dist/server/xsuaa.js.map +1 -1
- package/package.json +19 -6
package/dist/handlers/tools.js
CHANGED
|
@@ -49,6 +49,10 @@ const SAPREAD_TYPES_ONPREM = [
|
|
|
49
49
|
'MESSAGES',
|
|
50
50
|
'TEXT_ELEMENTS',
|
|
51
51
|
'VARIANTS',
|
|
52
|
+
'BSP',
|
|
53
|
+
'BSP_DEPLOY',
|
|
54
|
+
'API_STATE',
|
|
55
|
+
'INACTIVE_OBJECTS',
|
|
52
56
|
];
|
|
53
57
|
/** SAPRead types available on BTP ABAP Environment (no PROG, INCL, VIEW, TEXT_ELEMENTS, VARIANTS) */
|
|
54
58
|
const SAPREAD_TYPES_BTP = [
|
|
@@ -70,20 +74,47 @@ const SAPREAD_TYPES_BTP = [
|
|
|
70
74
|
'SYSTEM',
|
|
71
75
|
'COMPONENTS',
|
|
72
76
|
'MESSAGES',
|
|
77
|
+
'BSP',
|
|
78
|
+
'BSP_DEPLOY',
|
|
79
|
+
'API_STATE',
|
|
80
|
+
'INACTIVE_OBJECTS',
|
|
73
81
|
];
|
|
74
|
-
const SAPREAD_DESC_ONPREM = 'Read SAP ABAP objects. Types: PROG, CLAS, INTF, FUNC, FUGR (use expand_includes=true to get all include sources), INCL, DDLS, DDLX (CDS metadata extensions — UI annotations), BDEF, SRVD, SRVB (service bindings — returns structured binding info: OData version, publish status, service definition ref), TABL, VIEW, STRU (DDIC structures like BAPIRET2 — returns CDS-like source), DOMA (DDIC domains — returns type info, value table, fixed values), DTEL (data elements — returns domain, labels, search help), TRAN (transaction codes — returns description, program, package), TABLE_CONTENTS, DEVC, SOBJ (BOR business objects — returns method catalog or full implementation), SYSTEM, COMPONENTS, MESSAGES, TEXT_ELEMENTS, VARIANTS. For CLAS: omit include to get the full class source (definition + implementation combined). The include param is optional — use it only to read class-local sections: definitions (local types), implementations (local helper classes), macros, testclasses (ABAP Unit). For CLAS with method param: use method="*" to list all methods with signatures and visibility, or method="method_name" to read a single method implementation (95% fewer tokens than full source). For SOBJ: returns BOR method catalog; use method param to read a specific method implementation.';
|
|
75
|
-
const SAPREAD_DESC_BTP = 'Read SAP ABAP objects (BTP ABAP Environment). Types: CLAS, INTF, FUNC (released/custom only), FUGR (released/custom only), DDLS (CDS views — primary data model on BTP), DDLX (CDS metadata extensions — UI annotations for Fiori Elements), BDEF (RAP behavior definitions), SRVD (service definitions), SRVB (service bindings — returns structured binding info: OData version, publish status, service definition ref), TABL (custom tables only), STRU (DDIC structures — returns CDS-like source), DOMA (DDIC domains — type info, value table, fixed values), DTEL (data elements — domain, labels, search help), TABLE_CONTENTS (custom tables and released CDS only — SAP standard tables are blocked), DEVC, SYSTEM, COMPONENTS, MESSAGES (custom message classes only). For CLAS: omit include to get the full class source. The include param reads class-local sections: definitions, implementations, macros, testclasses. For CLAS with method param: use method="*" to list all methods with signatures and visibility, or method="method_name" to read a single method (95% fewer tokens). Note: PROG, INCL, VIEW, TRAN, TEXT_ELEMENTS, VARIANTS are not available on BTP — use CLAS with IF_OO_ADT_CLASSRUN for console applications, and DDLS for data models instead of classic views.';
|
|
82
|
+
const SAPREAD_DESC_ONPREM = 'Read SAP ABAP objects. Types: PROG, CLAS, INTF, FUNC, FUGR (use expand_includes=true to get all include sources), INCL, DDLS, DDLX (CDS metadata extensions — UI annotations), BDEF, SRVD, SRVB (service bindings — returns structured binding info: OData version, publish status, service definition ref), TABL, VIEW, STRU (DDIC structures like BAPIRET2 — returns CDS-like source), DOMA (DDIC domains — returns type info, value table, fixed values), DTEL (data elements — returns domain, labels, search help), TRAN (transaction codes — returns description, program, package), TABLE_CONTENTS, DEVC, SOBJ (BOR business objects — returns method catalog or full implementation), SYSTEM, COMPONENTS, MESSAGES, TEXT_ELEMENTS, VARIANTS. For CLAS: omit include to get the full class source (definition + implementation combined). The include param is optional — use it only to read class-local sections: definitions (local types), implementations (local helper classes), macros, testclasses (ABAP Unit). For CLAS with method param: use method="*" to list all methods with signatures and visibility, or method="method_name" to read a single method implementation (95% fewer tokens than full source). For SOBJ: returns BOR method catalog; use method param to read a specific method implementation. BSP (deployed UI5/Fiori apps — list apps, browse files, read content; use name to browse app structure, include for subfolder or file), BSP_DEPLOY (query deployed UI5 apps via ABAP Repository OData Service — returns name, package, description). API_STATE (API release state — checks if an object is released for ABAP Cloud / S/4HANA Clean Core; returns contract states C0-C4, successor info; use objectType param for non-class objects). INACTIVE_OBJECTS (list all objects pending activation — no name param needed; use before SAPActivate batch_activate to see what needs activating).';
|
|
83
|
+
const SAPREAD_DESC_BTP = 'Read SAP ABAP objects (BTP ABAP Environment). Types: CLAS, INTF, FUNC (released/custom only), FUGR (released/custom only), DDLS (CDS views — primary data model on BTP), DDLX (CDS metadata extensions — UI annotations for Fiori Elements), BDEF (RAP behavior definitions), SRVD (service definitions), SRVB (service bindings — returns structured binding info: OData version, publish status, service definition ref), TABL (custom tables only), STRU (DDIC structures — returns CDS-like source), DOMA (DDIC domains — type info, value table, fixed values), DTEL (data elements — domain, labels, search help), TABLE_CONTENTS (custom tables and released CDS only — SAP standard tables are blocked), DEVC, SYSTEM, COMPONENTS, MESSAGES (custom message classes only). For CLAS: omit include to get the full class source. The include param reads class-local sections: definitions, implementations, macros, testclasses. For CLAS with method param: use method="*" to list all methods with signatures and visibility, or method="method_name" to read a single method (95% fewer tokens). Note: PROG, INCL, VIEW, TRAN, TEXT_ELEMENTS, VARIANTS are not available on BTP — use CLAS with IF_OO_ADT_CLASSRUN for console applications, and DDLS for data models instead of classic views. BSP (deployed UI5/Fiori apps — list apps, browse files, read content; use name to browse app structure, include for subfolder or file), BSP_DEPLOY (query deployed UI5 apps via ABAP Repository OData Service — returns name, package, description). API_STATE (API release state — checks if an object is released for ABAP Cloud / Clean Core; returns contract states C0-C4, successor info; essential for cloud development; use objectType param for non-class objects). INACTIVE_OBJECTS (list all objects pending activation — no name param needed; use before SAPActivate batch_activate to see what needs activating).';
|
|
76
84
|
// ─── SAPWrite Types ─────────────────────────────────────────────────
|
|
77
|
-
const SAPWRITE_TYPES_ONPREM = [
|
|
78
|
-
|
|
79
|
-
|
|
85
|
+
const SAPWRITE_TYPES_ONPREM = [
|
|
86
|
+
'PROG',
|
|
87
|
+
'CLAS',
|
|
88
|
+
'INTF',
|
|
89
|
+
'FUNC',
|
|
90
|
+
'INCL',
|
|
91
|
+
'DDLS',
|
|
92
|
+
'DDLX',
|
|
93
|
+
'BDEF',
|
|
94
|
+
'SRVD',
|
|
95
|
+
'SRVB',
|
|
96
|
+
'TABL',
|
|
97
|
+
'DOMA',
|
|
98
|
+
'DTEL',
|
|
99
|
+
'MSAG',
|
|
100
|
+
];
|
|
101
|
+
const SAPWRITE_TYPES_BTP = ['CLAS', 'INTF', 'DDLS', 'DDLX', 'BDEF', 'SRVD', 'SRVB', 'TABL', 'DOMA', 'DTEL', 'MSAG'];
|
|
102
|
+
const SAPWRITE_DESC_ONPREM = 'Create or update ABAP source code and DDIC metadata. Handles lock/modify/unlock automatically. Supports PROG, CLAS, INTF, FUNC, INCL, DDLS, DDLX, BDEF, SRVD, SRVB, TABL, DOMA, DTEL, MSAG. ' +
|
|
103
|
+
'TABL uses source-based writes via /source/main (define table syntax), similar to DDLS/BDEF/SRVD. ' +
|
|
104
|
+
'DOMA/DTEL use metadata XML writes (not /source/main): provide DDIC fields like dataType, length, fixedValues, typeKind, labels, searchHelp. ' +
|
|
105
|
+
'MSAG (message classes) use metadata XML writes: provide "messages" array with {number, shortText} entries. Create empty then update, or provide messages at creation. ' +
|
|
106
|
+
'SRVB (service bindings) use metadata XML writes: provide serviceDefinition (SRVD name) plus optional bindingType/category. ' +
|
|
80
107
|
'For edit_method: surgically replace a single method body in a CLAS without sending the full class source. ' +
|
|
81
108
|
'Provide just the new method implementation code in "source" — 95% fewer tokens than full-class updates. ' +
|
|
82
|
-
'For batch_create: create and activate multiple objects in a single call — ideal for RAP stacks. Pass "objects" array with dependency order.';
|
|
83
|
-
const SAPWRITE_DESC_BTP = 'Create or update ABAP source code (BTP ABAP Environment). Handles lock/modify/unlock automatically. Supports CLAS, INTF, DDLS, DDLX, BDEF, SRVD. ' +
|
|
109
|
+
'For batch_create: create and activate multiple objects in a single call — ideal for RAP stacks (TABL → DDLS → BDEF → SRVD). Pass "objects" array with dependency order.';
|
|
110
|
+
const SAPWRITE_DESC_BTP = 'Create or update ABAP source code and DDIC metadata (BTP ABAP Environment). Handles lock/modify/unlock automatically. Supports CLAS, INTF, DDLS, DDLX, BDEF, SRVD, SRVB, TABL, DOMA, DTEL, MSAG. ' +
|
|
111
|
+
'TABL supports custom table source writes via /source/main (define table syntax). ' +
|
|
112
|
+
'DOMA/DTEL use metadata XML writes (not /source/main): provide DDIC fields like dataType, length, fixedValues, typeKind, labels, searchHelp. ' +
|
|
113
|
+
'MSAG (message classes) use metadata XML writes: provide "messages" array with {number, shortText} entries. ' +
|
|
114
|
+
'SRVB (service bindings) use metadata XML writes: provide serviceDefinition (SRVD name) plus optional bindingType/category. ' +
|
|
84
115
|
'Must use ABAP Cloud language version (no classic statements). Only Z*/Y* namespace allowed on BTP. ' +
|
|
85
116
|
'For edit_method: surgically replace a single method body in a CLAS without sending the full class source. ' +
|
|
86
|
-
'For batch_create: create and activate multiple objects in a single call — ideal for RAP stacks.';
|
|
117
|
+
'For batch_create: create and activate multiple objects in a single call — ideal for RAP stacks (TABL → DDLS → BDEF → SRVD).';
|
|
87
118
|
// ─── SAPContext Types ───────────────────────────────────────────────
|
|
88
119
|
const SAPCONTEXT_TYPES_ONPREM = ['CLAS', 'INTF', 'PROG', 'FUNC', 'DDLS'];
|
|
89
120
|
const SAPCONTEXT_TYPES_BTP = ['CLAS', 'INTF', 'DDLS'];
|
|
@@ -102,7 +133,10 @@ const SAPCONTEXT_DESC_ONPREM = 'Get compressed dependency context for an ABAP ob
|
|
|
102
133
|
'Filtering: SAP standard objects (CL_ABAP_*, IF_ABAP_*, CX_SY_*) are excluded — the LLM already knows standard SAP APIs. ' +
|
|
103
134
|
'Custom objects (Z*, Y*) are prioritized.\n\n' +
|
|
104
135
|
'Use SAPContext BEFORE writing code that modifies or extends existing objects. ' +
|
|
105
|
-
'Use SAPRead to get the full source of the target object, then SAPContext to understand its dependencies
|
|
136
|
+
'Use SAPRead to get the full source of the target object, then SAPContext to understand its dependencies.\n\n' +
|
|
137
|
+
'For CDS analysis: Use SAPContext instead of reading each view in the dependency chain individually. ' +
|
|
138
|
+
'A single SAPContext call on a consumption view (e.g., ZC_*) returns all dependent interface views, tables, and associations — ' +
|
|
139
|
+
'replacing 5-10 separate SAPRead calls. Only use targeted SAPRead for metadata extensions (DDLX) or service bindings (SRVB) that SAPContext does not cover.';
|
|
106
140
|
const SAPCONTEXT_DESC_BTP = 'Get compressed dependency context for an ABAP object or CDS entity (BTP ABAP Environment). Returns only the public API contracts ' +
|
|
107
141
|
'(method signatures, interface definitions, type declarations) of all objects that the target depends on — ' +
|
|
108
142
|
'NOT the full source code. This is the most token-efficient way to understand dependencies.\n\n' +
|
|
@@ -113,7 +147,10 @@ const SAPCONTEXT_DESC_BTP = 'Get compressed dependency context for an ABAP objec
|
|
|
113
147
|
"Each dependency's full source is included. Essential for CDS unit test generation.\n\n" +
|
|
114
148
|
'On BTP: released SAP objects (CL_ABAP_*, IF_ABAP_*) are included since they form the primary development API surface. ' +
|
|
115
149
|
'Custom objects (Z*, Y*) are also included.\n\n' +
|
|
116
|
-
'Use SAPContext BEFORE writing code that modifies or extends existing objects
|
|
150
|
+
'Use SAPContext BEFORE writing code that modifies or extends existing objects.\n\n' +
|
|
151
|
+
'For CDS analysis: Use SAPContext instead of reading each view in the dependency chain individually. ' +
|
|
152
|
+
'A single SAPContext call on a consumption view returns all dependent interface views, tables, and associations — ' +
|
|
153
|
+
'replacing 5-10 separate SAPRead calls.';
|
|
117
154
|
// ─── SAPQuery ───────────────────────────────────────────────────────
|
|
118
155
|
const SAPQUERY_DESC_ONPREM = 'Execute ABAP SQL queries against SAP tables. Returns structured data with column names and rows. ' +
|
|
119
156
|
'Powerful for reverse-engineering: query metadata tables like DD02L (table catalog), DD03L (field catalog), ' +
|
|
@@ -135,28 +172,52 @@ const SAPSEARCH_DESC_BTP = 'Search for ABAP objects or search within source code
|
|
|
135
172
|
'2. Source code search (searchType="source_code"): Full-text search within ABAP source code.\n\n' +
|
|
136
173
|
"Tips: On BTP, focus on classes (CL_*), interfaces (IF_*), CDS views (I_*), and custom Z/Y objects.\n\nNote: Searches object names only (classes, CDS views, etc.) — field/column names are not searchable here. To find fields by name, use SAPRead(type='DDLS', include='elements') for CDS views.";
|
|
137
174
|
// ─── SAPTransport ───────────────────────────────────────────────────
|
|
138
|
-
const SAPTRANSPORT_DESC_ONPREM = 'Manage CTS transport requests
|
|
139
|
-
|
|
175
|
+
const SAPTRANSPORT_DESC_ONPREM = 'Manage CTS transport requests (SE09/SE10 equivalent). ' +
|
|
176
|
+
'Actions: list (defaults to current user, modifiable transports — both Workbench and Customizing), ' +
|
|
177
|
+
'get (details with tasks and objects), create (K=Workbench, W=Customizing, T=Transport of Copies), ' +
|
|
178
|
+
'release, delete, reassign (change owner), release_recursive (release tasks first, then parent), ' +
|
|
179
|
+
'check (check if a package requires a transport — provide type, name, package). ' +
|
|
180
|
+
'Transport IDs look like A4HK900123. Status: D=modifiable, R=released.';
|
|
181
|
+
const SAPTRANSPORT_DESC_BTP = 'Manage transport requests (BTP ABAP Environment, SE09/SE10 equivalent). ' +
|
|
182
|
+
'Actions: list (defaults to current user, modifiable transports — both Workbench and Customizing), ' +
|
|
183
|
+
'get (details with tasks and objects), create (K=Workbench, W=Customizing, T=Transport of Copies), ' +
|
|
184
|
+
'release, delete, reassign (change owner), release_recursive (release tasks first, then parent), ' +
|
|
185
|
+
'check (check if a package requires a transport — provide type, name, package). ' +
|
|
140
186
|
'On BTP, transport release triggers a gCTS push to the software component Git repository. ' +
|
|
141
187
|
'Import into target systems is done via the Manage Software Components app or Cloud Transport Management Service (cTMS), not via this tool.';
|
|
142
188
|
// ─── SAPManage ──────────────────────────────────────────────────────
|
|
143
189
|
const SAPMANAGE_DESC_ONPREM = 'Probe and report SAP system capabilities. Use this BEFORE attempting operations that depend on optional ' +
|
|
144
|
-
'features (abapGit, RAP/CDS, AMDP, HANA, UI5/Fiori, CTS transports).\n\n' +
|
|
190
|
+
'features (abapGit, RAP/CDS, AMDP, HANA, UI5/Fiori, CTS transports, FLP customization). Also handles package (DEVC) lifecycle operations.\n\n' +
|
|
145
191
|
'Actions:\n' +
|
|
146
192
|
'- "features": Get cached feature status from last probe (fast, no SAP round-trip). ' +
|
|
147
193
|
'Returns which features are available, their mode (auto/on/off), and when they were last probed.\n' +
|
|
148
|
-
'- "probe": Re-probe the SAP system now (makes
|
|
149
|
-
'Use this on first use or if you suspect feature availability has changed.\n
|
|
194
|
+
'- "probe": Re-probe the SAP system now (makes 8 parallel requests, ~1-2s). ' +
|
|
195
|
+
'Use this on first use or if you suspect feature availability has changed.\n' +
|
|
196
|
+
'- "cache_stats": Show object cache health and warmup state.\n' +
|
|
197
|
+
'- "create_package": Create a package (DEVC) via ADT packages API.\n' +
|
|
198
|
+
'- "delete_package": Delete an existing package.\n' +
|
|
199
|
+
'- "flp_list_catalogs": List FLP business catalogs.\n' +
|
|
200
|
+
'- "flp_list_groups": List FLP groups.\n' +
|
|
201
|
+
'- "flp_list_tiles": List tiles in a catalog (requires "catalogId").\n' +
|
|
202
|
+
'- "flp_create_catalog": Create a business catalog (requires "domainId", "title").\n' +
|
|
203
|
+
'- "flp_create_group": Create a group (requires "groupId", "title").\n' +
|
|
204
|
+
'- "flp_create_tile": Create a tile in a catalog (requires "catalogId", "tile").\n' +
|
|
205
|
+
'- "flp_add_tile_to_group": Add a catalog tile to a group (requires "groupId", "catalogId", "tileInstanceId").\n' +
|
|
206
|
+
'- "flp_delete_catalog": Delete a business catalog (requires "catalogId").\n\n' +
|
|
150
207
|
'Returns JSON with features, each having: id, available (bool), mode, message, and probedAt timestamp. ' +
|
|
151
208
|
'Also returns systemType ("btp" or "onprem") for understanding available capabilities. ' +
|
|
152
209
|
'"available: false" means do NOT attempt operations that depend on it.';
|
|
153
210
|
const SAPMANAGE_DESC_BTP = 'Probe and report SAP system capabilities (BTP ABAP Environment). ' +
|
|
154
|
-
'Returns feature status and system type.\n\n' +
|
|
211
|
+
'Returns feature status and system type. Also handles package (DEVC) lifecycle operations.\n\n' +
|
|
155
212
|
'Actions:\n' +
|
|
156
213
|
'- "features": Get cached feature status from last probe.\n' +
|
|
157
|
-
'- "probe": Re-probe the SAP system now.\n
|
|
214
|
+
'- "probe": Re-probe the SAP system now.\n' +
|
|
215
|
+
'- "cache_stats": Show object cache health and warmup state.\n' +
|
|
216
|
+
'- "create_package": Create a package (DEVC) via ADT packages API.\n' +
|
|
217
|
+
'- "delete_package": Delete an existing package.\n' +
|
|
218
|
+
'- FLP actions: flp_list_catalogs, flp_list_groups, flp_list_tiles, flp_create_catalog, flp_create_group, flp_create_tile, flp_add_tile_to_group, flp_delete_catalog.\n\n' +
|
|
158
219
|
'Returns JSON with features and systemType="btp". On BTP, RAP/CDS and transports are always available. ' +
|
|
159
|
-
'abapGit, AMDP, UI5/BSP may not be available depending on the BTP ABAP configuration.';
|
|
220
|
+
'abapGit, AMDP, UI5/BSP, and FLP customization may not be available depending on the BTP ABAP configuration.';
|
|
160
221
|
// ─── SAPSearch Builder ─────────────────────────────────────────────
|
|
161
222
|
/** Strip source_code-specific lines from a SAPSearch description when textSearch is unavailable */
|
|
162
223
|
function stripSourceCodeLines(desc) {
|
|
@@ -263,6 +324,10 @@ export function getToolDefinitions(config, textSearchAvailable) {
|
|
|
263
324
|
},
|
|
264
325
|
maxRows: { type: 'number', description: 'For TABLE_CONTENTS: max rows to return (default 100)' },
|
|
265
326
|
sqlFilter: { type: 'string', description: 'For TABLE_CONTENTS: SQL WHERE clause filter' },
|
|
327
|
+
objectType: {
|
|
328
|
+
type: 'string',
|
|
329
|
+
description: 'For API_STATE: SAP object type (CLAS, INTF, PROG, FUGR, TABL, DDLS, etc.) — auto-detected from name if omitted',
|
|
330
|
+
},
|
|
266
331
|
},
|
|
267
332
|
required: ['type'],
|
|
268
333
|
},
|
|
@@ -291,7 +356,9 @@ export function getToolDefinitions(config, textSearchAvailable) {
|
|
|
291
356
|
type: {
|
|
292
357
|
type: 'string',
|
|
293
358
|
enum: btp ? SAPWRITE_TYPES_BTP : SAPWRITE_TYPES_ONPREM,
|
|
294
|
-
description:
|
|
359
|
+
description: btp
|
|
360
|
+
? 'Object type (for create/update/delete/edit_method). Supported: CLAS, INTF, DDLS, DDLX, BDEF, SRVD, TABL, DOMA, DTEL.'
|
|
361
|
+
: 'Object type (for create/update/delete/edit_method). Supported: PROG, CLAS, INTF, FUNC, INCL, DDLS, DDLX, BDEF, SRVD, TABL, DOMA, DTEL.',
|
|
295
362
|
},
|
|
296
363
|
name: { type: 'string', description: 'Object name (for create/update/delete/edit_method)' },
|
|
297
364
|
source: { type: 'string', description: 'ABAP source code (for create/update/edit_method)' },
|
|
@@ -303,8 +370,59 @@ export function getToolDefinitions(config, textSearchAvailable) {
|
|
|
303
370
|
type: 'string',
|
|
304
371
|
description: 'Object description for create action (defaults to name if omitted). Max 60 chars for most types.',
|
|
305
372
|
},
|
|
306
|
-
package: {
|
|
307
|
-
|
|
373
|
+
package: {
|
|
374
|
+
type: 'string',
|
|
375
|
+
description: 'Package for new objects (default $TMP). Non-$TMP packages require a transport number.',
|
|
376
|
+
},
|
|
377
|
+
transport: {
|
|
378
|
+
type: 'string',
|
|
379
|
+
description: 'Transport request number. Required for non-$TMP packages. Use SAPTransport(action="list") to find or SAPTransport(action="create") to create one.',
|
|
380
|
+
},
|
|
381
|
+
dataType: { type: 'string', description: 'DOMA/DTEL: ABAP data type (e.g., CHAR, NUMC, DEC)' },
|
|
382
|
+
length: { type: 'number', description: 'DOMA/DTEL: data type length' },
|
|
383
|
+
decimals: { type: 'number', description: 'DOMA/DTEL: decimal places' },
|
|
384
|
+
outputLength: { type: 'number', description: 'DOMA: output length' },
|
|
385
|
+
conversionExit: { type: 'string', description: 'DOMA: conversion exit (e.g., ALPHA)' },
|
|
386
|
+
signExists: { type: 'boolean', description: 'DOMA: signed values allowed' },
|
|
387
|
+
lowercase: { type: 'boolean', description: 'DOMA: lowercase characters allowed' },
|
|
388
|
+
fixedValues: {
|
|
389
|
+
type: 'array',
|
|
390
|
+
description: 'DOMA: fixed value ranges',
|
|
391
|
+
items: {
|
|
392
|
+
type: 'object',
|
|
393
|
+
properties: {
|
|
394
|
+
low: { type: 'string', description: 'Low value (required)' },
|
|
395
|
+
high: { type: 'string', description: 'High value for ranges (optional)' },
|
|
396
|
+
description: { type: 'string', description: 'Value description (optional)' },
|
|
397
|
+
},
|
|
398
|
+
required: ['low'],
|
|
399
|
+
},
|
|
400
|
+
},
|
|
401
|
+
valueTable: { type: 'string', description: 'DOMA: value table reference (e.g., T001)' },
|
|
402
|
+
typeKind: {
|
|
403
|
+
type: 'string',
|
|
404
|
+
enum: ['domain', 'predefinedAbapType'],
|
|
405
|
+
description: 'DTEL: type source (domain reference or predefined ABAP type)',
|
|
406
|
+
},
|
|
407
|
+
typeName: { type: 'string', description: 'DTEL: domain/type name reference (for typeKind=domain)' },
|
|
408
|
+
domainName: { type: 'string', description: 'DTEL: alias for typeName when referencing a domain' },
|
|
409
|
+
shortLabel: { type: 'string', description: 'DTEL: short field label' },
|
|
410
|
+
mediumLabel: { type: 'string', description: 'DTEL: medium field label' },
|
|
411
|
+
longLabel: { type: 'string', description: 'DTEL: long field label' },
|
|
412
|
+
headingLabel: { type: 'string', description: 'DTEL: heading field label' },
|
|
413
|
+
searchHelp: { type: 'string', description: 'DTEL: search help name' },
|
|
414
|
+
searchHelpParameter: { type: 'string', description: 'DTEL: search help parameter' },
|
|
415
|
+
setGetParameter: { type: 'string', description: 'DTEL: SET/GET parameter ID' },
|
|
416
|
+
defaultComponentName: { type: 'string', description: 'DTEL: default component name' },
|
|
417
|
+
changeDocument: { type: 'boolean', description: 'DTEL: enable change document flag' },
|
|
418
|
+
serviceDefinition: { type: 'string', description: 'SRVB: service definition name (SRVD) to bind to' },
|
|
419
|
+
bindingType: { type: 'string', description: 'SRVB: binding type (default: ODATA)' },
|
|
420
|
+
category: {
|
|
421
|
+
type: 'string',
|
|
422
|
+
enum: ['0', '1'],
|
|
423
|
+
description: 'SRVB: binding category (0=UI, 1=Web API; default: 0)',
|
|
424
|
+
},
|
|
425
|
+
version: { type: 'string', description: 'SRVB: service version (default: 0001)' },
|
|
308
426
|
objects: {
|
|
309
427
|
type: 'array',
|
|
310
428
|
items: {
|
|
@@ -313,17 +431,58 @@ export function getToolDefinitions(config, textSearchAvailable) {
|
|
|
313
431
|
type: {
|
|
314
432
|
type: 'string',
|
|
315
433
|
enum: btp ? SAPWRITE_TYPES_BTP : SAPWRITE_TYPES_ONPREM,
|
|
316
|
-
description: 'Object type',
|
|
434
|
+
description: 'Object type (includes TABL for RAP stack bootstrapping)',
|
|
317
435
|
},
|
|
318
436
|
name: { type: 'string', description: 'Object name' },
|
|
319
437
|
source: { type: 'string', description: 'ABAP source code (optional — some objects have no source)' },
|
|
320
438
|
description: { type: 'string', description: 'Object description (defaults to name if omitted)' },
|
|
439
|
+
dataType: { type: 'string', description: 'DOMA/DTEL: ABAP data type' },
|
|
440
|
+
length: { type: 'number', description: 'DOMA/DTEL: data type length' },
|
|
441
|
+
decimals: { type: 'number', description: 'DOMA/DTEL: decimal places' },
|
|
442
|
+
outputLength: { type: 'number', description: 'DOMA: output length' },
|
|
443
|
+
conversionExit: { type: 'string', description: 'DOMA: conversion exit' },
|
|
444
|
+
signExists: { type: 'boolean', description: 'DOMA: signed values allowed' },
|
|
445
|
+
lowercase: { type: 'boolean', description: 'DOMA: lowercase allowed' },
|
|
446
|
+
fixedValues: {
|
|
447
|
+
type: 'array',
|
|
448
|
+
description: 'DOMA: fixed value ranges',
|
|
449
|
+
items: {
|
|
450
|
+
type: 'object',
|
|
451
|
+
properties: {
|
|
452
|
+
low: { type: 'string' },
|
|
453
|
+
high: { type: 'string' },
|
|
454
|
+
description: { type: 'string' },
|
|
455
|
+
},
|
|
456
|
+
required: ['low'],
|
|
457
|
+
},
|
|
458
|
+
},
|
|
459
|
+
valueTable: { type: 'string', description: 'DOMA: value table' },
|
|
460
|
+
typeKind: { type: 'string', enum: ['domain', 'predefinedAbapType'], description: 'DTEL: type mode' },
|
|
461
|
+
typeName: { type: 'string', description: 'DTEL: domain/type name reference' },
|
|
462
|
+
domainName: { type: 'string', description: 'DTEL: alias for typeName' },
|
|
463
|
+
shortLabel: { type: 'string', description: 'DTEL: short field label' },
|
|
464
|
+
mediumLabel: { type: 'string', description: 'DTEL: medium field label' },
|
|
465
|
+
longLabel: { type: 'string', description: 'DTEL: long field label' },
|
|
466
|
+
headingLabel: { type: 'string', description: 'DTEL: heading field label' },
|
|
467
|
+
searchHelp: { type: 'string', description: 'DTEL: search help' },
|
|
468
|
+
searchHelpParameter: { type: 'string', description: 'DTEL: search help parameter' },
|
|
469
|
+
setGetParameter: { type: 'string', description: 'DTEL: SET/GET parameter ID' },
|
|
470
|
+
defaultComponentName: { type: 'string', description: 'DTEL: default component name' },
|
|
471
|
+
changeDocument: { type: 'boolean', description: 'DTEL: change document flag' },
|
|
472
|
+
serviceDefinition: { type: 'string', description: 'SRVB: service definition (SRVD)' },
|
|
473
|
+
bindingType: { type: 'string', description: 'SRVB: binding type (default ODATA)' },
|
|
474
|
+
category: {
|
|
475
|
+
type: 'string',
|
|
476
|
+
enum: ['0', '1'],
|
|
477
|
+
description: 'SRVB: binding category (0=UI, 1=Web API)',
|
|
478
|
+
},
|
|
479
|
+
version: { type: 'string', description: 'SRVB: service version (default 0001)' },
|
|
321
480
|
},
|
|
322
481
|
required: ['type', 'name'],
|
|
323
482
|
},
|
|
324
483
|
description: 'For batch_create: ordered list of objects to create and activate. Each object needs type, name, and source (if applicable). ' +
|
|
325
|
-
'Objects are created and activated in array order — put dependencies first (e.g.,
|
|
326
|
-
'Example: [{type:"DDLS",name:"ZI_TRAVEL",source:"..."},{type:"BDEF",name:"ZI_TRAVEL",source:"..."},{type:"SRVD",name:"ZSD_TRAVEL",source:"..."}]',
|
|
484
|
+
'Objects are created and activated in array order — put dependencies first (e.g., TABL before DDLS, BDEF after DDLS). ' +
|
|
485
|
+
'Example: [{type:"TABL",name:"ZTRAVEL",source:"..."},{type:"DDLS",name:"ZI_TRAVEL",source:"..."},{type:"BDEF",name:"ZI_TRAVEL",source:"..."},{type:"SRVD",name:"ZSD_TRAVEL",source:"..."}]',
|
|
327
486
|
},
|
|
328
487
|
},
|
|
329
488
|
required: ['action'],
|
|
@@ -332,13 +491,29 @@ export function getToolDefinitions(config, textSearchAvailable) {
|
|
|
332
491
|
tools.push({
|
|
333
492
|
name: 'SAPActivate',
|
|
334
493
|
description: 'Activate (publish) ABAP objects. Supports single object or batch activation.\n' +
|
|
335
|
-
'
|
|
336
|
-
'
|
|
494
|
+
'ALWAYS prefer batch activation when activating 2+ objects — pass "objects" array with {type, name} entries. ' +
|
|
495
|
+
'Batch activation is more efficient (one SAP round-trip) and works for ANY combination of objects, not just dependent ones. ' +
|
|
496
|
+
'It is required for RAP stacks where DDLS, BDEF, SRVD depend on each other, but equally useful for unrelated objects like multiple DTELs or DOMAs.\n' +
|
|
497
|
+
'For publish_srvb/unpublish_srvb: publish or unpublish an OData service binding (SRVB) — makes the OData service available for consumption.',
|
|
337
498
|
inputSchema: {
|
|
338
499
|
type: 'object',
|
|
339
500
|
properties: {
|
|
340
|
-
|
|
501
|
+
action: {
|
|
502
|
+
type: 'string',
|
|
503
|
+
enum: ['activate', 'publish_srvb', 'unpublish_srvb'],
|
|
504
|
+
description: 'Action to perform. "activate" (default): activate ABAP objects. ' +
|
|
505
|
+
'"publish_srvb": publish a service binding to make OData service available. ' +
|
|
506
|
+
'"unpublish_srvb": unpublish a service binding.',
|
|
507
|
+
},
|
|
508
|
+
name: { type: 'string', description: 'Object name (for single activation or publish/unpublish)' },
|
|
341
509
|
type: { type: 'string', description: 'Object type (PROG, CLAS, DDLS, DDLX, BDEF, SRVD, SRVB, etc.)' },
|
|
510
|
+
version: { type: 'string', description: 'Service version for publish/unpublish (default: "0001")' },
|
|
511
|
+
preaudit: {
|
|
512
|
+
type: 'boolean',
|
|
513
|
+
description: 'Request pre-activation audit from SAP (default: true). ' +
|
|
514
|
+
'When true, SAP checks for issues before activating and returns warnings/errors. ' +
|
|
515
|
+
'Set to false to skip pre-audit for faster activation when confident the code is correct.',
|
|
516
|
+
},
|
|
342
517
|
objects: {
|
|
343
518
|
type: 'array',
|
|
344
519
|
items: {
|
|
@@ -349,8 +524,8 @@ export function getToolDefinitions(config, textSearchAvailable) {
|
|
|
349
524
|
},
|
|
350
525
|
required: ['type', 'name'],
|
|
351
526
|
},
|
|
352
|
-
description: '
|
|
353
|
-
'
|
|
527
|
+
description: 'Batch activation: array of objects to activate in one call. Use whenever activating 2+ objects. ' +
|
|
528
|
+
'Works for any mix of types — e.g., [{type:"DOMA",name:"Z_DOM"},{type:"DTEL",name:"Z_DEL"}] or RAP stacks like [{type:"DDLS",name:"ZI_TRAVEL"},{type:"BDEF",name:"ZI_TRAVEL"},{type:"SRVD",name:"ZSD_TRAVEL"}].',
|
|
354
529
|
},
|
|
355
530
|
},
|
|
356
531
|
},
|
|
@@ -359,14 +534,14 @@ export function getToolDefinitions(config, textSearchAvailable) {
|
|
|
359
534
|
tools.push({
|
|
360
535
|
name: 'SAPNavigate',
|
|
361
536
|
description: btp
|
|
362
|
-
? 'Navigate code (BTP ABAP Environment): find definitions, references (where-used), and
|
|
363
|
-
: 'Navigate code: find definitions, references (where-used), and
|
|
537
|
+
? 'Navigate code (BTP ABAP Environment): find definitions, references (where-used), code completion, and class hierarchy. Use for "go to definition", "where is this used?", "what does this class inherit?", and auto-complete. For references: uses the full scope-based Where-Used API returning detailed results with line numbers, snippets, and package info. Optional objectType filter narrows results to a specific ADT type in slash format (e.g., CLAS/OC, PROG/P). On BTP, navigation scope is limited to released SAP objects and custom Z/Y objects.'
|
|
538
|
+
: 'Navigate code: find definitions, references (where-used), code completion, and class hierarchy. Use for "go to definition", "where is this used?", "what does this class inherit?", and auto-complete. For references: uses the full scope-based Where-Used API returning detailed results with line numbers, snippets, and package info. Optional objectType filter narrows results to a specific ADT type in slash format (e.g., CLAS/OC, PROG/P). For hierarchy: returns superclass, implemented interfaces, and direct subclasses via SEOMETAREL. You can use type+name instead of uri (e.g., type="CLAS", name="ZCL_ORDER") for a where-used list without needing the full ADT URI.',
|
|
364
539
|
inputSchema: {
|
|
365
540
|
type: 'object',
|
|
366
541
|
properties: {
|
|
367
542
|
action: {
|
|
368
543
|
type: 'string',
|
|
369
|
-
enum: ['definition', 'references', 'completion'],
|
|
544
|
+
enum: ['definition', 'references', 'completion', 'hierarchy'],
|
|
370
545
|
description: 'Navigation action',
|
|
371
546
|
},
|
|
372
547
|
uri: {
|
|
@@ -388,18 +563,23 @@ export function getToolDefinitions(config, textSearchAvailable) {
|
|
|
388
563
|
},
|
|
389
564
|
required: ['action'],
|
|
390
565
|
},
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
566
|
+
});
|
|
567
|
+
// SAPQuery — only registered when free SQL is allowed
|
|
568
|
+
if (!config.blockFreeSQL) {
|
|
569
|
+
tools.push({
|
|
570
|
+
name: 'SAPQuery',
|
|
571
|
+
description: btp ? SAPQUERY_DESC_BTP : SAPQUERY_DESC_ONPREM,
|
|
572
|
+
inputSchema: {
|
|
573
|
+
type: 'object',
|
|
574
|
+
properties: {
|
|
575
|
+
sql: { type: 'string', description: 'ABAP SQL SELECT statement' },
|
|
576
|
+
maxRows: { type: 'number', description: 'Maximum rows (default 100)' },
|
|
577
|
+
},
|
|
578
|
+
required: ['sql'],
|
|
399
579
|
},
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
580
|
+
});
|
|
581
|
+
}
|
|
582
|
+
tools.push({
|
|
403
583
|
name: 'SAPLint',
|
|
404
584
|
description: 'Run local abaplint rules on ABAP source code. System-aware: auto-selects cloud or on-prem rules based on detected system type.\n\n' +
|
|
405
585
|
'Actions:\n' +
|
|
@@ -518,8 +698,86 @@ export function getToolDefinitions(config, textSearchAvailable) {
|
|
|
518
698
|
properties: {
|
|
519
699
|
action: {
|
|
520
700
|
type: 'string',
|
|
521
|
-
enum: [
|
|
522
|
-
|
|
701
|
+
enum: [
|
|
702
|
+
'features',
|
|
703
|
+
'probe',
|
|
704
|
+
'cache_stats',
|
|
705
|
+
'create_package',
|
|
706
|
+
'delete_package',
|
|
707
|
+
'flp_list_catalogs',
|
|
708
|
+
'flp_list_groups',
|
|
709
|
+
'flp_list_tiles',
|
|
710
|
+
'flp_create_catalog',
|
|
711
|
+
'flp_create_group',
|
|
712
|
+
'flp_create_tile',
|
|
713
|
+
'flp_add_tile_to_group',
|
|
714
|
+
'flp_delete_catalog',
|
|
715
|
+
],
|
|
716
|
+
description: 'Action to execute. Includes package lifecycle (create/delete) and FLP actions for catalogs/groups/tiles via PAGE_BUILDER_CUST OData service.',
|
|
717
|
+
},
|
|
718
|
+
name: {
|
|
719
|
+
type: 'string',
|
|
720
|
+
description: 'Package name (required for create_package and delete_package).',
|
|
721
|
+
},
|
|
722
|
+
description: {
|
|
723
|
+
type: 'string',
|
|
724
|
+
description: 'Package description (required for create_package).',
|
|
725
|
+
},
|
|
726
|
+
superPackage: {
|
|
727
|
+
type: 'string',
|
|
728
|
+
description: 'Parent package for create_package (defaults to empty root package).',
|
|
729
|
+
},
|
|
730
|
+
softwareComponent: {
|
|
731
|
+
type: 'string',
|
|
732
|
+
description: 'Software component for create_package (default: LOCAL).',
|
|
733
|
+
},
|
|
734
|
+
transportLayer: {
|
|
735
|
+
type: 'string',
|
|
736
|
+
description: 'Transport layer for create_package (optional; required by some transportable landscapes).',
|
|
737
|
+
},
|
|
738
|
+
packageType: {
|
|
739
|
+
type: 'string',
|
|
740
|
+
enum: ['development', 'structure', 'main'],
|
|
741
|
+
description: 'Package type for create_package (default: development).',
|
|
742
|
+
},
|
|
743
|
+
transport: {
|
|
744
|
+
type: 'string',
|
|
745
|
+
description: 'Optional transport request (corrNr) for create_package or delete_package.',
|
|
746
|
+
},
|
|
747
|
+
catalogId: {
|
|
748
|
+
type: 'string',
|
|
749
|
+
description: 'FLP catalog identifier — accepts either full ID (X-SAP-UI2-CATALOGPAGE:MY_CAT) or domain ID (MY_CAT). Required for flp_list_tiles, flp_create_tile, flp_add_tile_to_group, flp_delete_catalog.',
|
|
750
|
+
},
|
|
751
|
+
groupId: {
|
|
752
|
+
type: 'string',
|
|
753
|
+
description: 'FLP group/page identifier (required for flp_create_group, flp_add_tile_to_group).',
|
|
754
|
+
},
|
|
755
|
+
title: {
|
|
756
|
+
type: 'string',
|
|
757
|
+
description: 'Title for FLP catalog/group creation.',
|
|
758
|
+
},
|
|
759
|
+
domainId: {
|
|
760
|
+
type: 'string',
|
|
761
|
+
description: 'Domain ID for FLP catalog creation (e.g., ZARC1_SALES).',
|
|
762
|
+
},
|
|
763
|
+
tileInstanceId: {
|
|
764
|
+
type: 'string',
|
|
765
|
+
description: 'Tile instance ID in the source catalog (required for flp_add_tile_to_group).',
|
|
766
|
+
},
|
|
767
|
+
tile: {
|
|
768
|
+
type: 'object',
|
|
769
|
+
description: 'Tile definition for flp_create_tile.',
|
|
770
|
+
properties: {
|
|
771
|
+
id: { type: 'string', description: 'Tile ID (client-side logical id).' },
|
|
772
|
+
title: { type: 'string', description: 'Display title.' },
|
|
773
|
+
icon: { type: 'string', description: 'Optional icon URI.' },
|
|
774
|
+
semanticObject: { type: 'string', description: 'Semantic object for intent navigation.' },
|
|
775
|
+
semanticAction: { type: 'string', description: 'Semantic action for intent navigation.' },
|
|
776
|
+
url: { type: 'string', description: 'Optional target URL.' },
|
|
777
|
+
subtitle: { type: 'string', description: 'Optional subtitle text.' },
|
|
778
|
+
info: { type: 'string', description: 'Optional info text.' },
|
|
779
|
+
},
|
|
780
|
+
required: ['id', 'title', 'semanticObject', 'semanticAction'],
|
|
523
781
|
},
|
|
524
782
|
},
|
|
525
783
|
required: ['action'],
|
|
@@ -534,10 +792,42 @@ export function getToolDefinitions(config, textSearchAvailable) {
|
|
|
534
792
|
inputSchema: {
|
|
535
793
|
type: 'object',
|
|
536
794
|
properties: {
|
|
537
|
-
action: {
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
795
|
+
action: {
|
|
796
|
+
type: 'string',
|
|
797
|
+
enum: ['list', 'get', 'create', 'release', 'delete', 'reassign', 'release_recursive', 'check'],
|
|
798
|
+
description: 'list: show transports (defaults to current user, modifiable only). ' +
|
|
799
|
+
'get: fetch transport details including tasks and objects. ' +
|
|
800
|
+
'create: create a new transport request. ' +
|
|
801
|
+
'release: release a single transport or task. ' +
|
|
802
|
+
'delete: delete a transport (use recursive=true to delete tasks first). ' +
|
|
803
|
+
'reassign: change transport owner (use recursive=true for tasks too). ' +
|
|
804
|
+
'release_recursive: release all unreleased tasks first, then the transport itself. ' +
|
|
805
|
+
'check: check if a transport is needed for a package/object (requires type, name, package).',
|
|
806
|
+
},
|
|
807
|
+
id: {
|
|
808
|
+
type: 'string',
|
|
809
|
+
description: 'Transport request ID, e.g. A4HK900123 (required for get/release/delete/reassign/release_recursive)',
|
|
810
|
+
},
|
|
811
|
+
description: { type: 'string', description: 'Transport description text (required for create)' },
|
|
812
|
+
name: { type: 'string', description: 'Object name (for check action)' },
|
|
813
|
+
package: { type: 'string', description: 'Package name (for check action)' },
|
|
814
|
+
user: {
|
|
815
|
+
type: 'string',
|
|
816
|
+
description: 'SAP username to filter by (for list). Defaults to the current SAP user. Use "*" to list all users.',
|
|
817
|
+
},
|
|
818
|
+
status: {
|
|
819
|
+
type: 'string',
|
|
820
|
+
description: 'Transport status filter (for list). D=modifiable (default), R=released, "*"=all statuses.',
|
|
821
|
+
},
|
|
822
|
+
type: {
|
|
823
|
+
type: 'string',
|
|
824
|
+
description: 'For create: transport type K=Workbench (default), W=Customizing, T=Transport of Copies. For check: object type (PROG, CLAS, DDLS, etc.)',
|
|
825
|
+
},
|
|
826
|
+
owner: { type: 'string', description: 'New owner SAP username (required for reassign)' },
|
|
827
|
+
recursive: {
|
|
828
|
+
type: 'boolean',
|
|
829
|
+
description: 'Apply recursively to child tasks (for delete/reassign). release_recursive always recurses.',
|
|
830
|
+
},
|
|
541
831
|
},
|
|
542
832
|
required: ['action'],
|
|
543
833
|
},
|