arc-1 1.5.2 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (472) hide show
  1. package/README.md +26 -16
  2. package/bin/arc1-source.js +83 -0
  3. package/dist/adt/accept-fallback.d.ts +4 -0
  4. package/dist/adt/accept-fallback.d.ts.map +1 -0
  5. package/dist/adt/accept-fallback.js +27 -0
  6. package/dist/adt/accept-fallback.js.map +1 -0
  7. package/dist/adt/api-release.d.ts +40 -0
  8. package/dist/adt/api-release.d.ts.map +1 -0
  9. package/dist/adt/api-release.js +224 -0
  10. package/dist/adt/api-release.js.map +1 -0
  11. package/dist/adt/application-log.d.ts +36 -0
  12. package/dist/adt/application-log.d.ts.map +1 -0
  13. package/dist/adt/application-log.js +143 -0
  14. package/dist/adt/application-log.js.map +1 -0
  15. package/dist/adt/authorization-trace.d.ts.map +1 -1
  16. package/dist/adt/authorization-trace.js +2 -1
  17. package/dist/adt/authorization-trace.js.map +1 -1
  18. package/dist/adt/class-structure.d.ts +2 -1
  19. package/dist/adt/class-structure.d.ts.map +1 -1
  20. package/dist/adt/class-structure.js +28 -10
  21. package/dist/adt/class-structure.js.map +1 -1
  22. package/dist/adt/client.d.ts +12 -6
  23. package/dist/adt/client.d.ts.map +1 -1
  24. package/dist/adt/client.js +32 -49
  25. package/dist/adt/client.js.map +1 -1
  26. package/dist/adt/codeintel.d.ts +9 -23
  27. package/dist/adt/codeintel.d.ts.map +1 -1
  28. package/dist/adt/codeintel.js +14 -34
  29. package/dist/adt/codeintel.js.map +1 -1
  30. package/dist/adt/ddic-xml.d.ts +5 -3
  31. package/dist/adt/ddic-xml.d.ts.map +1 -1
  32. package/dist/adt/ddic-xml.js +14 -0
  33. package/dist/adt/ddic-xml.js.map +1 -1
  34. package/dist/adt/devtools.d.ts +8 -1
  35. package/dist/adt/devtools.d.ts.map +1 -1
  36. package/dist/adt/devtools.js +94 -40
  37. package/dist/adt/devtools.js.map +1 -1
  38. package/dist/adt/diagnostics.d.ts +2 -0
  39. package/dist/adt/diagnostics.d.ts.map +1 -1
  40. package/dist/adt/diagnostics.js +10 -8
  41. package/dist/adt/diagnostics.js.map +1 -1
  42. package/dist/adt/enhancement-impl.d.ts +125 -0
  43. package/dist/adt/enhancement-impl.d.ts.map +1 -0
  44. package/dist/adt/enhancement-impl.js +408 -0
  45. package/dist/adt/enhancement-impl.js.map +1 -0
  46. package/dist/adt/enhancements.d.ts.map +1 -1
  47. package/dist/adt/enhancements.js +4 -2
  48. package/dist/adt/enhancements.js.map +1 -1
  49. package/dist/adt/enho-filter.d.ts +49 -0
  50. package/dist/adt/enho-filter.d.ts.map +1 -0
  51. package/dist/adt/enho-filter.js +229 -0
  52. package/dist/adt/enho-filter.js.map +1 -0
  53. package/dist/adt/errors.d.ts +5 -1
  54. package/dist/adt/errors.d.ts.map +1 -1
  55. package/dist/adt/errors.js +32 -8
  56. package/dist/adt/errors.js.map +1 -1
  57. package/dist/adt/features.d.ts +3 -9
  58. package/dist/adt/features.d.ts.map +1 -1
  59. package/dist/adt/features.js +24 -8
  60. package/dist/adt/features.js.map +1 -1
  61. package/dist/adt/feed-schema.d.ts +32 -0
  62. package/dist/adt/feed-schema.d.ts.map +1 -0
  63. package/dist/adt/feed-schema.js +123 -0
  64. package/dist/adt/feed-schema.js.map +1 -0
  65. package/dist/adt/fm-parameter-docs.d.ts +7 -0
  66. package/dist/adt/fm-parameter-docs.d.ts.map +1 -0
  67. package/dist/adt/fm-parameter-docs.js +134 -0
  68. package/dist/adt/fm-parameter-docs.js.map +1 -0
  69. package/dist/adt/fm-signature.d.ts +8 -1
  70. package/dist/adt/fm-signature.d.ts.map +1 -1
  71. package/dist/adt/fm-signature.js +37 -28
  72. package/dist/adt/fm-signature.js.map +1 -1
  73. package/dist/adt/http-deadline.d.ts.map +1 -1
  74. package/dist/adt/http-deadline.js +4 -1
  75. package/dist/adt/http-deadline.js.map +1 -1
  76. package/dist/adt/http-retry-after.d.ts +20 -0
  77. package/dist/adt/http-retry-after.d.ts.map +1 -0
  78. package/dist/adt/http-retry-after.js +37 -0
  79. package/dist/adt/http-retry-after.js.map +1 -0
  80. package/dist/adt/http.d.ts +7 -20
  81. package/dist/adt/http.d.ts.map +1 -1
  82. package/dist/adt/http.js +112 -135
  83. package/dist/adt/http.js.map +1 -1
  84. package/dist/adt/include-expansion.d.ts +143 -0
  85. package/dist/adt/include-expansion.d.ts.map +1 -0
  86. package/dist/adt/include-expansion.js +475 -0
  87. package/dist/adt/include-expansion.js.map +1 -0
  88. package/dist/adt/internal-data-operations.d.ts +3 -3
  89. package/dist/adt/internal-data-operations.d.ts.map +1 -1
  90. package/dist/adt/internal-data-operations.js +9 -2
  91. package/dist/adt/internal-data-operations.js.map +1 -1
  92. package/dist/adt/legacy-content-handler.d.ts +2 -0
  93. package/dist/adt/legacy-content-handler.d.ts.map +1 -1
  94. package/dist/adt/legacy-content-handler.js +13 -1
  95. package/dist/adt/legacy-content-handler.js.map +1 -1
  96. package/dist/adt/package-contents.d.ts +5 -0
  97. package/dist/adt/package-contents.d.ts.map +1 -1
  98. package/dist/adt/package-contents.js +31 -0
  99. package/dist/adt/package-contents.js.map +1 -1
  100. package/dist/adt/rap-generate.d.ts +2 -4
  101. package/dist/adt/rap-generate.d.ts.map +1 -1
  102. package/dist/adt/rap-generate.js +2 -4
  103. package/dist/adt/rap-generate.js.map +1 -1
  104. package/dist/adt/revision-feed.d.ts +8 -0
  105. package/dist/adt/revision-feed.d.ts.map +1 -0
  106. package/dist/adt/revision-feed.js +108 -0
  107. package/dist/adt/revision-feed.js.map +1 -0
  108. package/dist/adt/security-session-gate.d.ts +23 -0
  109. package/dist/adt/security-session-gate.d.ts.map +1 -0
  110. package/dist/adt/security-session-gate.js +56 -0
  111. package/dist/adt/security-session-gate.js.map +1 -0
  112. package/dist/adt/server-driven.d.ts +12 -1
  113. package/dist/adt/server-driven.d.ts.map +1 -1
  114. package/dist/adt/server-driven.js +22 -4
  115. package/dist/adt/server-driven.js.map +1 -1
  116. package/dist/adt/source-diff.d.ts +4 -1
  117. package/dist/adt/source-diff.d.ts.map +1 -1
  118. package/dist/adt/source-diff.js +5 -3
  119. package/dist/adt/source-diff.js.map +1 -1
  120. package/dist/adt/stored-text/chunks.d.ts +8 -0
  121. package/dist/adt/stored-text/chunks.d.ts.map +1 -0
  122. package/dist/adt/stored-text/chunks.js +55 -0
  123. package/dist/adt/stored-text/chunks.js.map +1 -0
  124. package/dist/adt/stored-text/decoder.d.ts +31 -0
  125. package/dist/adt/stored-text/decoder.d.ts.map +1 -0
  126. package/dist/adt/stored-text/decoder.js +319 -0
  127. package/dist/adt/stored-text/decoder.js.map +1 -0
  128. package/dist/adt/stored-text/errors.d.ts +10 -0
  129. package/dist/adt/stored-text/errors.d.ts.map +1 -0
  130. package/dist/adt/stored-text/errors.js +10 -0
  131. package/dist/adt/stored-text/errors.js.map +1 -0
  132. package/dist/adt/stored-text/index.d.ts +7 -0
  133. package/dist/adt/stored-text/index.d.ts.map +1 -0
  134. package/dist/adt/stored-text/index.js +6 -0
  135. package/dist/adt/stored-text/index.js.map +1 -0
  136. package/dist/adt/stored-text/key.d.ts +3 -0
  137. package/dist/adt/stored-text/key.d.ts.map +1 -0
  138. package/dist/adt/stored-text/key.js +23 -0
  139. package/dist/adt/stored-text/key.js.map +1 -0
  140. package/dist/adt/stored-text/reader.d.ts +52 -0
  141. package/dist/adt/stored-text/reader.d.ts.map +1 -0
  142. package/dist/adt/stored-text/reader.js +142 -0
  143. package/dist/adt/stored-text/reader.js.map +1 -0
  144. package/dist/adt/stored-text/source.d.ts +5 -0
  145. package/dist/adt/stored-text/source.d.ts.map +1 -0
  146. package/dist/adt/stored-text/source.js +284 -0
  147. package/dist/adt/stored-text/source.js.map +1 -0
  148. package/dist/adt/stored-text/types.d.ts +38 -0
  149. package/dist/adt/stored-text/types.d.ts.map +1 -0
  150. package/dist/adt/stored-text/types.js +2 -0
  151. package/dist/adt/stored-text/types.js.map +1 -0
  152. package/dist/adt/structure-hierarchy.d.ts.map +1 -1
  153. package/dist/adt/structure-hierarchy.js +11 -27
  154. package/dist/adt/structure-hierarchy.js.map +1 -1
  155. package/dist/adt/syntax-batch.d.ts +66 -0
  156. package/dist/adt/syntax-batch.d.ts.map +1 -0
  157. package/dist/adt/syntax-batch.js +115 -0
  158. package/dist/adt/syntax-batch.js.map +1 -0
  159. package/dist/adt/table-index.d.ts +23 -0
  160. package/dist/adt/table-index.d.ts.map +1 -0
  161. package/dist/adt/table-index.js +69 -0
  162. package/dist/adt/table-index.js.map +1 -0
  163. package/dist/adt/table-query.d.ts +4 -2
  164. package/dist/adt/table-query.d.ts.map +1 -1
  165. package/dist/adt/table-query.js +37 -10
  166. package/dist/adt/table-query.js.map +1 -1
  167. package/dist/adt/table-settings.d.ts +67 -0
  168. package/dist/adt/table-settings.d.ts.map +1 -0
  169. package/dist/adt/table-settings.js +207 -0
  170. package/dist/adt/table-settings.js.map +1 -0
  171. package/dist/adt/text-elements.d.ts +7 -1
  172. package/dist/adt/text-elements.d.ts.map +1 -1
  173. package/dist/adt/text-elements.js +67 -25
  174. package/dist/adt/text-elements.js.map +1 -1
  175. package/dist/adt/text-part-changes.d.ts +4 -0
  176. package/dist/adt/text-part-changes.d.ts.map +1 -0
  177. package/dist/adt/text-part-changes.js +43 -0
  178. package/dist/adt/text-part-changes.js.map +1 -0
  179. package/dist/adt/transport-diff.d.ts +16 -25
  180. package/dist/adt/transport-diff.d.ts.map +1 -1
  181. package/dist/adt/transport-diff.js +201 -103
  182. package/dist/adt/transport-diff.js.map +1 -1
  183. package/dist/adt/transport-review-budget.d.ts +15 -0
  184. package/dist/adt/transport-review-budget.d.ts.map +1 -0
  185. package/dist/adt/transport-review-budget.js +57 -0
  186. package/dist/adt/transport-review-budget.js.map +1 -0
  187. package/dist/adt/transport.d.ts +1 -1
  188. package/dist/adt/transport.d.ts.map +1 -1
  189. package/dist/adt/transport.js +4 -3
  190. package/dist/adt/transport.js.map +1 -1
  191. package/dist/adt/types.d.ts +10 -4
  192. package/dist/adt/types.d.ts.map +1 -1
  193. package/dist/adt/user-agent.d.ts +1 -1
  194. package/dist/adt/where-used-native.d.ts +22 -0
  195. package/dist/adt/where-used-native.d.ts.map +1 -0
  196. package/dist/adt/where-used-native.js +111 -0
  197. package/dist/adt/where-used-native.js.map +1 -0
  198. package/dist/adt/xml-parser.d.ts +6 -36
  199. package/dist/adt/xml-parser.d.ts.map +1 -1
  200. package/dist/adt/xml-parser.js +28 -235
  201. package/dist/adt/xml-parser.js.map +1 -1
  202. package/dist/aff/validator.d.ts.map +1 -1
  203. package/dist/aff/validator.js +8 -2
  204. package/dist/aff/validator.js.map +1 -1
  205. package/dist/authz/policy.d.ts.map +1 -1
  206. package/dist/authz/policy.js +10 -2
  207. package/dist/authz/policy.js.map +1 -1
  208. package/dist/cache/sqlite-driver.d.ts +24 -0
  209. package/dist/cache/sqlite-driver.d.ts.map +1 -0
  210. package/dist/cache/sqlite-driver.js +59 -0
  211. package/dist/cache/sqlite-driver.js.map +1 -0
  212. package/dist/cache/sqlite.d.ts +4 -2
  213. package/dist/cache/sqlite.d.ts.map +1 -1
  214. package/dist/cache/sqlite.js +5 -4
  215. package/dist/cache/sqlite.js.map +1 -1
  216. package/dist/cli.js +4 -1
  217. package/dist/cli.js.map +1 -1
  218. package/dist/context/grep.d.ts +2 -0
  219. package/dist/context/grep.d.ts.map +1 -1
  220. package/dist/context/grep.js +8 -7
  221. package/dist/context/grep.js.map +1 -1
  222. package/dist/context/line-range.d.ts +6 -0
  223. package/dist/context/line-range.d.ts.map +1 -0
  224. package/dist/context/line-range.js +23 -0
  225. package/dist/context/line-range.js.map +1 -0
  226. package/dist/extract-sap-cookies.js +1 -0
  227. package/dist/extract-sap-cookies.js.map +1 -1
  228. package/dist/handlers/activate.d.ts.map +1 -1
  229. package/dist/handlers/activate.js +69 -7
  230. package/dist/handlers/activate.js.map +1 -1
  231. package/dist/handlers/activation-results.d.ts.map +1 -1
  232. package/dist/handlers/activation-results.js +9 -1
  233. package/dist/handlers/activation-results.js.map +1 -1
  234. package/dist/handlers/api-release-fields.d.ts +23 -0
  235. package/dist/handlers/api-release-fields.d.ts.map +1 -0
  236. package/dist/handlers/api-release-fields.js +21 -0
  237. package/dist/handlers/api-release-fields.js.map +1 -0
  238. package/dist/handlers/application-log-input.d.ts +32 -0
  239. package/dist/handlers/application-log-input.d.ts.map +1 -0
  240. package/dist/handlers/application-log-input.js +34 -0
  241. package/dist/handlers/application-log-input.js.map +1 -0
  242. package/dist/handlers/application-log.d.ts +4 -0
  243. package/dist/handlers/application-log.d.ts.map +1 -0
  244. package/dist/handlers/application-log.js +14 -0
  245. package/dist/handlers/application-log.js.map +1 -0
  246. package/dist/handlers/cds-hints.d.ts +2 -2
  247. package/dist/handlers/cds-hints.d.ts.map +1 -1
  248. package/dist/handlers/cds-hints.js +21 -63
  249. package/dist/handlers/cds-hints.js.map +1 -1
  250. package/dist/handlers/context.d.ts.map +1 -1
  251. package/dist/handlers/context.js +7 -3
  252. package/dist/handlers/context.js.map +1 -1
  253. package/dist/handlers/diagnose.d.ts.map +1 -1
  254. package/dist/handlers/diagnose.js +10 -1
  255. package/dist/handlers/diagnose.js.map +1 -1
  256. package/dist/handlers/dispatch.d.ts.map +1 -1
  257. package/dist/handlers/dispatch.js +54 -9
  258. package/dist/handlers/dispatch.js.map +1 -1
  259. package/dist/handlers/dump-filter-inputs.d.ts +38 -0
  260. package/dist/handlers/dump-filter-inputs.d.ts.map +1 -0
  261. package/dist/handlers/dump-filter-inputs.js +44 -0
  262. package/dist/handlers/dump-filter-inputs.js.map +1 -0
  263. package/dist/handlers/expanded-read.d.ts +24 -0
  264. package/dist/handlers/expanded-read.d.ts.map +1 -0
  265. package/dist/handlers/expanded-read.js +56 -0
  266. package/dist/handlers/expanded-read.js.map +1 -0
  267. package/dist/handlers/feature-cache.d.ts +11 -3
  268. package/dist/handlers/feature-cache.d.ts.map +1 -1
  269. package/dist/handlers/feature-cache.js +57 -3
  270. package/dist/handlers/feature-cache.js.map +1 -1
  271. package/dist/handlers/function-parameter-language.d.ts +5 -0
  272. package/dist/handlers/function-parameter-language.d.ts.map +1 -0
  273. package/dist/handlers/function-parameter-language.js +19 -0
  274. package/dist/handlers/function-parameter-language.js.map +1 -0
  275. package/dist/handlers/function-processing.d.ts +5 -0
  276. package/dist/handlers/function-processing.d.ts.map +1 -1
  277. package/dist/handlers/function-processing.js +5 -0
  278. package/dist/handlers/function-processing.js.map +1 -1
  279. package/dist/handlers/hyperfocused.d.ts +1 -1
  280. package/dist/handlers/hyperfocused.d.ts.map +1 -1
  281. package/dist/handlers/hyperfocused.js +2 -1
  282. package/dist/handlers/hyperfocused.js.map +1 -1
  283. package/dist/handlers/long-text-input.d.ts +113 -0
  284. package/dist/handlers/long-text-input.d.ts.map +1 -0
  285. package/dist/handlers/long-text-input.js +113 -0
  286. package/dist/handlers/long-text-input.js.map +1 -0
  287. package/dist/handlers/long-text.d.ts +5 -0
  288. package/dist/handlers/long-text.d.ts.map +1 -0
  289. package/dist/handlers/long-text.js +122 -0
  290. package/dist/handlers/long-text.js.map +1 -0
  291. package/dist/handlers/manage.d.ts.map +1 -1
  292. package/dist/handlers/manage.js +7 -23
  293. package/dist/handlers/manage.js.map +1 -1
  294. package/dist/handlers/navigate.d.ts.map +1 -1
  295. package/dist/handlers/navigate.js +8 -3
  296. package/dist/handlers/navigate.js.map +1 -1
  297. package/dist/handlers/object-types.d.ts.map +1 -1
  298. package/dist/handlers/object-types.js +31 -7
  299. package/dist/handlers/object-types.js.map +1 -1
  300. package/dist/handlers/query-input.d.ts +50 -0
  301. package/dist/handlers/query-input.d.ts.map +1 -0
  302. package/dist/handlers/query-input.js +59 -0
  303. package/dist/handlers/query-input.js.map +1 -0
  304. package/dist/handlers/query-tool.d.ts +11 -0
  305. package/dist/handlers/query-tool.d.ts.map +1 -0
  306. package/dist/handlers/query-tool.js +99 -0
  307. package/dist/handlers/query-tool.js.map +1 -0
  308. package/dist/handlers/query.d.ts +1 -1
  309. package/dist/handlers/query.d.ts.map +1 -1
  310. package/dist/handlers/query.js +7 -1
  311. package/dist/handlers/query.js.map +1 -1
  312. package/dist/handlers/read.d.ts +1 -0
  313. package/dist/handlers/read.d.ts.map +1 -1
  314. package/dist/handlers/read.js +119 -14
  315. package/dist/handlers/read.js.map +1 -1
  316. package/dist/handlers/schemas.d.ts +57 -4
  317. package/dist/handlers/schemas.d.ts.map +1 -1
  318. package/dist/handlers/schemas.js +140 -17
  319. package/dist/handlers/schemas.js.map +1 -1
  320. package/dist/handlers/search.d.ts.map +1 -1
  321. package/dist/handlers/search.js +10 -6
  322. package/dist/handlers/search.js.map +1 -1
  323. package/dist/handlers/syntax.d.ts.map +1 -1
  324. package/dist/handlers/syntax.js +8 -0
  325. package/dist/handlers/syntax.js.map +1 -1
  326. package/dist/handlers/table-type-fields.d.ts +33 -0
  327. package/dist/handlers/table-type-fields.d.ts.map +1 -0
  328. package/dist/handlers/table-type-fields.js +22 -0
  329. package/dist/handlers/table-type-fields.js.map +1 -0
  330. package/dist/handlers/tool-descriptions.d.ts.map +1 -1
  331. package/dist/handlers/tool-descriptions.js +8 -3
  332. package/dist/handlers/tool-descriptions.js.map +1 -1
  333. package/dist/handlers/tool-registry.d.ts +5 -5
  334. package/dist/handlers/tool-registry.d.ts.map +1 -1
  335. package/dist/handlers/tool-registry.js +10 -7
  336. package/dist/handlers/tool-registry.js.map +1 -1
  337. package/dist/handlers/tools.d.ts +1 -1
  338. package/dist/handlers/tools.d.ts.map +1 -1
  339. package/dist/handlers/tools.js +99 -101
  340. package/dist/handlers/tools.js.map +1 -1
  341. package/dist/handlers/transport-review.d.ts +5 -0
  342. package/dist/handlers/transport-review.d.ts.map +1 -0
  343. package/dist/handlers/transport-review.js +108 -0
  344. package/dist/handlers/transport-review.js.map +1 -0
  345. package/dist/handlers/transport.d.ts.map +1 -1
  346. package/dist/handlers/transport.js +3 -58
  347. package/dist/handlers/transport.js.map +1 -1
  348. package/dist/handlers/where-used-details.d.ts +28 -0
  349. package/dist/handlers/where-used-details.d.ts.map +1 -0
  350. package/dist/handlers/where-used-details.js +67 -0
  351. package/dist/handlers/where-used-details.js.map +1 -0
  352. package/dist/handlers/where-used.d.ts +8 -3
  353. package/dist/handlers/where-used.d.ts.map +1 -1
  354. package/dist/handlers/where-used.js +40 -18
  355. package/dist/handlers/where-used.js.map +1 -1
  356. package/dist/handlers/write/create.d.ts.map +1 -1
  357. package/dist/handlers/write/create.js +69 -27
  358. package/dist/handlers/write/create.js.map +1 -1
  359. package/dist/handlers/write/rap.d.ts.map +1 -1
  360. package/dist/handlers/write/rap.js +2 -4
  361. package/dist/handlers/write/rap.js.map +1 -1
  362. package/dist/handlers/write/table-settings.d.ts +5 -0
  363. package/dist/handlers/write/table-settings.d.ts.map +1 -0
  364. package/dist/handlers/write/table-settings.js +27 -0
  365. package/dist/handlers/write/table-settings.js.map +1 -0
  366. package/dist/handlers/write/update-delete.d.ts +1 -1
  367. package/dist/handlers/write/update-delete.d.ts.map +1 -1
  368. package/dist/handlers/write/update-delete.js +32 -12
  369. package/dist/handlers/write/update-delete.js.map +1 -1
  370. package/dist/handlers/write-helpers.d.ts +4 -1
  371. package/dist/handlers/write-helpers.d.ts.map +1 -1
  372. package/dist/handlers/write-helpers.js +68 -8
  373. package/dist/handlers/write-helpers.js.map +1 -1
  374. package/dist/handlers/write.d.ts.map +1 -1
  375. package/dist/handlers/write.js +6 -10
  376. package/dist/handlers/write.js.map +1 -1
  377. package/dist/server/audit.d.ts +4 -0
  378. package/dist/server/audit.d.ts.map +1 -1
  379. package/dist/server/audit.js +49 -2
  380. package/dist/server/audit.js.map +1 -1
  381. package/dist/server/config.d.ts.map +1 -1
  382. package/dist/server/config.js +43 -2
  383. package/dist/server/config.js.map +1 -1
  384. package/dist/server/destination-discovery.d.ts +12 -2
  385. package/dist/server/destination-discovery.d.ts.map +1 -1
  386. package/dist/server/destination-discovery.js +33 -7
  387. package/dist/server/destination-discovery.js.map +1 -1
  388. package/dist/server/destination-registry.d.ts +10 -6
  389. package/dist/server/destination-registry.d.ts.map +1 -1
  390. package/dist/server/destination-registry.js +38 -15
  391. package/dist/server/destination-registry.js.map +1 -1
  392. package/dist/server/http-request-body.d.ts +4 -0
  393. package/dist/server/http-request-body.d.ts.map +1 -0
  394. package/dist/server/http-request-body.js +65 -0
  395. package/dist/server/http-request-body.js.map +1 -0
  396. package/dist/server/http.d.ts +5 -2
  397. package/dist/server/http.d.ts.map +1 -1
  398. package/dist/server/http.js +71 -9
  399. package/dist/server/http.js.map +1 -1
  400. package/dist/server/multi-target-authorization-audit.d.ts +5 -0
  401. package/dist/server/multi-target-authorization-audit.d.ts.map +1 -0
  402. package/dist/server/multi-target-authorization-audit.js +18 -0
  403. package/dist/server/multi-target-authorization-audit.js.map +1 -0
  404. package/dist/server/multi-target-authorization-startup.d.ts +8 -0
  405. package/dist/server/multi-target-authorization-startup.d.ts.map +1 -0
  406. package/dist/server/multi-target-authorization-startup.js +38 -0
  407. package/dist/server/multi-target-authorization-startup.js.map +1 -0
  408. package/dist/server/multi-target-authorization.d.ts +29 -0
  409. package/dist/server/multi-target-authorization.d.ts.map +1 -0
  410. package/dist/server/multi-target-authorization.js +97 -0
  411. package/dist/server/multi-target-authorization.js.map +1 -0
  412. package/dist/server/multi-target-bearer-auth.d.ts +5 -0
  413. package/dist/server/multi-target-bearer-auth.d.ts.map +1 -0
  414. package/dist/server/multi-target-bearer-auth.js +39 -0
  415. package/dist/server/multi-target-bearer-auth.js.map +1 -0
  416. package/dist/server/multi-target-catalog-enforced.d.ts +29 -0
  417. package/dist/server/multi-target-catalog-enforced.d.ts.map +1 -0
  418. package/dist/server/multi-target-catalog-enforced.js +142 -0
  419. package/dist/server/multi-target-catalog-enforced.js.map +1 -0
  420. package/dist/server/multi-target-catalog-projection.d.ts +7 -0
  421. package/dist/server/multi-target-catalog-projection.d.ts.map +1 -0
  422. package/dist/server/multi-target-catalog-projection.js +52 -0
  423. package/dist/server/multi-target-catalog-projection.js.map +1 -0
  424. package/dist/server/multi-target-feature-state.d.ts +0 -2
  425. package/dist/server/multi-target-feature-state.d.ts.map +1 -1
  426. package/dist/server/multi-target-feature-state.js +0 -19
  427. package/dist/server/multi-target-feature-state.js.map +1 -1
  428. package/dist/server/multi-target-identity.d.ts +3 -0
  429. package/dist/server/multi-target-identity.d.ts.map +1 -1
  430. package/dist/server/multi-target-identity.js +9 -0
  431. package/dist/server/multi-target-identity.js.map +1 -1
  432. package/dist/server/multi-target-request-projection.d.ts +14 -0
  433. package/dist/server/multi-target-request-projection.d.ts.map +1 -0
  434. package/dist/server/multi-target-request-projection.js +16 -0
  435. package/dist/server/multi-target-request-projection.js.map +1 -0
  436. package/dist/server/multi-target-runtime.d.ts.map +1 -1
  437. package/dist/server/multi-target-runtime.js +1 -0
  438. package/dist/server/multi-target-runtime.js.map +1 -1
  439. package/dist/server/multi-target-server.d.ts +4 -1
  440. package/dist/server/multi-target-server.d.ts.map +1 -1
  441. package/dist/server/multi-target-server.js +111 -11
  442. package/dist/server/multi-target-server.js.map +1 -1
  443. package/dist/server/multi-target-tools.d.ts +1 -1
  444. package/dist/server/multi-target-tools.d.ts.map +1 -1
  445. package/dist/server/multi-target-tools.js +22 -15
  446. package/dist/server/multi-target-tools.js.map +1 -1
  447. package/dist/server/private-mcp-response.d.ts +4 -0
  448. package/dist/server/private-mcp-response.d.ts.map +1 -0
  449. package/dist/server/private-mcp-response.js +14 -0
  450. package/dist/server/private-mcp-response.js.map +1 -0
  451. package/dist/server/server-cache.d.ts +5 -0
  452. package/dist/server/server-cache.d.ts.map +1 -0
  453. package/dist/server/server-cache.js +30 -0
  454. package/dist/server/server-cache.js.map +1 -0
  455. package/dist/server/server.d.ts +7 -21
  456. package/dist/server/server.d.ts.map +1 -1
  457. package/dist/server/server.js +60 -89
  458. package/dist/server/server.js.map +1 -1
  459. package/dist/server/sinks/btp-auditlog.d.ts.map +1 -1
  460. package/dist/server/sinks/btp-auditlog.js +4 -1
  461. package/dist/server/sinks/btp-auditlog.js.map +1 -1
  462. package/dist/server/tool-auth.d.ts +1 -1
  463. package/dist/server/tool-auth.d.ts.map +1 -1
  464. package/dist/server/tool-auth.js +24 -4
  465. package/dist/server/tool-auth.js.map +1 -1
  466. package/dist/server/types.d.ts +7 -0
  467. package/dist/server/types.d.ts.map +1 -1
  468. package/dist/server/types.js +4 -0
  469. package/dist/server/types.js.map +1 -1
  470. package/dist/version.d.ts +1 -1
  471. package/dist/version.js +1 -1
  472. package/package.json +21 -13
@@ -3,12 +3,16 @@ import { ATC_BATCH_MAX_OBJECTS, ATC_BATCH_NAME_MAX_LENGTH, ATC_BATCH_NAME_PATTER
3
3
  import { KTD_SHORT_TEXT_MAX_LENGTH } from '../adt/ddic-xml.js';
4
4
  import { TEXT_ELEMENT_PARTS } from '../adt/text-elements.js';
5
5
  import { MAX_GREP_PATTERN_LENGTH } from '../context/grep.js';
6
+ import { API_RELEASE_FIELDS } from './api-release-fields.js';
6
7
  import * as DtelFields from './data-element-fields.js';
7
8
  import { SAPDIAGNOSE_ADDITIONAL_INPUTS } from './diagnose-fields.js';
9
+ import { dumpFiltersJson } from './dump-filter-inputs.js';
8
10
  import * as FuncProcessing from './function-processing.js';
9
11
  import { getHyperfocusedToolDefinition } from './hyperfocused.js';
10
12
  import { CLASS_WRITE_INCLUDES } from './object-types.js';
13
+ import { createQueryDefinition } from './query-tool.js';
11
14
  import { addLiveRelationsDefinition } from './relation-tool.js';
15
+ import { TABLE_TYPE_BATCH_TOOL_PROPERTIES, TABLE_TYPE_DIMENSION_TOOL_PROPERTIES, TABLE_TYPE_TOOL_PROPERTIES, } from './table-type-fields.js';
12
16
  import { SAPWRITE_DESC_BTP, SAPWRITE_DESC_ONPREM } from './tool-descriptions.js';
13
17
  import { ATC_BATCH_TYPES_BTP, isGitToolVisible, SAPCONTEXT_TYPES_BTP, SAPCONTEXT_TYPES_ONPREM, SAPREAD_TYPES_BTP, SAPREAD_TYPES_ONPREM, SAPWRITE_TYPES_BTP, SAPWRITE_TYPES_ONPREM, } from './tool-registry.js';
14
18
  import { BATCH_CREATE_MAX_OBJECTS } from './write/batch-results.js';
@@ -41,12 +45,12 @@ const TOOL_ANNOTATIONS = {
41
45
  function isBtpMode(config) {
42
46
  return config.systemType === 'btp';
43
47
  }
44
- const SAPREAD_DESC_ONPREM = 'Read SAP ABAP source, metadata or syntax-check results. For purpose, explanations, specs, reviews or pre-change context, prefer SAPContext first. DDIC metadata: omit format (default text); structured is CLAS-only for ordinary reads. ' +
45
- 'Types: PROG, CLAS, INTF, FUNC, FUGR (expand_includes=true for all include sources), INCL, DDLS, DCLS, DDLX, BDEF, SRVD, SRVB, SKTD/KTD (KTD aliases SKTD), TABL (covers both transparent tables AND DDIC structures — no separate STRU type), TTYP, VIEW, DOMA, DTEL, TRAN, TABLE_CONTENTS (single-column filter), TABLE_QUERY (multi-column WHERE via the freestyle endpoint; gated by allowDataPreview; CDS views need SAP_BASIS 752+), DEVC, SOBJ (BOR — method param reads one method), SYSTEM, COMPONENTS, MSAG, TEXT_ELEMENTS, VARIANTS, BSP, BSP_DEPLOY, API_STATE (contract states C0-C4; objectType for non-class), INACTIVE_OBJECTS (no name; pending-activation list), AUTH, FEATURE_TOGGLE, ENHO, VERSIONS, VERSION_SOURCE. AUTH/FEATURE_TOGGLE/ENHO/VERSIONS/VERSION_SOURCE are on-prem only. ' +
46
- 'SYNTAX: read-only SAP check (objectType+name, optional source for unsaved text). CLAS: method="*" for signatures, method="NAME" for one body, or grep. Global class declaration/implementation: MAIN (omit include). definitions/implementations contain local helpers. ' +
47
- 'grep: case-insensitive regex; returns matching lines, context and line numbers, with owning class/method for CLAS.';
48
+ const SAPREAD_DESC_ONPREM = 'Read SAP ABAP source, metadata and syntax results. ' +
49
+ 'For source purpose, explanations, specs, reviews or pre-change context, prefer SAPContext first. DDIC metadata: omit format (default text); structured is CLAS-only for ordinary reads. ' +
50
+ 'TABLE_QUERY: multi-column filters, data preview required; CDS needs SAP_BASIS 752+. TABLE_CONTENTS: single-column filter. INACTIVE_OBJECTS: no name. TABL/DTT: technical settings. ' +
51
+ 'SYNTAX: read-only SAP check (objectType+name, optional source for unsaved text). CLAS: method="*" for signatures, method="NAME" for one body, or grep. Global class declaration/implementation: MAIN (omit include). definitions/implementations contain local helpers.';
48
52
  const SAPREAD_DESC_BTP = 'Read SAP ABAP source, metadata or syntax-check results (BTP ABAP Environment). For purpose, explanations, specs, reviews or pre-change context, prefer SAPContext first. DDIC metadata: omit format (default text); structured is CLAS-only for ordinary reads. ' +
49
- 'Types: CLAS, INTF, FUNC (released/custom only), FUGR (released/custom only), DDLS (primary data model on BTP), DCLS, DDLX, BDEF, SRVD, SRVB, SKTD/KTD (KTD aliases SKTD), TABL (custom tables AND structures — no separate STRU type), DOMA, DTEL, TABLE_CONTENTS (custom tables + released CDS only; standard tables blocked), TABLE_QUERY (multi-column WHERE on custom tables + released CDS; needs SAP_BASIS 752+), DEVC, SYSTEM, COMPONENTS, MSAG (custom only), BSP, BSP_DEPLOY, API_STATE (contract states C0-C4; objectType for non-class), INACTIVE_OBJECTS (no name; pending-activation list). PROG/INCL/VIEW/TRAN/TEXT_ELEMENTS/VARIANTS and VERSIONS/VERSION_SOURCE are not available on BTP (use CLAS with IF_OO_ADT_CLASSRUN for console apps, DDLS for data models). ' +
53
+ 'Types: CLAS, INTF, FUNC (released/custom only), FUGR (released/custom only), DDLS (primary data model on BTP), DCLS, DDLX, BDEF, SRVD, SRVB, SKTD/KTD (KTD aliases SKTD), TABL (custom tables AND structures — no separate STRU type), TABL/DTT (technical settings), TTYP, DOMA, DTEL, TABLE_CONTENTS (custom tables + released CDS only; standard tables blocked), TABLE_QUERY (multi-column WHERE on custom tables + released CDS; needs SAP_BASIS 752+), DEVC, SYSTEM, COMPONENTS, MSAG (custom only), BSP, BSP_DEPLOY, API_STATE (contract states C0-C4; objectType for non-class), INACTIVE_OBJECTS (no name; pending-activation list), ENHO. PROG/INCL/VIEW/TRAN/TEXT_ELEMENTS/VARIANTS and VERSIONS/VERSION_SOURCE are not available on BTP (use CLAS with IF_OO_ADT_CLASSRUN for console apps, DDLS for data models). ' +
50
54
  'SYNTAX: read-only SAP check (objectType+name, optional source for unsaved text). CLAS: method="*" for signatures, method="NAME" for one body, or grep. Global class declaration/implementation: MAIN (omit include). definitions/implementations contain local helpers. ' +
51
55
  'grep: case-insensitive regex; returns matching lines, context and line numbers, with owning class/method for CLAS.';
52
56
  // ─── SAPContext Types ───────────────────────────────────────────────
@@ -70,15 +74,6 @@ const SAPCONTEXT_DESC_BTP = 'Primary tool for understanding ABAP/CDS objects bef
70
74
  'deps: target KTD when available + selected dependency contracts, derived from source (not SAP-native relationships or a complete inventory). Counts distinguish root candidates from recursive attempts. On BTP, CL_ABAP_*/IF_ABAP_* and custom Z/Y are included.\n' +
71
75
  'structure (TABL only): the DDIC include/append tree.\n\n' +
72
76
  'Full detail: docs_page SAPContext.';
73
- // ─── SAPQuery ───────────────────────────────────────────────────────
74
- const SAPQUERY_DIALECT_GUIDE = 'ADT freestyle ABAP SQL: one read-only SELECT. Use AS aliases, alias~field/alias~*, ASCENDING/DESCENDING, single-quoted literals (no @/:/? parameters), and maxRows (not TOP/LIMIT/OFFSET/FETCH). JOINs, GROUP BY, aggregates, UNION and subqueries work. CTEs, FULL JOIN, derived/window tables, INTERSECT/EXCEPT, comments, semicolons and schema prefixes do not. ARC-1 auto-chunks long literal IN-lists in plain projection SELECTs. ';
75
- const SAPQUERY_DESC_ONPREM = 'Query SAP tables with ABAP SQL; returns columns + rows. For reverse-engineering metadata: DD02L, DD03L, TADIR, TFDIR, SWOTLV. Unknown tables get suggestions. ' +
76
- SAPQUERY_DIALECT_GUIDE +
77
- 'For CDS consumers, do not scan DDDDLSRC/ACMDCLSRC/DDLXSRC_SRC; use SAPContext(action="impact", type="DDLS").';
78
- const SAPQUERY_DESC_BTP = 'Query BTP ABAP Environment with ABAP SQL; returns columns + rows. ' +
79
- SAPQUERY_DIALECT_GUIDE +
80
- 'BTP permits custom Z/Y tables and released CDS entities; standard tables are blocked. ' +
81
- 'Use released views such as I_LANGUAGE. Unknown tables get suggestions.';
82
77
  // ─── SAPSearch ──────────────────────────────────────────────────────
83
78
  const SAPSEARCH_DESC_ONPREM = 'Search for ABAP objects, exact object-directory entries, or source code. Modes:\n' +
84
79
  '1. Object search (default): name pattern with wildcards (*); returns type, name, package, description, ADT URI.\n' +
@@ -306,8 +301,10 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
306
301
  type: {
307
302
  type: 'string',
308
303
  enum: btp ? SAPREAD_TYPES_BTP : SAPREAD_TYPES_ONPREM,
309
- description: 'Object or metadata type. TABL includes DDIC structures; KTD aliases SKTD (Knowledge Transfer Documents). SYNTAX checks objectType+name. Server-driven objects use discovery-gated XML metadata and AFF JSON source (DTSC/DSFD/DTDC/DRTY use DDL text). DESD logical external schema; EVTB event binding; EVTO event object; CSNM CSN model; COTA communication target; DTSC static cache; DTDC dynamic cache; DSFD scalar function; UIAD launchpad descriptor; DRTY CDS type; APLO log object; SAJC/SAJT job catalog/template. Deprecated: MESSAGES→MSAG.' +
310
- (btp ? ' ENQU lock object as JSON.' : ' FTG2→FEATURE_TOGGLE. ENQU lock object as JSON.'),
304
+ description: 'Repository or metadata type. TABL includes structures. KTD aliases SKTD; MESSAGES aliases MSAG. ' +
305
+ (btp ? '' : 'FTG2 aliases FEATURE_TOGGLE. ') +
306
+ 'SYNTAX requires objectType+name. Server-driven: discovery-gated XML metadata, AFF JSON source; DTSC/DSFD/DTDC/DRTY use DDL text. ENQU: JSON. TABL/DTI: TABLE~INDEX, prefers pending JSON. ' +
307
+ 'DESD external schema; EVTB/EVTO event binding/object; CSNM CSN model; COTA communication target; DTSC/DTDC static/dynamic cache; DSFD scalar function; UIAD launchpad descriptor; DRTY CDS type; APLO log object; SAJC/SAJT job catalog/template.',
311
308
  },
312
309
  name: { type: 'string', description: 'Object name (e.g., ZTEST_PROGRAM, ZCL_ORDER, MARA)' },
313
310
  action: {
@@ -325,17 +322,16 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
325
322
  },
326
323
  fromLabel: {
327
324
  type: 'string',
328
- description: 'action="diff" optional display label for the OLD side in the summary and patch header, e.g. "DNT-6-6: Validate discounts (DS7K900123)". Does not affect source resolution.',
325
+ description: 'Diff OLD-side display label; does not change source resolution.',
329
326
  },
330
327
  toLabel: {
331
328
  type: 'string',
332
- description: 'action="diff" optional display label for the NEW side in the summary and patch header, e.g. "active" or "inactive draft". Does not affect source resolution.',
329
+ description: 'Diff NEW-side display label; does not change source resolution.',
333
330
  },
334
331
  include: {
335
332
  type: 'string',
336
- description: 'CLAS: omit include or use main for the global declaration + implementation; definitions/implementations select local helper classes, macros/testclasses their own sections. Explicit include wins over method auto-routing. ' +
337
- 'For DDLS: use include="elements" for the CDS field catalog (key fields, aliases, associations, expression types) instead of raw DDL. ' +
338
- 'For VERSIONS (CLAS): include selects the class include history to query (main, definitions, implementations, macros, testclasses). BSP: case-sensitive path; name may also be APP/path.' +
333
+ description: 'TABL: indexes. CLAS: omit include or use main for global class; definitions/implementations are local helpers; macros/testclasses as named. Explicit include wins over method routing. ' +
334
+ 'DDLS: elements returns field catalog (keys, aliases, associations, types). VERSIONS CLAS: selects include history. BSP: case-sensitive path; name also accepts APP/path.' +
339
335
  // TEXT_ELEMENTS does not exist on BTP — keep the BTP surface byte-identical.
340
336
  (btp ? '' : ' TEXT_ELEMENTS: symbols|selections|headings; omit for pool (CLAS: symbols).'),
341
337
  },
@@ -352,18 +348,29 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
352
348
  grep: {
353
349
  type: 'string',
354
350
  maxLength: MAX_GREP_PATTERN_LENGTH,
355
- description: 'Regex pattern (case-insensitive) to search within the object source. Returns only matching lines with 1-based line numbers and ±3 context lines, instead of the full source — token-efficient. ' +
356
- 'For CLAS, matches are annotated with the owning class/method; combine with include= to scope a section, but do NOT combine with method= (use grep to find, then method= to read). ' +
351
+ description: 'Case-insensitive source regex: matching lines, 1-based numbers and ±3 context; invalid regex becomes literal. CLAS adds owning class/method; include scopes a section. Never combine with method. ' +
357
352
  'Works for source-bearing types (CLAS, INTF, DDLS, DCLS, BDEF, SRVD, SRVB, SKTD/KTD, DDLX, TABL' +
358
353
  (btp ? '' : ', PROG, FUNC, FUGR, INCL, VIEW') +
359
- '). Falls back to a literal search when the pattern is not valid regex.',
354
+ ').',
355
+ },
356
+ lineStart: {
357
+ type: 'integer',
358
+ minimum: 1,
359
+ description: 'First source line (1-based, inclusive); requires lineEnd. Text reads only: CLAS, INTF, DDLS, DCLS, BDEF, SRVD, DDLX, TABL' +
360
+ (btp ? '' : ', PROG, FUNC, INCL') +
361
+ '. Supports CLAS include; incompatible with grep, method, diff, structured/editable output and signature/element extraction.',
362
+ },
363
+ lineEnd: {
364
+ type: 'integer',
365
+ minimum: 1,
366
+ description: 'Last source line (inclusive); requires lineStart. Clamped to the source end; a start beyond the source is an error.',
360
367
  },
361
368
  ...(btp
362
369
  ? {}
363
370
  : {
364
371
  expand_includes: {
365
372
  type: 'boolean',
366
- description: 'For FUGR type only. When true, recursively expands the function group include tree — the main source plus all nested INCLUDEs (the FUNCTION...ENDFUNCTION bodies live in nested LZ<grp>U01/U02 includes, so a flat one-level walk misses them). Each block is prefixed with a "=== name ===" marker; depth/count-capped. Dynpros and GUI status are not included (ADT does not expose them over REST).',
373
+ description: 'PROG/INCL/FUGR: add nested includes as "=== name ===" blocks; bounded, a closing note reports omissions. With grep: search all (FUGR: implied). No dynpros.',
367
374
  },
368
375
  }),
369
376
  format: {
@@ -378,7 +385,7 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
378
385
  },
379
386
  includeSignature: {
380
387
  type: 'boolean',
381
- description: 'For FUNC type only. When true, response is JSON: {source, signature: {importing[], exporting[], changing[], tables[], exceptions[], raising[]}, processingType?, updateTaskKind?} — each parameter parsed into {kind, name, type, byValue?, default?, optional?}; processingType reports rfc/update/normal. Default false (returns plain source body).',
388
+ description: 'FUNC: JSON {source,signature,processingType?,updateTaskKind?}. Signature and descriptions come from source. Default false: raw source.',
382
389
  },
383
390
  force_refresh: {
384
391
  type: 'boolean',
@@ -417,8 +424,8 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
417
424
  where: {
418
425
  type: 'array',
419
426
  description: 'For TABLE_QUERY: structured WHERE conditions, ANDed together. Each item: {field, op, value?}. ' +
420
- 'Ops: =, <>, <, <=, >, >=, LIKE, NOT LIKE, IN, NOT IN, IS NULL, IS NOT NULL; use <> because 758 rejects !=. ' +
421
- 'For IN/NOT IN: use bare comma-separated values; do NOT quote them. ARC-1 quotes and escapes values, e.g. "261,262". No subqueries. ' +
427
+ 'Ops: =, <>, <, <=, >, >=, LIKE, NOT LIKE, IN, NOT IN, IS NULL, IS NOT NULL; STARTS_WITH: literal prefix. Use <>; 758 rejects !=. ' +
428
+ 'IN/NOT IN: bare comma-separated values, e.g. "261,262". ARC-1 quotes/escapes them; no subqueries. ' +
422
429
  'Example: [{"field":"MATNR","op":"=","value":"300006888"},{"field":"BUDAT_MKPF","op":">=","value":"20250101"}].',
423
430
  items: {
424
431
  type: 'object',
@@ -468,9 +475,7 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
468
475
  'batch_create',
469
476
  'scaffold_rap_handlers',
470
477
  'generate_behavior_implementation',
471
- // Class text-symbol writes are on-prem only (BTP has no classic text elements) — keep out
472
- // of the BTP action enum so the zod↔json-schema parity check stays green.
473
- ...(btp ? [] : ['edit_text_symbols']),
478
+ 'edit_text_symbols',
474
479
  ],
475
480
  // This is where an LLM decides WHICH action to use, so every action gets a line —
476
481
  // especially the destructive and refusing ones, whose behaviour is not guessable.
@@ -485,20 +490,20 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
485
490
  'delete_method is destructive — it discards the body, so to re-section a method use change_method_visibility, never delete+add. ' +
486
491
  'scaffold_rap_handlers / generate_behavior_implementation: derive behavior-pool handlers from a BDEF (the latter is the equivalent of Eclipse\'s "Generate Behavior Implementation").' +
487
492
  (btp
488
- ? ''
493
+ ? ' edit_text_symbols: replace CLAS symbols (@MaxLength:NN\\nNNN=text; blank-line separated). Read first with SAPRead CLAS include=text_symbols; source="" clears the pool. Activates texts only.'
489
494
  : ' edit_text_symbols: replace a CLAS/PROG/FUGR textpool part; read first, retain other entries. source="" clears it.'),
490
495
  },
491
496
  type: {
492
497
  type: 'string',
493
498
  enum: btp ? SAPWRITE_TYPES_BTP : SAPWRITE_TYPES_ONPREM,
494
499
  description: btp
495
- ? 'Object type (for create/update/delete/edit_method/edit_class_definition/add_method/edit_method_signature/delete_method/change_method_visibility). Supported on BTP: CLAS, INTF, DDLS, DCLS, DDLX, BDEF, SRVD, SRVB, SKTD or KTD (Knowledge Transfer Documents), TABL, TABL/DT, TABL/DS, DOMA, DTEL, MSAG. Class-section surgery actions require type=CLAS. UIAD: checks AFF JSON; create honors header.abapLanguageVersion. Manual cloudDevelopment items are editable; generated items may be read-only.'
500
+ ? 'Object type. Class-section surgery actions require type=CLAS. UIAD: checks AFF JSON; create honors header.abapLanguageVersion. Manual cloudDevelopment items are editable; generated items may be read-only.'
496
501
  : 'Object type (for create/update/delete/edit_method/edit_unit/add_unit/edit_class_definition/add_method/edit_method_signature/delete_method/change_method_visibility). Supported on-prem: PROG, CLAS, INTF, FUNC, FUGR, INCL, DDLS, DCLS, DDLX, BDEF, SRVD, SRVB, SKTD or KTD (Knowledge Transfer Documents), TABL, TABL/DT, TABL/DS, DOMA, DTEL, MSAG. Class-section surgery actions require CLAS. UIAD: validates AFF JSON and saves active; create honors header.abapLanguageVersion. Manual cloudDevelopment items are editable; generated items can be read-only.',
497
502
  },
498
503
  name: {
499
504
  type: 'string',
500
505
  description: btp
501
- ? 'Object name (for create/update/delete/edit_method/edit_class_definition/add_method/edit_method_signature/delete_method/change_method_visibility).'
506
+ ? 'Object name.'
502
507
  : 'Object name (for create/update/delete/edit_method/edit_unit/add_unit/edit_class_definition/add_method/edit_method_signature/delete_method/change_method_visibility).',
503
508
  },
504
509
  expectedSourceHash: {
@@ -517,7 +522,7 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
517
522
  description: 'CLAS-ONLY. Do NOT send unless type=CLAS AND action is update / edit_method / edit_class_definition. OMIT it entirely for every other type and for delete / batch_create / add_method / edit_method_signature / delete_method / change_method_visibility (those use /source/main). Targets a class-local include: definitions (CCDEF), implementations (CCIMP), macros, testclasses. edit_method auto-detects it from the method specifier (lhc_*/lcl_* → implementations, ltc_* → testclasses), so you rarely pass it; use include=testclasses to create a new local test class. Whole-include writes auto-create a missing include and produce an inactive draft (read with SAPRead version="inactive" before activation).',
518
523
  },
519
524
  ...(btp
520
- ? {}
525
+ ? { textPart: { type: 'string', enum: ['symbols'] } }
521
526
  : {
522
527
  textPart: {
523
528
  type: 'string',
@@ -588,15 +593,8 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
588
593
  },
589
594
  ...(btp ? {} : FuncProcessing.FUNCTION_PROCESSING_TOOL_PROPERTIES),
590
595
  dataType: { type: 'string', description: 'DOMA/DTEL: ABAP data type (e.g., CHAR, NUMC, DEC)' },
591
- rowType: {
592
- type: 'string',
593
- description: 'TTYP create: the row type — a built-in ABAP type (STRING, I, …) or a DDIC structure/type name. Required for TTYP create.',
594
- },
595
- rowTypeKind: {
596
- type: 'string',
597
- enum: ['builtin', 'structure'],
598
- description: 'TTYP create: row-type mode (auto-detected from rowType if omitted).',
599
- },
596
+ ...TABLE_TYPE_TOOL_PROPERTIES,
597
+ ...TABLE_TYPE_DIMENSION_TOOL_PROPERTIES,
600
598
  length: { type: 'number', description: 'DOMA/DTEL: data type length' },
601
599
  decimals: { type: 'number', description: 'DOMA/DTEL: decimal places' },
602
600
  outputLength: { type: 'number', description: 'DOMA: output length' },
@@ -648,19 +646,25 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
648
646
  },
649
647
  parameters: {
650
648
  type: 'array',
651
- description: 'FUNC: structured signature parameters. ARC-1 builds the IMPORTING/EXPORTING/CHANGING/TABLES/EXCEPTIONS/RAISING clause and splices it into the FM body. When omitted, the supplied source is PUT verbatim.',
649
+ description: 'FUNC: replace the source signature with these parameters; preserve the body. Omit to PUT source verbatim.',
652
650
  items: {
653
651
  type: 'object',
654
652
  properties: {
655
653
  kind: {
656
654
  type: 'string',
657
655
  enum: ['importing', 'exporting', 'changing', 'tables', 'exceptions', 'raising'],
658
- description: 'Parameter kind. EXCEPTIONS/RAISING use only `name`; the others require `type`.',
656
+ description: 'EXCEPTIONS/RAISING need only name; other kinds need type.',
659
657
  },
660
658
  name: { type: 'string', description: 'Parameter / exception name (uppercased on emit).' },
659
+ description: {
660
+ type: 'string',
661
+ minLength: 1,
662
+ maxLength: 60,
663
+ description: 'Importing/exporting/changing/tables short text: 1–60 printable characters in the original language; omit to preserve.',
664
+ },
661
665
  type: {
662
666
  type: 'string',
663
- description: 'ABAP type expression. Required for IMPORTING/EXPORTING/CHANGING/TABLES; ignored for EXCEPTIONS/RAISING. Examples: "STRING", "I", "BAPIRET2", "TYPE STANDARD TABLE OF X", "LIKE DOKHL-OBJECT". For TABLES, include the leading TYPE/LIKE keyword.',
667
+ description: 'ABAP type, e.g. STRING, I, BAPIRET2. TABLES includes TYPE/LIKE, e.g. TYPE STANDARD TABLE OF X or LIKE DOKHL-OBJECT. Ignored for exceptions/raising.',
664
668
  },
665
669
  byValue: {
666
670
  type: 'boolean',
@@ -668,7 +672,7 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
668
672
  },
669
673
  default: {
670
674
  type: 'string',
671
- description: 'Raw ABAP literal — IMPORTING/CHANGING only. Emitted verbatim. Example: "\'X\'", "0", "SPACE".',
675
+ description: 'Raw ABAP literal for IMPORTING/CHANGING, e.g. "\'X\'", "0", "SPACE".',
672
676
  },
673
677
  optional: { type: 'boolean', description: 'Emit `OPTIONAL` keyword.' },
674
678
  },
@@ -713,7 +717,7 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
713
717
  },
714
718
  refObjectDescription: {
715
719
  type: 'string',
716
- description: 'SKTD/KTD create: parent description; required and nonempty for SMBC/TYP (BCMO).',
720
+ description: 'SKTD/KTD create: optional parent description; blank values are omitted.',
717
721
  },
718
722
  shortTexts: {
719
723
  type: 'array',
@@ -735,8 +739,8 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
735
739
  properties: {
736
740
  type: {
737
741
  type: 'string',
738
- enum: btp ? SAPWRITE_TYPES_BTP : SAPWRITE_TYPES_ONPREM,
739
- description: 'Object type (includes TABL for RAP stack bootstrapping)',
742
+ enum: (btp ? SAPWRITE_TYPES_BTP : SAPWRITE_TYPES_ONPREM).filter((type) => type !== 'TABL/DTT'),
743
+ description: 'Creatable object type; technical settings TABL/DTT are update-only',
740
744
  },
741
745
  name: { type: 'string', description: 'Object name' },
742
746
  source: { type: 'string', description: 'ABAP source code (optional — some objects have no source)' },
@@ -753,8 +757,8 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
753
757
  // DDIC metadata fields (DOMA/DTEL/TTYP/MSAG/SRVB) mirror the top-level SAPWrite
754
758
  // params 1:1 — descriptions omitted here to keep the tools/list payload small (#520).
755
759
  dataType: { type: 'string' },
756
- rowType: { type: 'string' },
757
- rowTypeKind: { type: 'string', enum: ['builtin', 'structure'] },
760
+ ...TABLE_TYPE_BATCH_TOOL_PROPERTIES,
761
+ ...TABLE_TYPE_DIMENSION_TOOL_PROPERTIES,
758
762
  length: { type: 'number' },
759
763
  decimals: { type: 'number' },
760
764
  outputLength: { type: 'number' },
@@ -864,8 +868,8 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
864
868
  tools.push({
865
869
  name: 'SAPNavigate',
866
870
  description: btp
867
- ? 'Navigate code (BTP ABAP Environment): definitions, references, completion, hierarchy. references: scope-based where-used with lines/snippets/package; objectType filters results (e.g. CLAS/OC); type+name replaces uri. Scope = released SAP + custom Z/Y. hierarchy queries SEOMETAREL: requires data/SQL opt-in + matching scope; otherwise inspect class MAIN with SAPRead. CDS (DDLS) impact: SAPContext(action="impact") classifies where-used into RAP buckets.'
868
- : 'Navigate code: definitions, references, completion, hierarchy. references: scope-based where-used with lines/snippets/package; objectType filters results (e.g. CLAS/OC, PROG/P); type+name replaces uri. hierarchy queries SEOMETAREL for superclass/interfaces/direct subclasses: requires data/SQL opt-in + matching scope; otherwise inspect class MAIN with SAPRead. CDS (DDLS) impact: SAPContext(action="impact") classifies where-used into RAP buckets.',
871
+ ? 'Navigate code (BTP ABAP Environment): definitions, references, completion, hierarchy. references: where-used objects by default; detail=positions/snippets adds bounded native usages; objectType filters results (e.g. CLAS/OC); type+name replaces uri. Scope = released SAP + custom Z/Y. hierarchy queries SEOMETAREL: requires data/SQL opt-in + matching scope; otherwise inspect class MAIN with SAPRead. CDS (DDLS) impact: SAPContext(action="impact") classifies where-used into RAP buckets.'
872
+ : 'Navigate code: definitions, references, completion, hierarchy. references: where-used objects by default; detail=positions/snippets adds bounded native usages; objectType filters results (e.g. CLAS/OC, PROG/P); type+name replaces uri. hierarchy queries SEOMETAREL for superclass/interfaces/direct subclasses: requires data/SQL opt-in + matching scope; otherwise inspect class MAIN with SAPRead. CDS (DDLS) impact: SAPContext(action="impact") classifies where-used into RAP buckets.',
869
873
  inputSchema: {
870
874
  type: 'object',
871
875
  properties: {
@@ -887,6 +891,18 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
887
891
  type: 'string',
888
892
  description: 'references RESULT filter, not the root type: CLAS/OC, PROG/P, FUGR/FF. Omit for all consumer types. A bare prefix ("CLAS") matches every subtype.',
889
893
  },
894
+ packages: {
895
+ type: 'array',
896
+ minItems: 1,
897
+ maxItems: 20,
898
+ items: { type: 'string', maxLength: 30 },
899
+ description: 'references: exact package names (e.g. ["$TMP"]); no wildcards or implicit subpackages. Native scope when available, otherwise local filtering.',
900
+ },
901
+ detail: {
902
+ type: 'string',
903
+ enum: ['objects', 'positions', 'snippets'],
904
+ description: 'references: objects (default), or expand at most 10 native nodes for positions/snippets. Method positions can be component-relative; inspect usageDetails limits.',
905
+ },
890
906
  maxResults: {
891
907
  type: 'number',
892
908
  description: 'references: max entries (default 100, max 1000). "total" counts every match of the filter.',
@@ -900,24 +916,9 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
900
916
  });
901
917
  const navigation = tools.find((tool) => tool.name === 'SAPNavigate');
902
918
  addLiveRelationsDefinition(navigation, config, options.discoveryMap ?? resolvedFeatures?.discoveryMap);
903
- // SAPQuery — only registered when free SQL is allowed
904
- if (config.allowFreeSQL) {
905
- tools.push({
906
- name: 'SAPQuery',
907
- description: btp ? SAPQUERY_DESC_BTP : SAPQUERY_DESC_ONPREM,
908
- inputSchema: {
909
- type: 'object',
910
- properties: {
911
- sql: { type: 'string', description: 'ABAP SQL SELECT statement' },
912
- maxRows: {
913
- type: 'number',
914
- description: 'Rows (default 100, max 10,000; byte limit may apply sooner).',
915
- },
916
- },
917
- required: ['sql'],
918
- },
919
- });
920
- }
919
+ const query = createQueryDefinition(config, resolvedFeatures);
920
+ if (query)
921
+ tools.push(query);
921
922
  tools.push({
922
923
  name: 'SAPLint',
923
924
  description: 'Run local abaplint rules on ABAP/CDS source (auto-selects cloud or on-prem rules by system type). Actions:\n' +
@@ -958,26 +959,27 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
958
959
  },
959
960
  }, {
960
961
  name: 'SAPDiagnose',
961
- description: 'ABAP diagnostics and runtime analysis. Actions:\n' +
962
- '- "syntax": compatibility check; when available prefer SAPRead(type="SYNTAX", objectType, name, version?, source?).\n' +
962
+ description: 'ABAP diagnostics:\n' +
963
+ '- "syntax": check objects[] (CLAS/INTF/PROG/DDLS; version active/inactive). Single: prefer SAPRead SYNTAX.\n' +
963
964
  '- "unittest": harmless ABAP Unit for CLAS/PROG/FUGR or DEVC (exact; includeSubpackages recurses).\n' +
964
965
  '- "unittest_ci": harmless package tests with source reconciliation; empty/incomplete runs fail.\n' +
965
- '- "atc": run ATC checks (name+type or objects [{type,name}], max 20; omit variant to bind the system default; unknown variant = error). "atc_variants": list variants + that default (variant = name filter; read-only).\n' +
966
+ '- "atc": ATC (name+type or objects [{type,name}], max 20). Omit variant for system default; unknown variant errors. "atc_variants": read variants/default, optional variant name filter.\n' +
966
967
  '- "atc_ci": package ATC CI; requires available API and verified selection.\n' +
967
- '- "cds_testcases": SAP-suggested ABAP Unit test cases for a CDS entity (name; read-only; SAP_BASIS 8.16+).\n' +
968
- '- "object_state": active/inactive ETags, hashes and divergence (name+type; CLAS: all includes). Server-driven types unsupported.\n' +
969
- '- "quickfix": proposals at name+type+source+line (optional column/sourceUri).\n' +
970
- '- "apply_quickfix": return proposal text deltas without writing; needs quickfix inputs + proposalUri/proposalUserContent.\n' +
971
- '- "dumps": list/read ST22 short dumps (no id = list, newest first, user/from/to/maxResults; id = read; includeFullText, sections).\n' +
968
+ '- "cds_testcases": read suggested CDS Unit tests (name; SAP_BASIS 8.16+).\n' +
969
+ '- "object_state": active/inactive ETags/hashes/divergence (name+type; CLAS includes). No server-driven types.\n' +
970
+ '- "quickfix": proposals: name+type+source+line; optional column/sourceUri.\n' +
971
+ '- "apply_quickfix": text deltas, no save; quickfix inputs + proposalUri/proposalUserContent.\n' +
972
+ '- "dumps": ST22, newest: user/from/to/maxResults/filters; id=detail.\n' +
973
+ '- "feed_schema": optional dump filters; action only.\n' +
972
974
  '- "traces": list profiler traces; id+analysis analyzes one.\n' +
973
- '- "trace_start": arm a profiler trace for the NEXT matching execution, then reproduce and read via "traces" (write scope; defaults: next HTTP request, SQL on).\n' +
974
- '- "trace_requests": list armed trace requests. "trace_cancel": cancel one by id (write scope).\n' +
975
+ '- "trace_start": arm NEXT matching execution (write; defaults HTTP, SQL on); reproduce, then read "traces".\n' +
976
+ '- "trace_requests": list armed traces. "trace_cancel": cancel by id (write).\n' +
975
977
  '- "system_messages": list SM02 messages. "gateway_errors": list /IWFND/ERROR_LOG (on-prem; detailUrl or id+errorType for detail).\n' +
976
- '- "odata_perf": diagnose why an OData call is slow (url = host-relative path); returns the sap-statistics timing split (DB/ABAP/framework/auth). Read-only; needs allowDataPreview.\n' +
977
- '- "authorization_trace": read the on-prem STUSERTRACE auth trace (SUAUTHVALTRC); needs SAP_ALLOW_DATA_PREVIEW.\n' +
978
- '- "cds_sql": show the native SQL a CDS view compiles to (name; read-only).\n' +
978
+ '- "odata_perf": read OData timing (url: host-relative; DB/ABAP/framework/auth); needs allowDataPreview.\n' +
979
+ '- "authorization_trace": read STUSERTRACE/SUAUTHVALTRC (on-prem; needs SAP_ALLOW_DATA_PREVIEW).\n' +
980
+ '- "cds_sql": read CDS native SQL (name).\n' +
979
981
  '- "sql_trace_state" / "set_sql_trace_state" (sqlOn; needs SAP_ALLOW_WRITES) / "sql_trace_directory": ST05 SQL-trace control.\n' +
980
- 'Quickfix workflow: syntax/ATC → quickfix → apply_quickfix → write via SAPWrite. Full action reference: docs_page SAPDiagnose.',
982
+ 'Quickfix: syntax/ATC → quickfix → apply_quickfix → SAPWrite.',
981
983
  inputSchema: {
982
984
  type: 'object',
983
985
  properties: {
@@ -992,6 +994,7 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
992
994
  'atc_variants',
993
995
  'cds_testcases',
994
996
  'dumps',
997
+ 'feed_schema',
995
998
  'traces',
996
999
  'trace_start',
997
1000
  'trace_requests',
@@ -1025,7 +1028,7 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
1025
1028
  type: 'array',
1026
1029
  minItems: 1,
1027
1030
  maxItems: ATC_BATCH_MAX_OBJECTS,
1028
- description: 'ATC only, instead of name/type/url. One batch + at most one verification. Returns coverage; unreported objects stay incomplete. No packages.',
1031
+ description: 'ATC/syntax list instead of name/type/url. ATC may verify once. Missing reports stay incomplete. No packages.',
1029
1032
  items: {
1030
1033
  type: 'object',
1031
1034
  required: ['type', 'name'],
@@ -1087,7 +1090,7 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
1087
1090
  },
1088
1091
  id: {
1089
1092
  type: 'string',
1090
- description: 'Dump or trace ID (for dumps/traces actions); also the trace-request id to cancel (for trace_cancel). Omit to list, provide to get details.',
1093
+ description: 'dumps/traces: omit to list, supply for detail. trace_cancel: request ID.',
1091
1094
  },
1092
1095
  detailUrl: {
1093
1096
  type: 'string',
@@ -1098,6 +1101,10 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
1098
1101
  description: 'gateway_errors: required with id instead of detailUrl, e.g. "Frontend Error".',
1099
1102
  },
1100
1103
  user: { type: 'string', description: 'SAP-user filter for dumps, feeds, or authorization_trace.' },
1104
+ filters: {
1105
+ ...dumpFiltersJson,
1106
+ description: 'AND ≤8 incl. user: [{attribute:"runtimeError",operator:"equals",values:["MESSAGE_TYPE_X"]}].',
1107
+ },
1101
1108
  authObject: { type: 'string', description: 'Authorization object filter, e.g. S_TCODE.' },
1102
1109
  from: {
1103
1110
  type: 'string',
@@ -1314,16 +1321,7 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
1314
1321
  type: 'string',
1315
1322
  description: 'ADT object type (e.g., CLAS/OC, DDLS/DF, PROG/P). Required for change_package. For set_api_state: object type of "name" when objectUri is omitted (e.g. CLAS, INTF, DDLS, TABL).',
1316
1323
  },
1317
- apiState: {
1318
- type: 'string',
1319
- enum: ['RELEASED', 'NOT_RELEASED'],
1320
- description: 'For set_api_state: target state of the object\'s API release contract — RELEASED (mark released for ABAP Cloud / Clean Core) or NOT_RELEASED (revoke). Default RELEASED. Visibility (ABAP Cloud / Key User Apps) follows the contract\'s defaults. Read the current state first with SAPRead(type="API_STATE").',
1321
- },
1322
- contract: {
1323
- type: 'string',
1324
- enum: ['C0', 'C1', 'C2', 'C3', 'C4'],
1325
- description: 'For set_api_state: which release contract to set. Default C1 (Key-User/Cloud — the common clean-core contract). Object types support different contracts: e.g. service definitions (SRVD) only support C0, classic DDIC views only C3, behavior definitions and tables support C0+C1. If the object does not support the chosen contract, the error lists the ones it does.',
1326
- },
1324
+ ...API_RELEASE_FIELDS,
1327
1325
  objectName: {
1328
1326
  type: 'string',
1329
1327
  description: 'Object name to move (e.g., ZCL_MY_CLASS). Required for change_package.',
@@ -1391,7 +1389,7 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
1391
1389
  enum: sapTransportActions,
1392
1390
  description: "list: show transports (defaults to current user, modifiable only). Pass summary=true for a headers-only overview that omits each transport's object lists (keeps an objectCount) — far cheaper when many transports are open. " +
1393
1391
  'get: fetch transport details including tasks and objects. ' +
1394
- 'diff: what a transport CHANGED — per object, the revision written under it vs the one before, as diff hunks (get only lists names). LIMU entries roll up to their class; an open transport compares to the last released revision. Read baselineStatus first: prior-revision = solid; prior-revision-unverified = pair guessed, may be another change; no-prior-snapshot = created here; baseline-ambiguous = no baseline, so an all-additions block is NOT proof of creation; baseline-unavailable = the read FAILED, never call that unchanged. ' +
1392
+ 'diff: source review. Released requests need attributed snapshots; open requests use active source, never drafts. baselineStatus: prior-revision=attributed pair; prior-revision-unverified=unattributed candidate; no-prior-snapshot=missing history, NOT creation; baseline-ambiguous=uncertain predecessor; baseline-unavailable=no comparison, NOT unchanged. Non-source gaps are explicit. Follow nextOffset; pages are not snapshots. ' +
1395
1393
  'create: create a new transport request (description required). To target another system, pass target=<system | system.client | /group/> (the Transportziel / TR_TARGET, e.g. "/TRG/" or "C11"; the group and system.client forms require extended transport control to be active). Otherwise omit target and pass an optional package to let SAP infer the route (defaults to $TMP). The response reports the resolved transport target; an empty target means a LOCAL request (cannot be transported onward). ' +
1396
1394
  'release: release a single transport or task. ' +
1397
1395
  'delete: delete a transport (use recursive=true to delete tasks first; removeLockedObjects=true to strip locked objects that otherwise block deletion with "...contains locked objects"). ' +
@@ -1456,7 +1454,7 @@ export function getToolDefinitions(config, textSearchAvailable, resolvedFeatures
1456
1454
  },
1457
1455
  summary: {
1458
1456
  type: 'boolean',
1459
- description: 'For list only. DEFAULT true: headers-only — drops each transport\'s (and task\'s) object lists, keeping id/description/owner/status/target + objectCount; use action="get" for one in full. Pass false for full object lists (~5x larger).',
1457
+ description: 'diff: true omits hunks, retaining counts and evidence (same SAP reads). For list, DEFAULT true: headers-only — drops each transport\'s (and task\'s) object lists, keeping id/description/owner/status/target + objectCount; use action="get" for one in full. Pass false for full object lists (~5x larger).',
1460
1458
  },
1461
1459
  maxResults: {
1462
1460
  type: 'number',