arc-1 0.9.27 → 1.0.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 (292) hide show
  1. package/README.md +28 -11
  2. package/dist/adt/abapgit.d.ts +19 -6
  3. package/dist/adt/abapgit.d.ts.map +1 -1
  4. package/dist/adt/abapgit.js +141 -36
  5. package/dist/adt/abapgit.js.map +1 -1
  6. package/dist/adt/client.d.ts +21 -8
  7. package/dist/adt/client.d.ts.map +1 -1
  8. package/dist/adt/client.js +47 -7
  9. package/dist/adt/client.js.map +1 -1
  10. package/dist/adt/config.d.ts +15 -0
  11. package/dist/adt/config.d.ts.map +1 -1
  12. package/dist/adt/config.js.map +1 -1
  13. package/dist/adt/crud.d.ts +7 -2
  14. package/dist/adt/crud.d.ts.map +1 -1
  15. package/dist/adt/crud.js +12 -4
  16. package/dist/adt/crud.js.map +1 -1
  17. package/dist/adt/ddic-xml.d.ts +27 -17
  18. package/dist/adt/ddic-xml.d.ts.map +1 -1
  19. package/dist/adt/ddic-xml.js +45 -34
  20. package/dist/adt/ddic-xml.js.map +1 -1
  21. package/dist/adt/devtools.d.ts +13 -0
  22. package/dist/adt/devtools.d.ts.map +1 -1
  23. package/dist/adt/devtools.js +120 -50
  24. package/dist/adt/devtools.js.map +1 -1
  25. package/dist/adt/errors.d.ts +1 -1
  26. package/dist/adt/errors.d.ts.map +1 -1
  27. package/dist/adt/errors.js +18 -0
  28. package/dist/adt/errors.js.map +1 -1
  29. package/dist/adt/http.d.ts +17 -1
  30. package/dist/adt/http.d.ts.map +1 -1
  31. package/dist/adt/http.js +102 -19
  32. package/dist/adt/http.js.map +1 -1
  33. package/dist/adt/server-driven.d.ts +154 -34
  34. package/dist/adt/server-driven.d.ts.map +1 -1
  35. package/dist/adt/server-driven.js +178 -53
  36. package/dist/adt/server-driven.js.map +1 -1
  37. package/dist/adt/transport.d.ts +6 -6
  38. package/dist/adt/transport.d.ts.map +1 -1
  39. package/dist/adt/transport.js +23 -34
  40. package/dist/adt/transport.js.map +1 -1
  41. package/dist/adt/types.d.ts +47 -6
  42. package/dist/adt/types.d.ts.map +1 -1
  43. package/dist/adt/xml-parser.d.ts +52 -12
  44. package/dist/adt/xml-parser.d.ts.map +1 -1
  45. package/dist/adt/xml-parser.js +120 -10
  46. package/dist/adt/xml-parser.js.map +1 -1
  47. package/dist/authz/policy.d.ts +8 -0
  48. package/dist/authz/policy.d.ts.map +1 -1
  49. package/dist/authz/policy.js +23 -0
  50. package/dist/authz/policy.js.map +1 -1
  51. package/dist/cache/cache.d.ts +2 -34
  52. package/dist/cache/cache.d.ts.map +1 -1
  53. package/dist/cache/cache.js +2 -3
  54. package/dist/cache/cache.js.map +1 -1
  55. package/dist/cache/caching-layer.d.ts +3 -19
  56. package/dist/cache/caching-layer.d.ts.map +1 -1
  57. package/dist/cache/caching-layer.js +2 -26
  58. package/dist/cache/caching-layer.js.map +1 -1
  59. package/dist/cache/memory.d.ts +1 -12
  60. package/dist/cache/memory.d.ts.map +1 -1
  61. package/dist/cache/memory.js +0 -69
  62. package/dist/cache/memory.js.map +1 -1
  63. package/dist/cache/sqlite.d.ts +2 -9
  64. package/dist/cache/sqlite.d.ts.map +1 -1
  65. package/dist/cache/sqlite.js +8 -84
  66. package/dist/cache/sqlite.js.map +1 -1
  67. package/dist/cli.js +6 -3
  68. package/dist/cli.js.map +1 -1
  69. package/dist/context/unit-surgery.d.ts +28 -0
  70. package/dist/context/unit-surgery.d.ts.map +1 -0
  71. package/dist/context/unit-surgery.js +150 -0
  72. package/dist/context/unit-surgery.js.map +1 -0
  73. package/dist/handlers/activate.d.ts.map +1 -1
  74. package/dist/handlers/activate.js +44 -6
  75. package/dist/handlers/activate.js.map +1 -1
  76. package/dist/handlers/context.d.ts +1 -1
  77. package/dist/handlers/context.d.ts.map +1 -1
  78. package/dist/handlers/context.js +98 -28
  79. package/dist/handlers/context.js.map +1 -1
  80. package/dist/handlers/diagnose.d.ts.map +1 -1
  81. package/dist/handlers/diagnose.js +55 -31
  82. package/dist/handlers/diagnose.js.map +1 -1
  83. package/dist/handlers/dispatch.d.ts +12 -1
  84. package/dist/handlers/dispatch.d.ts.map +1 -1
  85. package/dist/handlers/dispatch.js +160 -25
  86. package/dist/handlers/dispatch.js.map +1 -1
  87. package/dist/handlers/feature-cache.d.ts +27 -14
  88. package/dist/handlers/feature-cache.d.ts.map +1 -1
  89. package/dist/handlers/feature-cache.js +63 -25
  90. package/dist/handlers/feature-cache.js.map +1 -1
  91. package/dist/handlers/function-processing.d.ts +61 -0
  92. package/dist/handlers/function-processing.d.ts.map +1 -0
  93. package/dist/handlers/function-processing.js +45 -0
  94. package/dist/handlers/function-processing.js.map +1 -0
  95. package/dist/handlers/git.d.ts.map +1 -1
  96. package/dist/handlers/git.js +44 -19
  97. package/dist/handlers/git.js.map +1 -1
  98. package/dist/handlers/hyperfocused.d.ts.map +1 -1
  99. package/dist/handlers/hyperfocused.js +2 -3
  100. package/dist/handlers/hyperfocused.js.map +1 -1
  101. package/dist/handlers/lint.d.ts.map +1 -1
  102. package/dist/handlers/lint.js +7 -7
  103. package/dist/handlers/lint.js.map +1 -1
  104. package/dist/handlers/manage.d.ts.map +1 -1
  105. package/dist/handlers/manage.js +42 -25
  106. package/dist/handlers/manage.js.map +1 -1
  107. package/dist/handlers/navigate.d.ts.map +1 -1
  108. package/dist/handlers/navigate.js +27 -90
  109. package/dist/handlers/navigate.js.map +1 -1
  110. package/dist/handlers/object-types.d.ts +2 -0
  111. package/dist/handlers/object-types.d.ts.map +1 -1
  112. package/dist/handlers/object-types.js +10 -0
  113. package/dist/handlers/object-types.js.map +1 -1
  114. package/dist/handlers/query.d.ts.map +1 -1
  115. package/dist/handlers/query.js +2 -2
  116. package/dist/handlers/query.js.map +1 -1
  117. package/dist/handlers/read.d.ts.map +1 -1
  118. package/dist/handlers/read.js +64 -41
  119. package/dist/handlers/read.js.map +1 -1
  120. package/dist/handlers/schemas.d.ts +64 -16
  121. package/dist/handlers/schemas.d.ts.map +1 -1
  122. package/dist/handlers/schemas.js +123 -32
  123. package/dist/handlers/schemas.js.map +1 -1
  124. package/dist/handlers/search.d.ts.map +1 -1
  125. package/dist/handlers/search.js +8 -7
  126. package/dist/handlers/search.js.map +1 -1
  127. package/dist/handlers/shared.d.ts +13 -0
  128. package/dist/handlers/shared.d.ts.map +1 -1
  129. package/dist/handlers/shared.js +15 -0
  130. package/dist/handlers/shared.js.map +1 -1
  131. package/dist/handlers/tool-descriptions.d.ts +4 -0
  132. package/dist/handlers/tool-descriptions.d.ts.map +1 -0
  133. package/dist/handlers/tool-descriptions.js +52 -0
  134. package/dist/handlers/tool-descriptions.js.map +1 -0
  135. package/dist/handlers/tool-registry.d.ts +18 -4
  136. package/dist/handlers/tool-registry.d.ts.map +1 -1
  137. package/dist/handlers/tool-registry.js +18 -0
  138. package/dist/handlers/tool-registry.js.map +1 -1
  139. package/dist/handlers/tools.d.ts.map +1 -1
  140. package/dist/handlers/tools.js +113 -90
  141. package/dist/handlers/tools.js.map +1 -1
  142. package/dist/handlers/transport.d.ts +1 -1
  143. package/dist/handlers/transport.d.ts.map +1 -1
  144. package/dist/handlers/transport.js +37 -10
  145. package/dist/handlers/transport.js.map +1 -1
  146. package/dist/handlers/where-used.d.ts +25 -0
  147. package/dist/handlers/where-used.d.ts.map +1 -0
  148. package/dist/handlers/where-used.js +94 -0
  149. package/dist/handlers/where-used.js.map +1 -0
  150. package/dist/handlers/write/class-surgery.d.ts.map +1 -1
  151. package/dist/handlers/write/class-surgery.js +11 -12
  152. package/dist/handlers/write/class-surgery.js.map +1 -1
  153. package/dist/handlers/write/create.d.ts.map +1 -1
  154. package/dist/handlers/write/create.js +194 -84
  155. package/dist/handlers/write/create.js.map +1 -1
  156. package/dist/handlers/write/rap.d.ts.map +1 -1
  157. package/dist/handlers/write/rap.js +9 -9
  158. package/dist/handlers/write/rap.js.map +1 -1
  159. package/dist/handlers/write/unit-surgery.d.ts +5 -0
  160. package/dist/handlers/write/unit-surgery.d.ts.map +1 -0
  161. package/dist/handlers/write/unit-surgery.js +47 -0
  162. package/dist/handlers/write/unit-surgery.js.map +1 -0
  163. package/dist/handlers/write/update-delete.js +8 -8
  164. package/dist/handlers/write/update-delete.js.map +1 -1
  165. package/dist/handlers/write-helpers.d.ts +7 -4
  166. package/dist/handlers/write-helpers.d.ts.map +1 -1
  167. package/dist/handlers/write-helpers.js +118 -63
  168. package/dist/handlers/write-helpers.js.map +1 -1
  169. package/dist/handlers/write.d.ts.map +1 -1
  170. package/dist/handlers/write.js +35 -13
  171. package/dist/handlers/write.js.map +1 -1
  172. package/dist/lint/lint.d.ts.map +1 -1
  173. package/dist/lint/lint.js +4 -2
  174. package/dist/lint/lint.js.map +1 -1
  175. package/dist/probe/catalog.js +1 -1
  176. package/dist/probe/catalog.js.map +1 -1
  177. package/dist/public/ui/app.js +1 -14
  178. package/dist/server/audit.d.ts +27 -15
  179. package/dist/server/audit.d.ts.map +1 -1
  180. package/dist/server/audit.js.map +1 -1
  181. package/dist/server/auth-rate-limit.d.ts +18 -9
  182. package/dist/server/auth-rate-limit.d.ts.map +1 -1
  183. package/dist/server/auth-rate-limit.js +31 -6
  184. package/dist/server/auth-rate-limit.js.map +1 -1
  185. package/dist/server/auth-summary.d.ts +4 -0
  186. package/dist/server/auth-summary.d.ts.map +1 -0
  187. package/dist/server/auth-summary.js +67 -0
  188. package/dist/server/auth-summary.js.map +1 -0
  189. package/dist/server/config.d.ts.map +1 -1
  190. package/dist/server/config.js +106 -3
  191. package/dist/server/config.js.map +1 -1
  192. package/dist/server/context.d.ts +12 -0
  193. package/dist/server/context.d.ts.map +1 -1
  194. package/dist/server/context.js.map +1 -1
  195. package/dist/server/destination-discovery.d.ts +36 -0
  196. package/dist/server/destination-discovery.d.ts.map +1 -0
  197. package/dist/server/destination-discovery.js +130 -0
  198. package/dist/server/destination-discovery.js.map +1 -0
  199. package/dist/server/destination-registry.d.ts +111 -0
  200. package/dist/server/destination-registry.d.ts.map +1 -0
  201. package/dist/server/destination-registry.js +449 -0
  202. package/dist/server/destination-registry.js.map +1 -0
  203. package/dist/server/http.d.ts +43 -1
  204. package/dist/server/http.d.ts.map +1 -1
  205. package/dist/server/http.js +283 -73
  206. package/dist/server/http.js.map +1 -1
  207. package/dist/server/logger.d.ts.map +1 -1
  208. package/dist/server/logger.js +58 -13
  209. package/dist/server/logger.js.map +1 -1
  210. package/dist/server/mcp-rate-limit.d.ts +6 -4
  211. package/dist/server/mcp-rate-limit.d.ts.map +1 -1
  212. package/dist/server/mcp-rate-limit.js +6 -4
  213. package/dist/server/mcp-rate-limit.js.map +1 -1
  214. package/dist/server/multi-target-basic-auth.d.ts +49 -0
  215. package/dist/server/multi-target-basic-auth.d.ts.map +1 -0
  216. package/dist/server/multi-target-basic-auth.js +246 -0
  217. package/dist/server/multi-target-basic-auth.js.map +1 -0
  218. package/dist/server/multi-target-catalog.d.ts +33 -0
  219. package/dist/server/multi-target-catalog.d.ts.map +1 -0
  220. package/dist/server/multi-target-catalog.js +130 -0
  221. package/dist/server/multi-target-catalog.js.map +1 -0
  222. package/dist/server/multi-target-destination-config.d.ts +12 -0
  223. package/dist/server/multi-target-destination-config.d.ts.map +1 -0
  224. package/dist/server/multi-target-destination-config.js +37 -0
  225. package/dist/server/multi-target-destination-config.js.map +1 -0
  226. package/dist/server/multi-target-destination-runtime.d.ts +20 -0
  227. package/dist/server/multi-target-destination-runtime.d.ts.map +1 -0
  228. package/dist/server/multi-target-destination-runtime.js +191 -0
  229. package/dist/server/multi-target-destination-runtime.js.map +1 -0
  230. package/dist/server/multi-target-feature-state.d.ts +6 -0
  231. package/dist/server/multi-target-feature-state.d.ts.map +1 -0
  232. package/dist/server/multi-target-feature-state.js +41 -0
  233. package/dist/server/multi-target-feature-state.js.map +1 -0
  234. package/dist/server/multi-target-identity.d.ts +10 -0
  235. package/dist/server/multi-target-identity.d.ts.map +1 -0
  236. package/dist/server/multi-target-identity.js +18 -0
  237. package/dist/server/multi-target-identity.js.map +1 -0
  238. package/dist/server/multi-target-runtime.d.ts +27 -0
  239. package/dist/server/multi-target-runtime.d.ts.map +1 -0
  240. package/dist/server/multi-target-runtime.js +110 -0
  241. package/dist/server/multi-target-runtime.js.map +1 -0
  242. package/dist/server/multi-target-server.d.ts +53 -0
  243. package/dist/server/multi-target-server.d.ts.map +1 -0
  244. package/dist/server/multi-target-server.js +434 -0
  245. package/dist/server/multi-target-server.js.map +1 -0
  246. package/dist/server/multi-target-shared-auth-state.d.ts +82 -0
  247. package/dist/server/multi-target-shared-auth-state.d.ts.map +1 -0
  248. package/dist/server/multi-target-shared-auth-state.js +226 -0
  249. package/dist/server/multi-target-shared-auth-state.js.map +1 -0
  250. package/dist/server/multi-target-tools.d.ts +20 -0
  251. package/dist/server/multi-target-tools.d.ts.map +1 -0
  252. package/dist/server/multi-target-tools.js +191 -0
  253. package/dist/server/multi-target-tools.js.map +1 -0
  254. package/dist/server/oauth-session-recovery.d.ts +22 -0
  255. package/dist/server/oauth-session-recovery.d.ts.map +1 -0
  256. package/dist/server/oauth-session-recovery.js +69 -0
  257. package/dist/server/oauth-session-recovery.js.map +1 -0
  258. package/dist/server/server.d.ts +39 -27
  259. package/dist/server/server.d.ts.map +1 -1
  260. package/dist/server/server.js +433 -300
  261. package/dist/server/server.js.map +1 -1
  262. package/dist/server/sinks/btp-auditlog.d.ts.map +1 -1
  263. package/dist/server/sinks/btp-auditlog.js +83 -11
  264. package/dist/server/sinks/btp-auditlog.js.map +1 -1
  265. package/dist/server/tool-auth.d.ts +10 -0
  266. package/dist/server/tool-auth.d.ts.map +1 -0
  267. package/dist/server/tool-auth.js +75 -0
  268. package/dist/server/tool-auth.js.map +1 -0
  269. package/dist/server/trace-context.d.ts +51 -0
  270. package/dist/server/trace-context.d.ts.map +1 -0
  271. package/dist/server/trace-context.js +100 -0
  272. package/dist/server/trace-context.js.map +1 -0
  273. package/dist/server/types.d.ts +27 -6
  274. package/dist/server/types.d.ts.map +1 -1
  275. package/dist/server/types.js +5 -2
  276. package/dist/server/types.js.map +1 -1
  277. package/dist/server/ui-state.d.ts +0 -2
  278. package/dist/server/ui-state.d.ts.map +1 -1
  279. package/dist/server/ui-state.js +0 -4
  280. package/dist/server/ui-state.js.map +1 -1
  281. package/dist/server/ui.d.ts.map +1 -1
  282. package/dist/server/ui.js +0 -7
  283. package/dist/server/ui.js.map +1 -1
  284. package/package.json +16 -13
  285. package/dist/cache/warmup.d.ts +0 -41
  286. package/dist/cache/warmup.d.ts.map +0 -1
  287. package/dist/cache/warmup.js +0 -337
  288. package/dist/cache/warmup.js.map +0 -1
  289. package/dist/server/elicit.d.ts +0 -43
  290. package/dist/server/elicit.d.ts.map +0 -1
  291. package/dist/server/elicit.js +0 -183
  292. package/dist/server/elicit.js.map +0 -1
@@ -3,6 +3,7 @@
3
3
  * downstream dependency analysis.
4
4
  */
5
5
  import { buildSiblingExtensionFinding, classifyCdsImpact, deriveSiblingStem, isSiblingNameMatch, } from '../adt/cds-impact.js';
6
+ import { clampSearchResults } from '../adt/client.js';
6
7
  import { findWhereUsed } from '../adt/codeintel.js';
7
8
  import { decodeKtdText } from '../adt/ddic-xml.js';
8
9
  import { AdtApiError, isNotFoundError } from '../adt/errors.js';
@@ -12,12 +13,43 @@ import { extractCdsDependencies } from '../context/cds-deps.js';
12
13
  import { compressCdsContext, compressContext } from '../context/compressor.js';
13
14
  import { logger } from '../server/logger.js';
14
15
  import { contextCacheForDependencyPayloads } from './cache-security.js';
15
- import { cachedFeatures } from './feature-cache.js';
16
+ import { getCachedFeatures } from './feature-cache.js';
16
17
  import { normalizeObjectType, objectUrlForType } from './object-types.js';
17
- import { errorResult, textResult } from './shared.js';
18
+ import { errorResult, textResult, toolJson } from './shared.js';
19
+ import { lookupLiveUsages, resolveWhereUsedUri } from './where-used.js';
18
20
  // ─── SAPContext Handler ───────────────────────────────────────────────
19
21
  const DEFAULT_SIBLING_MAX_CANDIDATES = 4;
20
22
  const HARD_MAX_SIBLING_MAX_CANDIDATES = 10;
23
+ /** Per-bucket cap for action="impact". Applied per bucket, not across the whole result, so a
24
+ * crowded `abapConsumers` cannot hide a single decisive `bdefs` entry. */
25
+ const DEFAULT_IMPACT_BUCKET = 50;
26
+ /** Bucket keys of CdsImpactDownstream (everything except `summary`). */
27
+ const IMPACT_BUCKETS = [
28
+ 'projectionViews',
29
+ 'bdefs',
30
+ 'serviceDefinitions',
31
+ 'serviceBindings',
32
+ 'accessControls',
33
+ 'metadataExtensions',
34
+ 'abapConsumers',
35
+ 'tables',
36
+ 'documentation',
37
+ 'other',
38
+ ];
39
+ /** Slice every downstream bucket to `limit`, reporting which were cut. `summary` is untouched: it
40
+ * is computed pre-slice and is what makes a capped answer honest about the real blast radius. */
41
+ function boundImpactBuckets(downstream, limit) {
42
+ const truncatedBuckets = [];
43
+ const boundedDownstream = { ...downstream };
44
+ for (const bucket of IMPACT_BUCKETS) {
45
+ const entries = downstream[bucket];
46
+ if (entries.length > limit) {
47
+ truncatedBuckets.push(`${bucket} (${entries.length})`);
48
+ boundedDownstream[bucket] = entries.slice(0, limit);
49
+ }
50
+ }
51
+ return { boundedDownstream, truncatedBuckets };
52
+ }
21
53
  function parseSiblingMaxCandidates(value) {
22
54
  const parsed = Number(value ?? DEFAULT_SIBLING_MAX_CANDIDATES);
23
55
  if (!Number.isFinite(parsed))
@@ -38,31 +70,57 @@ export async function handleSAPContext(client, args, cachingLayer, cacheSecurity
38
70
  const rawMaxDeps = Number(args.maxDeps ?? 20);
39
71
  const maxDeps = Number.isFinite(rawMaxDeps) && rawMaxDeps >= 1 ? Math.min(Math.floor(rawMaxDeps), 100) : 20;
40
72
  const depth = Math.min(Math.max(Number(args.depth ?? 1), 1), 3);
41
- // ─── Reverse dep lookup (pre-warmer only) ─────────────────────────
73
+ // ─── Live reverse dependency lookup ───────────────────────────────
42
74
  if (action === 'usages') {
43
75
  if (!name)
44
76
  return errorResult('"name" is required for usages action.');
45
- if (cacheSecurity.isPerUserClient) {
46
- return errorResult('SAPContext(action="usages") is disabled under principal propagation because it reads the shared warmup index. ' +
47
- `Use SAPNavigate(action="references", type="${type || 'CLAS'}", name="${name}") for a live SAP-authorized lookup.`);
48
- }
49
- if (!cachingLayer) {
50
- return errorResult('Reverse dependency lookup requires object caching. Cache is disabled (ARC1_CACHE=none). ' +
51
- 'Enable caching and run cache warmup to use this feature.');
52
- }
53
- const usages = cachingLayer.getUsages(name);
54
- if (usages === null) {
55
- return errorResult(`Reverse dependency lookup requires a pre-warmed cache. The cache warmup has not been run yet.\n\n` +
56
- `To enable this feature:\n` +
57
- `1. Start ARC-1 with --cache-warmup (or set ARC1_CACHE_WARMUP=true)\n` +
58
- `2. Wait for the warmup to complete (indexes all custom objects)\n` +
59
- `3. Then retry SAPContext(action="usages", name="${name}")\n\n` +
60
- `Alternative: Use SAPNavigate(action="references", type="CLAS", name="${name}") for a live ADT lookup (slower, but works without warmup).`);
77
+ let resolvedUri;
78
+ let resolvedObject;
79
+ if (type) {
80
+ resolvedUri = await resolveWhereUsedUri(client, type, name);
81
+ if (!resolvedUri) {
82
+ return errorResult(`Cannot resolve function group for "${name}". Provide the function's group or use SAPSearch to resolve the object.`);
83
+ }
84
+ resolvedObject = { type, name: name.toUpperCase(), uri: resolvedUri };
61
85
  }
62
- if (usages.length === 0) {
63
- return textResult(`No objects found that depend on "${name}" in the cached index.`);
86
+ else {
87
+ const lookup = await client.lookupObjects([name], { maxResults: 20 });
88
+ const exactMatches = (lookup[0]?.matches ?? []).filter((match) => match.objectName.toUpperCase() === name.toUpperCase() && match.uri.length > 0);
89
+ const matches = [...new Map(exactMatches.map((match) => [match.uri, match])).values()];
90
+ if (matches.length === 0) {
91
+ return textResult(`No SAP repository object named "${name.toUpperCase()}" was found.`);
92
+ }
93
+ if (matches.length > 1) {
94
+ return errorResult(toolJson({
95
+ error: `Object name "${name.toUpperCase()}" is ambiguous. Retry with type.`,
96
+ candidates: matches.slice(0, 20).map((match) => ({
97
+ type: normalizeObjectType(match.objectType),
98
+ name: match.objectName,
99
+ uri: match.uri,
100
+ })),
101
+ }));
102
+ }
103
+ const match = matches[0];
104
+ resolvedUri = match.uri;
105
+ resolvedObject = { type: normalizeObjectType(match.objectType), name: match.objectName, uri: match.uri };
64
106
  }
65
- return textResult(JSON.stringify({ name, usageCount: usages.length, usages }, null, 2));
107
+ const usageMax = args.maxResults === undefined ? undefined : Number(args.maxResults);
108
+ const lookup = await lookupLiveUsages(client, resolvedUri, undefined, usageMax);
109
+ return textResult(toolJson({
110
+ name: name.toUpperCase(),
111
+ resolvedObject,
112
+ // usageCount is the TOTAL, not the page size — a truncated page must not under-report
113
+ // the blast radius of a change.
114
+ usageCount: lookup.total,
115
+ shown: lookup.results.length,
116
+ truncated: lookup.truncated,
117
+ ...(lookup.truncated
118
+ ? { hint: `Showing ${lookup.results.length} of ${lookup.total} usages. Raise maxResults (max 1000).` }
119
+ : {}),
120
+ usages: lookup.results,
121
+ source: 'live',
122
+ fallbackUsed: lookup.fallbackUsed,
123
+ }));
66
124
  }
67
125
  if (!type || !name) {
68
126
  return errorResult('Both "type" and "name" are required for SAPContext.');
@@ -219,28 +277,41 @@ export async function handleSAPContext(client, args, cachingLayer, cacheSecurity
219
277
  }
220
278
  }
221
279
  const upstreamCount = upstream.tables.length + upstream.views.length + upstream.associations.length + upstream.compositions.length;
280
+ // Bound each downstream bucket. A widely-consumed base view has a huge blast radius, and this
281
+ // path classifies the FULL where-used tree. `downstream.summary` is computed before slicing, so
282
+ // the reported total/direct/indirect stay honest — a truncated bucket must never shrink the
283
+ // blast radius a caller sees.
284
+ const impactLimit = clampSearchResults(args.maxResults, DEFAULT_IMPACT_BUCKET);
285
+ const { boundedDownstream, truncatedBuckets } = boundImpactBuckets(downstream, impactLimit);
222
286
  const response = {
223
287
  name,
224
288
  type: 'DDLS',
225
289
  upstream,
226
- downstream,
290
+ downstream: boundedDownstream,
227
291
  summary: {
228
292
  upstreamCount,
229
293
  downstreamTotal: downstream.summary.total,
230
294
  downstreamDirect: downstream.summary.direct,
231
295
  },
296
+ ...(truncatedBuckets.length > 0
297
+ ? {
298
+ truncatedBuckets,
299
+ hint: `Bucket(s) ${truncatedBuckets.join(', ')} were capped at ${impactLimit} entries each; ` +
300
+ `summary counts remain complete. Raise maxResults (max 1000) to see more.`,
301
+ }
302
+ : {}),
232
303
  ...(consistencyHints.length > 0 ? { consistencyHints } : {}),
233
304
  ...(siblingExtensionAnalysis ? { siblingExtensionAnalysis } : {}),
234
305
  ...(warnings.length > 0 ? { warnings } : {}),
235
306
  };
236
- return textResult(JSON.stringify(response, null, 2));
307
+ return textResult(toolJson(response));
237
308
  }
238
309
  if (action === 'structure') {
239
310
  if (type !== 'TABL') {
240
311
  return errorResult('SAPContext(action="structure") supports TABL only.');
241
312
  }
242
313
  const result = await buildStructureHierarchy(client, name);
243
- return textResult(JSON.stringify(result, null, 2));
314
+ return textResult(toolJson(result));
244
315
  }
245
316
  // Get source — either provided or fetched from SAP
246
317
  let source;
@@ -310,9 +381,8 @@ export async function handleSAPContext(client, args, cachingLayer, cacheSecurity
310
381
  }
311
382
  }
312
383
  // Use detected ABAP version from probe if available, otherwise Cloud (superset)
313
- const abaplintVersion = cachedFeatures?.abapRelease
314
- ? mapSapReleaseToAbaplintVersion(cachedFeatures.abapRelease)
315
- : undefined;
384
+ const probedAbapRelease = getCachedFeatures()?.abapRelease;
385
+ const abaplintVersion = probedAbapRelease ? mapSapReleaseToAbaplintVersion(probedAbapRelease) : undefined;
316
386
  const result = await compressContext(client, source, name, type, maxDeps, depth, abaplintVersion, dependencyPayloadCache);
317
387
  return textResult(prependKtd(result.output, name, ktdMarkdown));
318
388
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/handlers/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/handlers/context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"diagnose.d.ts","sourceRoot":"","sources":["../../src/handlers/diagnose.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAyClD,OAAO,EAAe,KAAK,UAAU,EAAc,MAAM,aAAa,CAAC;AAEvE,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAoV7G"}
1
+ {"version":3,"file":"diagnose.d.ts","sourceRoot":"","sources":["../../src/handlers/diagnose.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA2ClD,OAAO,EAAe,KAAK,UAAU,EAAwB,MAAM,aAAa,CAAC;AAEjF,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAqW7G"}
@@ -2,12 +2,12 @@
2
2
  * SAPDiagnose handler — runtime diagnostics: short dumps (ST22), traces, gateway errors, object
3
3
  * state, ATC, unit tests, CDS test cases.
4
4
  */
5
- import { applyFixProposal, getCdsTestCases, getFixProposals, runAtcCheck, runUnitTests, supportsCdsTestCases, syntaxCheck, } from '../adt/devtools.js';
5
+ import { applyFixProposal, getAtcSystemDefaultVariant, getCdsTestCases, getFixProposals, listAtcVariants, runAtcCheck, runUnitTests, supportsCdsTestCases, syntaxCheck, } from '../adt/devtools.js';
6
6
  import { createTraceRequest, deleteTraceRequest, getAuthorizationTrace, getCdsCreateStatements, getDump, getGatewayErrorDetail, getObjectState, getSqlTraceDirectory, getSqlTraceState, getTraceDbAccesses, getTraceHitlist, getTraceStatements, listDumps, listGatewayErrors, listSystemMessages, listTraceRequests, listTraces, probeODataPerformance, setSqlTraceState, } from '../adt/diagnostics.js';
7
7
  import { AdtApiError } from '../adt/errors.js';
8
8
  import { isBtpSystem } from './feature-cache.js';
9
9
  import { classIncludeUrl, normalizeObjectType, objectUrlForType, sourceUrlForType } from './object-types.js';
10
- import { errorResult, textResult } from './shared.js';
10
+ import { errorResult, textResult, toolJson } from './shared.js';
11
11
  export async function handleSAPDiagnose(client, args) {
12
12
  const action = String(args.action ?? '');
13
13
  const name = String(args.name ?? '');
@@ -23,7 +23,7 @@ export async function handleSAPDiagnose(client, args) {
23
23
  if (content !== undefined)
24
24
  opts.content = content;
25
25
  const result = await syntaxCheck(client.http, client.safety, objectUrl, Object.keys(opts).length > 0 ? opts : undefined);
26
- return textResult(JSON.stringify(result, null, 2));
26
+ return textResult(toolJson(result));
27
27
  }
28
28
  case 'unittest': {
29
29
  const objectUrl = objectUrlForType(type, name);
@@ -31,20 +31,44 @@ export async function handleSAPDiagnose(client, args) {
31
31
  const result = await runUnitTests(client.http, client.safety, objectUrl, { coverage });
32
32
  // Default (no coverage) keeps the historical array output; coverage requested → {tests, coverage}.
33
33
  if (!coverage)
34
- return textResult(JSON.stringify(result.tests, null, 2));
34
+ return textResult(toolJson(result.tests));
35
35
  const out = { tests: result.tests };
36
36
  if (result.coverage)
37
37
  out.coverage = result.coverage;
38
38
  else
39
39
  out.coverageNote =
40
40
  'Coverage unavailable on this system (the coverage-measurement endpoint or measurement result was not available).';
41
- return textResult(JSON.stringify(out, null, 2));
41
+ return textResult(toolJson(out));
42
42
  }
43
43
  case 'atc': {
44
44
  const objectUrl = objectUrlForType(type, name);
45
45
  const variant = args.variant;
46
46
  const result = await runAtcCheck(client.http, client.safety, objectUrl, variant);
47
- return textResult(JSON.stringify(result, null, 2));
47
+ return textResult(toolJson(result));
48
+ }
49
+ case 'atc_variants': {
50
+ // Discover which check variant to pass to action="atc": the system default (used when none is
51
+ // given) + the available variants. `variant` doubles as an optional name filter (default all).
52
+ // Trim/normalize so the echoed `filter` matches what listAtcVariants actually queries.
53
+ const filter = args.variant?.trim() || '*';
54
+ // The variant list is the core result; the system default is a best-effort annotation. Only
55
+ // swallow "endpoint absent / not negotiable" (404/406) — a system that simply doesn't expose
56
+ // /atc/customizing still gives a useful list. Auth (401/403), 5xx, and network failures are
57
+ // real problems and must surface, not masquerade as a null default (would hide a regression).
58
+ const [systemDefault, variants] = await Promise.all([
59
+ getAtcSystemDefaultVariant(client.http, client.safety).catch((err) => {
60
+ if (err instanceof AdtApiError && (err.statusCode === 404 || err.statusCode === 406))
61
+ return undefined;
62
+ throw err;
63
+ }),
64
+ listAtcVariants(client.http, client.safety, filter),
65
+ ]);
66
+ return textResult(toolJson({
67
+ systemDefault: systemDefault ?? null,
68
+ filter,
69
+ count: variants.length,
70
+ variants: variants.map((v) => ({ name: v.name, description: v.description })),
71
+ }));
48
72
  }
49
73
  case 'cds_testcases': {
50
74
  // SAP-suggested ABAP Unit test cases for a CDS entity (CDS Test Double Framework).
@@ -67,7 +91,7 @@ export async function handleSAPDiagnose(client, args) {
67
91
  'then implement one FOR TESTING method per case (insert_test_data for the doubled sources, ' +
68
92
  'assert with cl_abap_unit_assert). AI testdata/testmethod generation is not exposed.',
69
93
  };
70
- return textResult(JSON.stringify(payload, null, 2));
94
+ return textResult(toolJson(payload));
71
95
  }
72
96
  case 'object_state': {
73
97
  if (!name || !type)
@@ -82,7 +106,7 @@ export async function handleSAPDiagnose(client, args) {
82
106
  ]
83
107
  : [{ section: 'main', uri: sourceUrlForType(type, name) }];
84
108
  const result = await getObjectState(client.http, client.safety, { type, name, sections });
85
- return textResult(JSON.stringify(result, null, 2));
109
+ return textResult(toolJson(result));
86
110
  }
87
111
  case 'quickfix': {
88
112
  const source = args.source;
@@ -100,7 +124,7 @@ export async function handleSAPDiagnose(client, args) {
100
124
  if (!Number.isFinite(column))
101
125
  return errorResult('"column" must be a number for "quickfix" action.');
102
126
  const proposals = await getFixProposals(client.http, client.safety, sourceUri ?? sourceUrlForType(type, name), source, line, column);
103
- return textResult(JSON.stringify(proposals, null, 2));
127
+ return textResult(toolJson(proposals));
104
128
  }
105
129
  case 'apply_quickfix': {
106
130
  const source = args.source;
@@ -132,7 +156,7 @@ export async function handleSAPDiagnose(client, args) {
132
156
  userContent: proposalUserContent,
133
157
  ...(proposalAffectedObjects ? { affectedObjects: proposalAffectedObjects } : {}),
134
158
  }, sourceUri ?? sourceUrlForType(type, name), source, line, column);
135
- return textResult(JSON.stringify(deltas, null, 2));
159
+ return textResult(toolJson(deltas));
136
160
  }
137
161
  case 'dumps': {
138
162
  const id = args.id;
@@ -160,12 +184,12 @@ export async function handleSAPDiagnose(client, args) {
160
184
  if (includeFullText) {
161
185
  payload.formattedText = detail.formattedText;
162
186
  }
163
- return textResult(JSON.stringify(payload, null, 2));
187
+ return textResult(toolJson(payload));
164
188
  }
165
189
  const user = args.user;
166
190
  const maxResults = args.maxResults ? Number(args.maxResults) : undefined;
167
191
  const dumps = await listDumps(client.http, client.safety, { user, maxResults });
168
- return textResult(JSON.stringify(dumps, null, 2));
192
+ return textResult(toolJson(dumps));
169
193
  }
170
194
  case 'traces': {
171
195
  const id = args.id;
@@ -175,15 +199,15 @@ export async function handleSAPDiagnose(client, args) {
175
199
  switch (analysis) {
176
200
  case 'hitlist': {
177
201
  const hitlist = await getTraceHitlist(client.http, client.safety, id);
178
- return textResult(JSON.stringify(hitlist, null, 2));
202
+ return textResult(toolJson(hitlist));
179
203
  }
180
204
  case 'statements': {
181
205
  const statements = await getTraceStatements(client.http, client.safety, id);
182
- return textResult(JSON.stringify(statements, null, 2));
206
+ return textResult(toolJson(statements));
183
207
  }
184
208
  case 'dbAccesses': {
185
209
  const dbAccesses = await getTraceDbAccesses(client.http, client.safety, id);
186
- return textResult(JSON.stringify(dbAccesses, null, 2));
210
+ return textResult(toolJson(dbAccesses));
187
211
  }
188
212
  default:
189
213
  return errorResult(`Unknown trace analysis type: ${analysis}. Supported: hitlist, statements, dbAccesses`);
@@ -191,7 +215,7 @@ export async function handleSAPDiagnose(client, args) {
191
215
  }
192
216
  // List traces
193
217
  const traces = await listTraces(client.http, client.safety);
194
- return textResult(JSON.stringify(traces, null, 2));
218
+ return textResult(toolJson(traces));
195
219
  }
196
220
  case 'trace_start': {
197
221
  const opts = {};
@@ -212,23 +236,23 @@ export async function handleSAPDiagnose(client, args) {
212
236
  if (args.description !== undefined)
213
237
  opts.description = String(args.description);
214
238
  const request = await createTraceRequest(client.http, client.safety, client.username, client.sapClient, opts);
215
- return textResult(JSON.stringify({
239
+ return textResult(toolJson({
216
240
  armed: true,
217
241
  request,
218
242
  next: 'Reproduce the slow action (e.g. the OData call) as this user PROMPTLY — an http request captures the user\'s very next matching HTTP call, so avoid other ARC-1 calls in between (they would consume it). Then SAPDiagnose(action="traces") with no id to list recorded traces, find the new trace id, and read it with analysis="dbAccesses". Note: for an HTTP/OData trace, dbAccesses lists the tables the request touched but SAP returns no per-statement SQL text/timing here (hitlist/statements are usually empty); for the actual slow SQL + duration + plan use ST05 in SAP GUI. The profiler trace is richest for dialog/report/RFC traces of ABAP-side code.',
219
- }, null, 2));
243
+ }));
220
244
  }
221
245
  case 'trace_requests': {
222
246
  const user = args.traceUser ?? args.user ?? client.username;
223
247
  const requests = await listTraceRequests(client.http, client.safety, user);
224
- return textResult(JSON.stringify(requests, null, 2));
248
+ return textResult(toolJson(requests));
225
249
  }
226
250
  case 'trace_cancel': {
227
251
  const id = args.id;
228
252
  if (!id)
229
253
  return errorResult('trace_cancel requires "id" (from trace_start or trace_requests).');
230
254
  await deleteTraceRequest(client.http, client.safety, id);
231
- return textResult(JSON.stringify({ cancelled: true, id }, null, 2));
255
+ return textResult(toolJson({ cancelled: true, id }));
232
256
  }
233
257
  case 'system_messages': {
234
258
  const user = args.user;
@@ -236,7 +260,7 @@ export async function handleSAPDiagnose(client, args) {
236
260
  const from = args.from;
237
261
  const to = args.to;
238
262
  const messages = await listSystemMessages(client.http, client.safety, { user, maxResults, from, to });
239
- return textResult(JSON.stringify(messages, null, 2));
263
+ return textResult(toolJson(messages));
240
264
  }
241
265
  case 'gateway_errors': {
242
266
  if (isBtpSystem()) {
@@ -251,10 +275,10 @@ export async function handleSAPDiagnose(client, args) {
251
275
  const errorType = args.errorType;
252
276
  if (detailUrl || id) {
253
277
  const detail = await getGatewayErrorDetail(client.http, client.safety, { detailUrl, id, errorType });
254
- return textResult(JSON.stringify(detail, null, 2));
278
+ return textResult(toolJson(detail));
255
279
  }
256
280
  const errors = await listGatewayErrors(client.http, client.safety, { user, maxResults, from, to });
257
- return textResult(JSON.stringify(errors, null, 2));
281
+ return textResult(toolJson(errors));
258
282
  }
259
283
  case 'odata_perf': {
260
284
  const url = String(args.url ?? '').trim();
@@ -262,18 +286,18 @@ export async function handleSAPDiagnose(client, args) {
262
286
  return errorResult('SAPDiagnose action="odata_perf" requires a "url" — the host-relative OData path from the Fiori app\'s Network tab (e.g. "/sap/opu/odata4/sap/.../Entity?$filter=..." or "/sap/opu/odata/sap/<SRV>/<EntitySet>?$top=20"). ARC-1 GETs it with ?sap-statistics=true and a wall-clock timer, then returns the server-side timing split + a routing verdict.');
263
287
  }
264
288
  const perf = await probeODataPerformance(client.http, client.safety, url);
265
- return textResult(JSON.stringify(perf, null, 2));
289
+ return textResult(toolJson(perf));
266
290
  }
267
291
  case 'cds_sql': {
268
292
  if (!name) {
269
293
  return errorResult('SAPDiagnose action="cds_sql" requires a "name" — the CDS DDL source (DDLS), e.g. "I_CURRENCY". Returns the native SQL CREATE VIEW statements the CDS view compiles to.');
270
294
  }
271
295
  const cdsSql = await getCdsCreateStatements(client.http, client.safety, name);
272
- return textResult(JSON.stringify(cdsSql, null, 2));
296
+ return textResult(toolJson(cdsSql));
273
297
  }
274
298
  case 'sql_trace_state': {
275
299
  const states = await getSqlTraceState(client.http, client.safety);
276
- return textResult(JSON.stringify(states, null, 2));
300
+ return textResult(toolJson(states));
277
301
  }
278
302
  case 'set_sql_trace_state': {
279
303
  if (args.sqlOn === undefined) {
@@ -282,16 +306,16 @@ export async function handleSAPDiagnose(client, args) {
282
306
  const sqlOn = args.sqlOn === true || String(args.sqlOn) === 'true';
283
307
  const traceUser = args.user !== undefined ? String(args.user) : undefined;
284
308
  const states = await setSqlTraceState(client.http, client.safety, { sqlOn, traceUser });
285
- return textResult(JSON.stringify({
309
+ return textResult(toolJson({
286
310
  states,
287
311
  next: sqlOn
288
312
  ? 'SQL trace armed. Reproduce the slow request, then call SAPDiagnose(action="sql_trace_directory") for the SQL Trace Analysis link, or read the generated SQL with SAPDiagnose(action="cds_sql").'
289
313
  : 'SQL trace disarmed.',
290
- }, null, 2));
314
+ }));
291
315
  }
292
316
  case 'sql_trace_directory': {
293
317
  const dir = await getSqlTraceDirectory(client.http, client.safety);
294
- return textResult(JSON.stringify(dir, null, 2));
318
+ return textResult(toolJson(dir));
295
319
  }
296
320
  case 'authorization_trace': {
297
321
  const user = String(args.user ?? '').trim() || undefined;
@@ -300,7 +324,7 @@ export async function handleSAPDiagnose(client, args) {
300
324
  const maxResults = args.maxResults === undefined ? undefined : Number(args.maxResults);
301
325
  try {
302
326
  const result = await getAuthorizationTrace(client, { user, authObject, onlyFailures, maxResults });
303
- return textResult(JSON.stringify(result, null, 2));
327
+ return textResult(toolJson(result));
304
328
  }
305
329
  catch (err) {
306
330
  if (err instanceof AdtApiError && /Cannot find '/i.test(err.message)) {
@@ -312,7 +336,7 @@ export async function handleSAPDiagnose(client, args) {
312
336
  }
313
337
  }
314
338
  default:
315
- return errorResult(`Unknown SAPDiagnose action: ${action}. Supported: syntax, unittest, atc, cds_testcases, object_state, quickfix, apply_quickfix, dumps, traces, trace_start, trace_requests, trace_cancel, system_messages, gateway_errors, odata_perf, cds_sql, sql_trace_state, set_sql_trace_state, sql_trace_directory, authorization_trace`);
339
+ return errorResult(`Unknown SAPDiagnose action: ${action}. Supported: syntax, unittest, atc, atc_variants, cds_testcases, object_state, quickfix, apply_quickfix, dumps, traces, trace_start, trace_requests, trace_cancel, system_messages, gateway_errors, odata_perf, cds_sql, sql_trace_state, set_sql_trace_state, sql_trace_directory, authorization_trace`);
316
340
  }
317
341
  }
318
342
  function selectDumpSections(detail, requestedSections) {
@@ -1 +1 @@
1
- {"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../src/handlers/diagnose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../src/handlers/diagnose.ts"],"names":[],"mappings":"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"}