arc-1 0.9.25 → 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 (332) hide show
  1. package/README.md +29 -12
  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/authorization-trace.d.ts +23 -0
  7. package/dist/adt/authorization-trace.d.ts.map +1 -0
  8. package/dist/adt/authorization-trace.js +196 -0
  9. package/dist/adt/authorization-trace.js.map +1 -0
  10. package/dist/adt/client.d.ts +21 -8
  11. package/dist/adt/client.d.ts.map +1 -1
  12. package/dist/adt/client.js +47 -7
  13. package/dist/adt/client.js.map +1 -1
  14. package/dist/adt/config.d.ts +15 -0
  15. package/dist/adt/config.d.ts.map +1 -1
  16. package/dist/adt/config.js.map +1 -1
  17. package/dist/adt/crud.d.ts +7 -2
  18. package/dist/adt/crud.d.ts.map +1 -1
  19. package/dist/adt/crud.js +12 -4
  20. package/dist/adt/crud.js.map +1 -1
  21. package/dist/adt/ddic-xml.d.ts +27 -17
  22. package/dist/adt/ddic-xml.d.ts.map +1 -1
  23. package/dist/adt/ddic-xml.js +45 -34
  24. package/dist/adt/ddic-xml.js.map +1 -1
  25. package/dist/adt/devtools.d.ts +13 -0
  26. package/dist/adt/devtools.d.ts.map +1 -1
  27. package/dist/adt/devtools.js +120 -50
  28. package/dist/adt/devtools.js.map +1 -1
  29. package/dist/adt/diagnostics.d.ts +1 -1
  30. package/dist/adt/diagnostics.d.ts.map +1 -1
  31. package/dist/adt/diagnostics.js +1 -0
  32. package/dist/adt/diagnostics.js.map +1 -1
  33. package/dist/adt/errors.d.ts +8 -8
  34. package/dist/adt/errors.d.ts.map +1 -1
  35. package/dist/adt/errors.js +30 -11
  36. package/dist/adt/errors.js.map +1 -1
  37. package/dist/adt/http.d.ts +17 -1
  38. package/dist/adt/http.d.ts.map +1 -1
  39. package/dist/adt/http.js +102 -19
  40. package/dist/adt/http.js.map +1 -1
  41. package/dist/adt/oauth.d.ts +2 -2
  42. package/dist/adt/oauth.d.ts.map +1 -1
  43. package/dist/adt/oauth.js +5 -3
  44. package/dist/adt/oauth.js.map +1 -1
  45. package/dist/adt/package-hierarchy.d.ts.map +1 -1
  46. package/dist/adt/package-hierarchy.js.map +1 -1
  47. package/dist/adt/rap-generate.js.map +1 -1
  48. package/dist/adt/rap-handlers.js.map +1 -1
  49. package/dist/adt/rap-preflight.js.map +1 -1
  50. package/dist/adt/safety.d.ts +13 -13
  51. package/dist/adt/safety.d.ts.map +1 -1
  52. package/dist/adt/semaphore.d.ts.map +1 -1
  53. package/dist/adt/server-driven.d.ts +154 -34
  54. package/dist/adt/server-driven.d.ts.map +1 -1
  55. package/dist/adt/server-driven.js +178 -53
  56. package/dist/adt/server-driven.js.map +1 -1
  57. package/dist/adt/structure-hierarchy.js.map +1 -1
  58. package/dist/adt/transport.d.ts +6 -6
  59. package/dist/adt/transport.d.ts.map +1 -1
  60. package/dist/adt/transport.js +23 -34
  61. package/dist/adt/transport.js.map +1 -1
  62. package/dist/adt/types.d.ts +94 -6
  63. package/dist/adt/types.d.ts.map +1 -1
  64. package/dist/adt/version-diff.js.map +1 -1
  65. package/dist/adt/xml-parser.d.ts +52 -12
  66. package/dist/adt/xml-parser.d.ts.map +1 -1
  67. package/dist/adt/xml-parser.js +120 -10
  68. package/dist/adt/xml-parser.js.map +1 -1
  69. package/dist/aff/validator.js.map +1 -1
  70. package/dist/authz/policy.d.ts +8 -0
  71. package/dist/authz/policy.d.ts.map +1 -1
  72. package/dist/authz/policy.js +24 -0
  73. package/dist/authz/policy.js.map +1 -1
  74. package/dist/cache/cache.d.ts +4 -36
  75. package/dist/cache/cache.d.ts.map +1 -1
  76. package/dist/cache/cache.js +4 -5
  77. package/dist/cache/cache.js.map +1 -1
  78. package/dist/cache/caching-layer.d.ts +6 -22
  79. package/dist/cache/caching-layer.d.ts.map +1 -1
  80. package/dist/cache/caching-layer.js +5 -29
  81. package/dist/cache/caching-layer.js.map +1 -1
  82. package/dist/cache/inactive-list-cache.d.ts.map +1 -1
  83. package/dist/cache/memory.d.ts +2 -13
  84. package/dist/cache/memory.d.ts.map +1 -1
  85. package/dist/cache/memory.js +1 -70
  86. package/dist/cache/memory.js.map +1 -1
  87. package/dist/cache/sqlite.d.ts +3 -10
  88. package/dist/cache/sqlite.d.ts.map +1 -1
  89. package/dist/cache/sqlite.js +9 -85
  90. package/dist/cache/sqlite.js.map +1 -1
  91. package/dist/cli.js +6 -3
  92. package/dist/cli.js.map +1 -1
  93. package/dist/context/compressor.js.map +1 -1
  94. package/dist/context/grep.js.map +1 -1
  95. package/dist/context/unit-surgery.d.ts +28 -0
  96. package/dist/context/unit-surgery.d.ts.map +1 -0
  97. package/dist/context/unit-surgery.js +150 -0
  98. package/dist/context/unit-surgery.js.map +1 -0
  99. package/dist/extract-sap-cookies.js.map +1 -1
  100. package/dist/handlers/activate.d.ts.map +1 -1
  101. package/dist/handlers/activate.js +44 -6
  102. package/dist/handlers/activate.js.map +1 -1
  103. package/dist/handlers/context.d.ts +1 -1
  104. package/dist/handlers/context.d.ts.map +1 -1
  105. package/dist/handlers/context.js +98 -28
  106. package/dist/handlers/context.js.map +1 -1
  107. package/dist/handlers/diagnose.d.ts.map +1 -1
  108. package/dist/handlers/diagnose.js +74 -31
  109. package/dist/handlers/diagnose.js.map +1 -1
  110. package/dist/handlers/dispatch.d.ts +12 -1
  111. package/dist/handlers/dispatch.d.ts.map +1 -1
  112. package/dist/handlers/dispatch.js +160 -25
  113. package/dist/handlers/dispatch.js.map +1 -1
  114. package/dist/handlers/feature-cache.d.ts +27 -14
  115. package/dist/handlers/feature-cache.d.ts.map +1 -1
  116. package/dist/handlers/feature-cache.js +63 -25
  117. package/dist/handlers/feature-cache.js.map +1 -1
  118. package/dist/handlers/function-processing.d.ts +61 -0
  119. package/dist/handlers/function-processing.d.ts.map +1 -0
  120. package/dist/handlers/function-processing.js +45 -0
  121. package/dist/handlers/function-processing.js.map +1 -0
  122. package/dist/handlers/git.d.ts.map +1 -1
  123. package/dist/handlers/git.js +44 -19
  124. package/dist/handlers/git.js.map +1 -1
  125. package/dist/handlers/hyperfocused.d.ts.map +1 -1
  126. package/dist/handlers/hyperfocused.js +2 -3
  127. package/dist/handlers/hyperfocused.js.map +1 -1
  128. package/dist/handlers/lint.d.ts.map +1 -1
  129. package/dist/handlers/lint.js +7 -7
  130. package/dist/handlers/lint.js.map +1 -1
  131. package/dist/handlers/manage.d.ts.map +1 -1
  132. package/dist/handlers/manage.js +47 -28
  133. package/dist/handlers/manage.js.map +1 -1
  134. package/dist/handlers/navigate.d.ts.map +1 -1
  135. package/dist/handlers/navigate.js +27 -90
  136. package/dist/handlers/navigate.js.map +1 -1
  137. package/dist/handlers/object-types.d.ts +2 -0
  138. package/dist/handlers/object-types.d.ts.map +1 -1
  139. package/dist/handlers/object-types.js +10 -0
  140. package/dist/handlers/object-types.js.map +1 -1
  141. package/dist/handlers/query-errors.d.ts +11 -0
  142. package/dist/handlers/query-errors.d.ts.map +1 -0
  143. package/dist/handlers/query-errors.js +216 -0
  144. package/dist/handlers/query-errors.js.map +1 -0
  145. package/dist/handlers/query.d.ts.map +1 -1
  146. package/dist/handlers/query.js +62 -67
  147. package/dist/handlers/query.js.map +1 -1
  148. package/dist/handlers/read.d.ts.map +1 -1
  149. package/dist/handlers/read.js +64 -41
  150. package/dist/handlers/read.js.map +1 -1
  151. package/dist/handlers/schemas.d.ts +285 -234
  152. package/dist/handlers/schemas.d.ts.map +1 -1
  153. package/dist/handlers/schemas.js +126 -32
  154. package/dist/handlers/schemas.js.map +1 -1
  155. package/dist/handlers/search.d.ts.map +1 -1
  156. package/dist/handlers/search.js +8 -7
  157. package/dist/handlers/search.js.map +1 -1
  158. package/dist/handlers/shared.d.ts +13 -0
  159. package/dist/handlers/shared.d.ts.map +1 -1
  160. package/dist/handlers/shared.js +15 -0
  161. package/dist/handlers/shared.js.map +1 -1
  162. package/dist/handlers/tool-descriptions.d.ts +4 -0
  163. package/dist/handlers/tool-descriptions.d.ts.map +1 -0
  164. package/dist/handlers/tool-descriptions.js +52 -0
  165. package/dist/handlers/tool-descriptions.js.map +1 -0
  166. package/dist/handlers/tool-registry.d.ts +20 -6
  167. package/dist/handlers/tool-registry.d.ts.map +1 -1
  168. package/dist/handlers/tool-registry.js +18 -0
  169. package/dist/handlers/tool-registry.js.map +1 -1
  170. package/dist/handlers/tools.d.ts.map +1 -1
  171. package/dist/handlers/tools.js +124 -92
  172. package/dist/handlers/tools.js.map +1 -1
  173. package/dist/handlers/transport.d.ts +1 -1
  174. package/dist/handlers/transport.d.ts.map +1 -1
  175. package/dist/handlers/transport.js +37 -10
  176. package/dist/handlers/transport.js.map +1 -1
  177. package/dist/handlers/where-used.d.ts +25 -0
  178. package/dist/handlers/where-used.d.ts.map +1 -0
  179. package/dist/handlers/where-used.js +94 -0
  180. package/dist/handlers/where-used.js.map +1 -0
  181. package/dist/handlers/write/class-surgery.d.ts.map +1 -1
  182. package/dist/handlers/write/class-surgery.js +11 -12
  183. package/dist/handlers/write/class-surgery.js.map +1 -1
  184. package/dist/handlers/write/create.d.ts.map +1 -1
  185. package/dist/handlers/write/create.js +194 -84
  186. package/dist/handlers/write/create.js.map +1 -1
  187. package/dist/handlers/write/rap.d.ts.map +1 -1
  188. package/dist/handlers/write/rap.js +9 -9
  189. package/dist/handlers/write/rap.js.map +1 -1
  190. package/dist/handlers/write/unit-surgery.d.ts +5 -0
  191. package/dist/handlers/write/unit-surgery.d.ts.map +1 -0
  192. package/dist/handlers/write/unit-surgery.js +47 -0
  193. package/dist/handlers/write/unit-surgery.js.map +1 -0
  194. package/dist/handlers/write/update-delete.js +8 -8
  195. package/dist/handlers/write/update-delete.js.map +1 -1
  196. package/dist/handlers/write-helpers.d.ts +7 -4
  197. package/dist/handlers/write-helpers.d.ts.map +1 -1
  198. package/dist/handlers/write-helpers.js +118 -63
  199. package/dist/handlers/write-helpers.js.map +1 -1
  200. package/dist/handlers/write.d.ts.map +1 -1
  201. package/dist/handlers/write.js +35 -13
  202. package/dist/handlers/write.js.map +1 -1
  203. package/dist/lint/config-builder.js.map +1 -1
  204. package/dist/lint/lint.d.ts.map +1 -1
  205. package/dist/lint/lint.js +4 -2
  206. package/dist/lint/lint.js.map +1 -1
  207. package/dist/probe/catalog.js +1 -1
  208. package/dist/probe/catalog.js.map +1 -1
  209. package/dist/public/testing.js.map +1 -1
  210. package/dist/public/ui/app.js +1 -14
  211. package/dist/registry/tool-registry.d.ts.map +1 -1
  212. package/dist/server/audit.d.ts +27 -15
  213. package/dist/server/audit.d.ts.map +1 -1
  214. package/dist/server/audit.js.map +1 -1
  215. package/dist/server/auth-rate-limit.d.ts +18 -9
  216. package/dist/server/auth-rate-limit.d.ts.map +1 -1
  217. package/dist/server/auth-rate-limit.js +31 -6
  218. package/dist/server/auth-rate-limit.js.map +1 -1
  219. package/dist/server/auth-summary.d.ts +4 -0
  220. package/dist/server/auth-summary.d.ts.map +1 -0
  221. package/dist/server/auth-summary.js +67 -0
  222. package/dist/server/auth-summary.js.map +1 -0
  223. package/dist/server/config.d.ts.map +1 -1
  224. package/dist/server/config.js +110 -7
  225. package/dist/server/config.js.map +1 -1
  226. package/dist/server/context.d.ts +12 -0
  227. package/dist/server/context.d.ts.map +1 -1
  228. package/dist/server/context.js.map +1 -1
  229. package/dist/server/destination-discovery.d.ts +36 -0
  230. package/dist/server/destination-discovery.d.ts.map +1 -0
  231. package/dist/server/destination-discovery.js +130 -0
  232. package/dist/server/destination-discovery.js.map +1 -0
  233. package/dist/server/destination-registry.d.ts +111 -0
  234. package/dist/server/destination-registry.d.ts.map +1 -0
  235. package/dist/server/destination-registry.js +449 -0
  236. package/dist/server/destination-registry.js.map +1 -0
  237. package/dist/server/http.d.ts +43 -1
  238. package/dist/server/http.d.ts.map +1 -1
  239. package/dist/server/http.js +283 -73
  240. package/dist/server/http.js.map +1 -1
  241. package/dist/server/logger.d.ts.map +1 -1
  242. package/dist/server/logger.js +58 -13
  243. package/dist/server/logger.js.map +1 -1
  244. package/dist/server/mcp-rate-limit.d.ts +6 -4
  245. package/dist/server/mcp-rate-limit.d.ts.map +1 -1
  246. package/dist/server/mcp-rate-limit.js +6 -4
  247. package/dist/server/mcp-rate-limit.js.map +1 -1
  248. package/dist/server/multi-target-basic-auth.d.ts +49 -0
  249. package/dist/server/multi-target-basic-auth.d.ts.map +1 -0
  250. package/dist/server/multi-target-basic-auth.js +246 -0
  251. package/dist/server/multi-target-basic-auth.js.map +1 -0
  252. package/dist/server/multi-target-catalog.d.ts +33 -0
  253. package/dist/server/multi-target-catalog.d.ts.map +1 -0
  254. package/dist/server/multi-target-catalog.js +130 -0
  255. package/dist/server/multi-target-catalog.js.map +1 -0
  256. package/dist/server/multi-target-destination-config.d.ts +12 -0
  257. package/dist/server/multi-target-destination-config.d.ts.map +1 -0
  258. package/dist/server/multi-target-destination-config.js +37 -0
  259. package/dist/server/multi-target-destination-config.js.map +1 -0
  260. package/dist/server/multi-target-destination-runtime.d.ts +20 -0
  261. package/dist/server/multi-target-destination-runtime.d.ts.map +1 -0
  262. package/dist/server/multi-target-destination-runtime.js +191 -0
  263. package/dist/server/multi-target-destination-runtime.js.map +1 -0
  264. package/dist/server/multi-target-feature-state.d.ts +6 -0
  265. package/dist/server/multi-target-feature-state.d.ts.map +1 -0
  266. package/dist/server/multi-target-feature-state.js +41 -0
  267. package/dist/server/multi-target-feature-state.js.map +1 -0
  268. package/dist/server/multi-target-identity.d.ts +10 -0
  269. package/dist/server/multi-target-identity.d.ts.map +1 -0
  270. package/dist/server/multi-target-identity.js +18 -0
  271. package/dist/server/multi-target-identity.js.map +1 -0
  272. package/dist/server/multi-target-runtime.d.ts +27 -0
  273. package/dist/server/multi-target-runtime.d.ts.map +1 -0
  274. package/dist/server/multi-target-runtime.js +110 -0
  275. package/dist/server/multi-target-runtime.js.map +1 -0
  276. package/dist/server/multi-target-server.d.ts +53 -0
  277. package/dist/server/multi-target-server.d.ts.map +1 -0
  278. package/dist/server/multi-target-server.js +434 -0
  279. package/dist/server/multi-target-server.js.map +1 -0
  280. package/dist/server/multi-target-shared-auth-state.d.ts +82 -0
  281. package/dist/server/multi-target-shared-auth-state.d.ts.map +1 -0
  282. package/dist/server/multi-target-shared-auth-state.js +226 -0
  283. package/dist/server/multi-target-shared-auth-state.js.map +1 -0
  284. package/dist/server/multi-target-tools.d.ts +20 -0
  285. package/dist/server/multi-target-tools.d.ts.map +1 -0
  286. package/dist/server/multi-target-tools.js +191 -0
  287. package/dist/server/multi-target-tools.js.map +1 -0
  288. package/dist/server/oauth-session-recovery.d.ts +22 -0
  289. package/dist/server/oauth-session-recovery.d.ts.map +1 -0
  290. package/dist/server/oauth-session-recovery.js +69 -0
  291. package/dist/server/oauth-session-recovery.js.map +1 -0
  292. package/dist/server/server.d.ts +47 -25
  293. package/dist/server/server.d.ts.map +1 -1
  294. package/dist/server/server.js +490 -301
  295. package/dist/server/server.js.map +1 -1
  296. package/dist/server/sinks/btp-auditlog.d.ts.map +1 -1
  297. package/dist/server/sinks/btp-auditlog.js +83 -11
  298. package/dist/server/sinks/btp-auditlog.js.map +1 -1
  299. package/dist/server/sinks/file.d.ts.map +1 -1
  300. package/dist/server/sinks/file.js.map +1 -1
  301. package/dist/server/sinks/stderr.d.ts.map +1 -1
  302. package/dist/server/sinks/stderr.js.map +1 -1
  303. package/dist/server/tool-auth.d.ts +10 -0
  304. package/dist/server/tool-auth.d.ts.map +1 -0
  305. package/dist/server/tool-auth.js +75 -0
  306. package/dist/server/tool-auth.js.map +1 -0
  307. package/dist/server/trace-context.d.ts +51 -0
  308. package/dist/server/trace-context.d.ts.map +1 -0
  309. package/dist/server/trace-context.js +100 -0
  310. package/dist/server/trace-context.js.map +1 -0
  311. package/dist/server/types.d.ts +28 -7
  312. package/dist/server/types.d.ts.map +1 -1
  313. package/dist/server/types.js +5 -2
  314. package/dist/server/types.js.map +1 -1
  315. package/dist/server/ui-log-buffer.d.ts.map +1 -1
  316. package/dist/server/ui-log-buffer.js.map +1 -1
  317. package/dist/server/ui-state.d.ts +0 -2
  318. package/dist/server/ui-state.d.ts.map +1 -1
  319. package/dist/server/ui-state.js +2 -6
  320. package/dist/server/ui-state.js.map +1 -1
  321. package/dist/server/ui.d.ts.map +1 -1
  322. package/dist/server/ui.js +8 -9
  323. package/dist/server/ui.js.map +1 -1
  324. package/package.json +21 -18
  325. package/dist/cache/warmup.d.ts +0 -41
  326. package/dist/cache/warmup.d.ts.map +0 -1
  327. package/dist/cache/warmup.js +0 -337
  328. package/dist/cache/warmup.js.map +0 -1
  329. package/dist/server/elicit.d.ts +0 -43
  330. package/dist/server/elicit.d.ts.map +0 -1
  331. package/dist/server/elicit.js +0 -183
  332. package/dist/server/elicit.js.map +0 -1
@@ -1,39 +1,53 @@
1
1
  /**
2
2
  * Process-wide cache of probed SAP feature status + ADT discovery MIME map.
3
3
  *
4
- * The single home of this mutable module state. Handlers
5
- * read `cachedFeatures`/`cachedDiscovery` as ESM live bindings; the only writers are the probe
6
- * (via setCachedFeatures) and the test/startup accessors below. Keeping the state in one module
7
- * means every handler module shares the same instance instead of accidentally forking it.
4
+ * The single home of this mutable module state, keyed by destination so one
5
+ * process can serve multiple SAP systems (multi-destination mode). The default
6
+ * key ('') is used in single-destination mode — the historical behavior.
7
+ *
8
+ * Readers usually omit the key argument: it is resolved from the request
9
+ * context (AsyncLocalStorage), which dispatch populates per tool call. Public
10
+ * SID/client target IDs take precedence over legacy internal destination names.
11
+ * Writers (the startup/first-request probe) pass the destination explicitly.
8
12
  */
9
- /** Cached feature status — populated on first probe. Imported read-only elsewhere (live binding). */
10
- export let cachedFeatures;
11
- /** Startup-cached ADT discovery MIME map. */
12
- let cachedDiscovery = new Map();
13
- /** Reset cached features (for testing) */
13
+ import { getCurrentContext } from '../server/context.js';
14
+ /** Key for single-target mode. Multi-target feature state uses the public SID/client ID. */
15
+ const DEFAULT_KEY = '';
16
+ const stores = new Map();
17
+ function storeFor(destination) {
18
+ const context = getCurrentContext();
19
+ const key = destination ?? context?.target ?? context?.destination ?? DEFAULT_KEY;
20
+ let store = stores.get(key);
21
+ if (!store) {
22
+ store = { features: undefined, discovery: new Map() };
23
+ stores.set(key, store);
24
+ }
25
+ return store;
26
+ }
27
+ /** Reset cached features across all destinations (for testing) */
14
28
  export function resetCachedFeatures() {
15
- cachedFeatures = undefined;
16
- cachedDiscovery = new Map();
29
+ stores.clear();
17
30
  }
18
31
  /** Set cached features directly (probe result, or for testing BTP mode, etc.) */
19
- export function setCachedFeatures(features) {
20
- cachedFeatures = features;
32
+ export function setCachedFeatures(features, destination) {
33
+ storeFor(destination).features = features;
21
34
  }
22
35
  /** Get cached features (for tool definition adaptation) */
23
- export function getCachedFeatures() {
24
- return cachedFeatures;
36
+ export function getCachedFeatures(destination) {
37
+ return storeFor(destination).features;
25
38
  }
26
39
  /** Set startup-cached ADT discovery MIME map. */
27
- export function setCachedDiscovery(map) {
28
- cachedDiscovery = map;
40
+ export function setCachedDiscovery(map, destination) {
41
+ storeFor(destination).discovery = map;
29
42
  }
30
43
  /** Get startup-cached ADT discovery MIME map. */
31
- export function getCachedDiscovery() {
32
- return cachedDiscovery;
44
+ export function getCachedDiscovery(destination) {
45
+ return storeFor(destination).discovery;
33
46
  }
34
47
  /** True/false if the ADT /ddic/tables endpoint is advertised by discovery; undefined if not probed. */
35
- export function isTablesEndpointAvailable() {
36
- const map = cachedFeatures?.discoveryMap ?? cachedDiscovery;
48
+ export function isTablesEndpointAvailable(destination) {
49
+ const store = storeFor(destination);
50
+ const map = store.features?.discoveryMap ?? store.discovery;
37
51
  if (!map || map.size === 0)
38
52
  return undefined;
39
53
  return map.has('/sap/bc/adt/ddic/tables');
@@ -42,14 +56,38 @@ export function isTablesEndpointAvailable() {
42
56
  * True/false if the ADT /ddic/tabletypes endpoint is advertised by discovery; undefined if not probed.
43
57
  * Live-verified absent on NW 7.50 (404 + not in discovery) and present on S/4 758 + ABAP 816 (FEAT-65).
44
58
  */
45
- export function isTableTypesEndpointAvailable() {
46
- const map = cachedFeatures?.discoveryMap ?? cachedDiscovery;
59
+ export function isTableTypesEndpointAvailable(destination) {
60
+ const store = storeFor(destination);
61
+ const map = store.features?.discoveryMap ?? store.discovery;
47
62
  if (!map || map.size === 0)
48
63
  return undefined;
49
64
  return map.has('/sap/bc/adt/ddic/tabletypes');
50
65
  }
66
+ /**
67
+ * True/false if the ADT /ddic/domains endpoint is advertised by discovery; undefined if not probed.
68
+ * Live-verified absent on NW 7.50 (404 + not in discovery, on both a dev-edition and a real
69
+ * ECC EhP8 7.50 SP31 system) and present on S/4 758 + ABAP 816.
70
+ */
71
+ export function isDomainsEndpointAvailable(destination) {
72
+ const store = storeFor(destination);
73
+ const map = store.features?.discoveryMap ?? store.discovery;
74
+ if (!map || map.size === 0)
75
+ return undefined;
76
+ return map.has('/sap/bc/adt/ddic/domains');
77
+ }
78
+ /**
79
+ * True/false if the ADT /packages endpoint is advertised by discovery; undefined if not probed.
80
+ * The whole resource is absent before 7.52 — even a GET of an existing package 404s there.
81
+ */
82
+ export function isPackagesEndpointAvailable(destination) {
83
+ const store = storeFor(destination);
84
+ const map = store.features?.discoveryMap ?? store.discovery;
85
+ if (!map || map.size === 0)
86
+ return undefined;
87
+ return map.has('/sap/bc/adt/packages');
88
+ }
51
89
  /** True when the probed system is BTP ABAP Environment. */
52
- export function isBtpSystem() {
53
- return cachedFeatures?.systemType === 'btp';
90
+ export function isBtpSystem(destination) {
91
+ return storeFor(destination).features?.systemType === 'btp';
54
92
  }
55
93
  //# sourceMappingURL=feature-cache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"feature-cache.js","sourceRoot":"","sources":["../../src/handlers/feature-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,qGAAqG;AACrG,MAAM,CAAC,IAAI,cAA4C,CAAC;AACxD,6CAA6C;AAC7C,IAAI,eAAe,GAA0B,IAAI,GAAG,EAAE,CAAC;AAEvD,0CAA0C;AAC1C,MAAM,UAAU,mBAAmB;IACjC,cAAc,GAAG,SAAS,CAAC;IAC3B,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;AAC9B,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,iBAAiB,CAAC,QAAsC;IACtE,cAAc,GAAG,QAAQ,CAAC;AAC5B,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,iBAAiB;IAC/B,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,kBAAkB,CAAC,GAA0B;IAC3D,eAAe,GAAG,GAAG,CAAC;AACxB,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,kBAAkB;IAChC,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,yBAAyB;IACvC,MAAM,GAAG,GAAG,cAAc,EAAE,YAAY,IAAI,eAAe,CAAC;IAC5D,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7C,OAAO,GAAG,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,6BAA6B;IAC3C,MAAM,GAAG,GAAG,cAAc,EAAE,YAAY,IAAI,eAAe,CAAC;IAC5D,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7C,OAAO,GAAG,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAChD,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,WAAW;IACzB,OAAO,cAAc,EAAE,UAAU,KAAK,KAAK,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"feature-cache.js","sourceRoot":"","sources":["../../src/handlers/feature-cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /** ADT values used when a function module is created. */
2
+ export declare const FUNCTION_PROCESSING_TYPES: readonly ['normal', 'rfc', 'update'];
3
+ export declare const FUNCTION_UPDATE_TASK_KINDS: readonly ['startImmediate', 'immediateStartNoRestart', 'startDelayed'];
4
+ export type FunctionProcessingType = (typeof FUNCTION_PROCESSING_TYPES)[number];
5
+ export type FunctionUpdateTaskKind = (typeof FUNCTION_UPDATE_TASK_KINDS)[number];
6
+ export declare function isFunctionProcessingType(value: unknown): value is FunctionProcessingType;
7
+ export declare function isFunctionUpdateTaskKind(value: unknown): value is FunctionUpdateTaskKind;
8
+ export declare const FUNCTION_PROCESSING_TOOL_PROPERTIES: {
9
+ processingType: {
10
+ type: string;
11
+ enum: readonly ["normal", "rfc", "update"];
12
+ description: string;
13
+ };
14
+ updateTaskKind: {
15
+ type: string;
16
+ enum: readonly ["startImmediate", "immediateStartNoRestart", "startDelayed"];
17
+ description: string;
18
+ };
19
+ };
20
+ export declare const FUNCTION_MODULE_BATCH_TOOL_PROPERTIES: {
21
+ group: {
22
+ type: string;
23
+ };
24
+ processingType: {
25
+ type: string;
26
+ enum: readonly ["normal", "rfc", "update"];
27
+ };
28
+ updateTaskKind: {
29
+ type: string;
30
+ enum: readonly ["startImmediate", "immediateStartNoRestart", "startDelayed"];
31
+ };
32
+ parameters: {
33
+ type: string;
34
+ items: {
35
+ type: string;
36
+ properties: {
37
+ kind: {
38
+ type: string;
39
+ enum: string[];
40
+ };
41
+ name: {
42
+ type: string;
43
+ };
44
+ type: {
45
+ type: string;
46
+ };
47
+ byValue: {
48
+ type: string;
49
+ };
50
+ default: {
51
+ type: string;
52
+ };
53
+ optional: {
54
+ type: string;
55
+ };
56
+ };
57
+ required: string[];
58
+ };
59
+ };
60
+ };
61
+ //# sourceMappingURL=function-processing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function-processing.d.ts","sourceRoot":"","sources":["../../src/handlers/function-processing.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,eAAO,MAAM,yBAAyB,YAAI,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAU,CAAC;AAC9E,eAAO,MAAM,0BAA0B,YAAI,gBAAgB,EAAE,yBAAyB,EAAE,cAAc,CAAU,CAAC;AAEjH,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAChF,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,sBAAsB,CAExF;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,sBAAsB,CAExF;AAED,eAAO,MAAM,mCAAmC;IAC9C,cAAc;QACZ,IAAI;QACJ,IAAI;QACJ,WAAW;;IAEb,cAAc;QACZ,IAAI;QACJ,IAAI;QACJ,WAAW;;CAEd,CAAC;AAEF,eAAO,MAAM,qCAAqC;IAChD,KAAK;QAAI,IAAI;;IACb,cAAc;QAAI,IAAI;QAAY,IAAI;;IACtC,cAAc;QAAI,IAAI;QAAY,IAAI;;IACtC,UAAU;QACR,IAAI;QACJ,KAAK;YACH,IAAI;YACJ,UAAU;gBACR,IAAI;oBACF,IAAI;oBACJ,IAAI;;gBAEN,IAAI;oBAAI,IAAI;;gBACZ,IAAI;oBAAI,IAAI;;gBACZ,OAAO;oBAAI,IAAI;;gBACf,OAAO;oBAAI,IAAI;;gBACf,QAAQ;oBAAI,IAAI;;;YAElB,QAAQ;;;CAGb,CAAC"}
@@ -0,0 +1,45 @@
1
+ /** ADT values used when a function module is created. */
2
+ export const FUNCTION_PROCESSING_TYPES = ['normal', 'rfc', 'update'];
3
+ export const FUNCTION_UPDATE_TASK_KINDS = ['startImmediate', 'immediateStartNoRestart', 'startDelayed'];
4
+ export function isFunctionProcessingType(value) {
5
+ return FUNCTION_PROCESSING_TYPES.includes(value);
6
+ }
7
+ export function isFunctionUpdateTaskKind(value) {
8
+ return FUNCTION_UPDATE_TASK_KINDS.includes(value);
9
+ }
10
+ export const FUNCTION_PROCESSING_TOOL_PROPERTIES = {
11
+ processingType: {
12
+ type: 'string',
13
+ enum: FUNCTION_PROCESSING_TYPES,
14
+ description: 'FUNC create: normal, Remote-Enabled (`rfc`), or update-task module.',
15
+ },
16
+ updateTaskKind: {
17
+ type: 'string',
18
+ enum: FUNCTION_UPDATE_TASK_KINDS,
19
+ description: 'FUNC create: required when processingType=`update`.',
20
+ },
21
+ };
22
+ export const FUNCTION_MODULE_BATCH_TOOL_PROPERTIES = {
23
+ group: { type: 'string' },
24
+ processingType: { type: 'string', enum: FUNCTION_PROCESSING_TYPES },
25
+ updateTaskKind: { type: 'string', enum: FUNCTION_UPDATE_TASK_KINDS },
26
+ parameters: {
27
+ type: 'array',
28
+ items: {
29
+ type: 'object',
30
+ properties: {
31
+ kind: {
32
+ type: 'string',
33
+ enum: ['importing', 'exporting', 'changing', 'tables', 'exceptions', 'raising'],
34
+ },
35
+ name: { type: 'string' },
36
+ type: { type: 'string' },
37
+ byValue: { type: 'boolean' },
38
+ default: { type: 'string' },
39
+ optional: { type: 'boolean' },
40
+ },
41
+ required: ['kind', 'name'],
42
+ },
43
+ },
44
+ };
45
+ //# sourceMappingURL=function-processing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function-processing.js","sourceRoot":"","sources":["../../src/handlers/function-processing.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAU,CAAC;AAC9E,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,gBAAgB,EAAE,yBAAyB,EAAE,cAAc,CAAU,CAAC;AAKjH,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,OAAO,yBAAyB,CAAC,QAAQ,CAAC,KAA+B,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,KAA+B,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,CAAC,MAAM,mCAAmC,GAAG;IACjD,cAAc,EAAE;QACd,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,qEAAqE;KACnF;IACD,cAAc,EAAE;QACd,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,0BAA0B;QAChC,WAAW,EAAE,qDAAqD;KACnE;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,qCAAqC,GAAG;IACnD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACzB,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,EAAE;IACnE,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,0BAA0B,EAAE;IACpE,UAAU,EAAE;QACV,IAAI,EAAE,OAAO;QACb,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAC;iBAChF;gBACD,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACxB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC5B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC3B,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;aAC9B;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;SAC3B;KACF;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/handlers/git.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAc/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAkBlD,OAAO,EAAe,KAAK,UAAU,EAAc,MAAM,aAAa,CAAC;AAsCvE,wBAAsB,YAAY,CAChC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,CAAC,EAAE,QAAQ,GACnB,OAAO,CAAC,UAAU,CAAC,CAwNrB"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/handlers/git.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAc/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAmBlD,OAAO,EAAe,KAAK,UAAU,EAAwB,MAAM,aAAa,CAAC;AAyDjF,wBAAsB,YAAY,CAChC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,CAAC,EAAE,QAAQ,GACnB,OAAO,CAAC,UAAU,CAAC,CAyOrB"}
@@ -5,12 +5,26 @@
5
5
  import { checkRepo as abapGitCheckRepo, createBranch as abapGitCreateBranch, createRepo as abapGitCreateRepo, enforceRepoPackageAllowed as abapGitEnforceRepoPackage, getExternalInfo as abapGitGetExternalInfo, listRepos as abapGitListRepos, pullRepo as abapGitPullRepo, pushRepo as abapGitPushRepo, stageRepo as abapGitStageRepo, switchBranch as abapGitSwitchBranch, unlinkRepo as abapGitUnlinkRepo, } from '../adt/abapgit.js';
6
6
  import { cloneRepo as gctsCloneRepo, commitRepo as gctsCommitRepo, createBranch as gctsCreateBranch, deleteRepo as gctsDeleteRepo, getCommitHistory as gctsGetCommitHistory, getConfig as gctsGetConfig, getUserInfo as gctsGetUserInfo, listBranches as gctsListBranches, listRepoObjects as gctsListRepoObjects, listRepos as gctsListRepos, pullRepo as gctsPullRepo, switchBranch as gctsSwitchBranch, } from '../adt/gcts.js';
7
7
  import { getActionPolicy } from '../authz/policy.js';
8
- import { cachedFeatures } from './feature-cache.js';
9
- import { errorResult, textResult } from './shared.js';
8
+ import { getCachedFeatures } from './feature-cache.js';
9
+ import { errorResult, textResult, toolJson } from './shared.js';
10
+ /**
11
+ * Narrow a staging result to the objects the caller asked for (`objects: [{name, type}]`).
12
+ * Omitted or empty → every locally changed object. Type is matched only when given.
13
+ */
14
+ function selectStagingObjects(objects, requested) {
15
+ if (!Array.isArray(requested) || requested.length === 0)
16
+ return objects;
17
+ const wanted = requested.map((entry) => {
18
+ const item = (entry ?? {});
19
+ return { name: String(item.name ?? '').toUpperCase(), type: String(item.type ?? '').toUpperCase() };
20
+ });
21
+ return objects.filter((object) => wanted.some((want) => want.name === (object.name ?? '').toUpperCase() &&
22
+ (!want.type || want.type === (object.type ?? '').toUpperCase())));
23
+ }
10
24
  function resolveSapGitBackend(args) {
11
25
  const forced = args.backend;
12
- const hasGcts = Boolean(cachedFeatures?.gcts?.available);
13
- const hasAbapGit = Boolean(cachedFeatures?.abapGit?.available);
26
+ const hasGcts = Boolean(getCachedFeatures()?.gcts?.available);
27
+ const hasAbapGit = Boolean(getCachedFeatures()?.abapGit?.available);
14
28
  if (!hasGcts && !hasAbapGit) {
15
29
  return {
16
30
  error: 'Neither gCTS nor abapGit is available on this SAP system. Run SAPManage(action="probe") to refresh feature detection.',
@@ -52,6 +66,8 @@ export async function handleSAPGit(client, args, _authInfo) {
52
66
  const user = String(args.user ?? '').trim() || undefined;
53
67
  const password = String(args.password ?? '').trim() || undefined;
54
68
  const token = String(args.token ?? '').trim() || undefined;
69
+ const abapGitUser = user ?? (token ? 'x-access-token' : undefined);
70
+ const abapGitPassword = password ?? token;
55
71
  const limit = Number(args.limit ?? 20);
56
72
  const gctsOnlyActions = new Set(['whoami', 'config', 'branches', 'history', 'objects', 'commit']);
57
73
  const abapGitOnlyActions = new Set(['external_info', 'check', 'stage', 'push']);
@@ -83,7 +99,7 @@ export async function handleSAPGit(client, args, _authInfo) {
83
99
  case 'external_info':
84
100
  if (!url)
85
101
  return errorResult('SAPGit(action="external_info") requires url.');
86
- result = await abapGitGetExternalInfo(client.http, client.safety, url, user, password);
102
+ result = await abapGitGetExternalInfo(client.http, client.safety, url, abapGitUser, abapGitPassword);
87
103
  break;
88
104
  case 'history':
89
105
  if (!repoId)
@@ -99,14 +115,14 @@ export async function handleSAPGit(client, args, _authInfo) {
99
115
  if (!repoId)
100
116
  return errorResult('SAPGit(action="check") requires repoId.');
101
117
  const repo = await loadAbapGitRepo(client, repoId);
102
- result = await abapGitCheckRepo(client.http, client.safety, repo);
118
+ result = await abapGitCheckRepo(client.http, client.safety, repo, abapGitUser, abapGitPassword);
103
119
  break;
104
120
  }
105
121
  case 'stage': {
106
122
  if (!repoId)
107
123
  return errorResult('SAPGit(action="stage") requires repoId.');
108
124
  const repo = await loadAbapGitRepo(client, repoId);
109
- result = await abapGitStageRepo(client.http, client.safety, repo);
125
+ result = await abapGitStageRepo(client.http, client.safety, repo, abapGitUser, abapGitPassword);
110
126
  break;
111
127
  }
112
128
  case 'clone':
@@ -132,8 +148,8 @@ export async function handleSAPGit(client, args, _authInfo) {
132
148
  url,
133
149
  branchName: branch || undefined,
134
150
  transportRequest: String(args.transport ?? '').trim() || undefined,
135
- user,
136
- password,
151
+ user: abapGitUser,
152
+ password: abapGitPassword,
137
153
  }, client.getPackageHierarchyResolver());
138
154
  }
139
155
  break;
@@ -154,23 +170,32 @@ export async function handleSAPGit(client, args, _authInfo) {
154
170
  ...(url ? { url } : {}),
155
171
  ...(branch ? { branchName: branch } : {}),
156
172
  transportRequest: String(args.transport ?? '').trim() || undefined,
157
- user,
158
- password,
173
+ user: abapGitUser,
174
+ password: abapGitPassword,
159
175
  });
160
176
  }
161
177
  break;
162
178
  case 'push': {
163
179
  if (!repoId)
164
180
  return errorResult('SAPGit(action="push") requires repoId.');
181
+ const message = String(args.message ?? '').trim();
182
+ if (!message) {
183
+ return errorResult('SAPGit(action="push", backend="abapgit") requires message (the commit message).');
184
+ }
165
185
  const repo = await loadAbapGitRepo(client, repoId);
166
186
  // R9: push exports the repo's bound-package source to a remote git; gate that package
167
187
  // against the allowlist (the read-side mirror of the pull gate above).
168
188
  await abapGitEnforceRepoPackage(client.safety, repo.package, client.getPackageHierarchyResolver(), 'SAPGit(action="push")');
169
- const staging = Array.isArray(args.objects) && args.objects.length > 0
170
- ? { repoKey: repo.key, branchName: repo.branchName, objects: args.objects }
171
- : await abapGitStageRepo(client.http, client.safety, repo);
172
- await abapGitPushRepo(client.http, client.safety, repo, staging);
173
- result = { ok: true };
189
+ // The bridge only pushes what the client stages, and it pre-fills author/committer on the stage
190
+ // response — so always stage first, then send back the selected objects with the commit comment.
191
+ const staging = await abapGitStageRepo(client.http, client.safety, repo, abapGitUser, abapGitPassword);
192
+ const selected = selectStagingObjects(staging.objects, args.objects);
193
+ if (selected.length === 0) {
194
+ result = { ok: true, pushed: [], message: 'Nothing to push — no matching local changes.' };
195
+ break;
196
+ }
197
+ await abapGitPushRepo(client.http, client.safety, repo, { ...staging, objects: selected, comment: { ...staging.comment, comment: message } }, abapGitUser, abapGitPassword);
198
+ result = { ok: true, pushed: selected.map(({ name, type }) => ({ name, type })) };
174
199
  break;
175
200
  }
176
201
  case 'commit':
@@ -189,7 +214,7 @@ export async function handleSAPGit(client, args, _authInfo) {
189
214
  result = await gctsSwitchBranch(client.http, client.safety, repoId, branch, client.getPackageHierarchyResolver());
190
215
  }
191
216
  else {
192
- await abapGitSwitchBranch(client.http, client.safety, repoId, branch, false);
217
+ await abapGitSwitchBranch(client.http, client.safety, repoId, branch, false, abapGitUser, abapGitPassword);
193
218
  result = { ok: true };
194
219
  }
195
220
  break;
@@ -203,7 +228,7 @@ export async function handleSAPGit(client, args, _authInfo) {
203
228
  }, client.getPackageHierarchyResolver());
204
229
  }
205
230
  else {
206
- await abapGitCreateBranch(client.http, client.safety, repoId, branch);
231
+ await abapGitCreateBranch(client.http, client.safety, repoId, branch, abapGitUser, abapGitPassword);
207
232
  result = { ok: true };
208
233
  }
209
234
  break;
@@ -222,6 +247,6 @@ export async function handleSAPGit(client, args, _authInfo) {
222
247
  return errorResult(`Unknown SAPGit action: ${action}`);
223
248
  }
224
249
  const payload = backend === 'gcts' || backend === 'abapgit' ? { backend, result } : result;
225
- return textResult(JSON.stringify(payload, null, 2));
250
+ return textResult(toolJson(payload));
226
251
  }
227
252
  //# sourceMappingURL=git.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/handlers/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/handlers/git.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hyperfocused.d.ts","sourceRoot":"","sources":["../../src/handlers/hyperfocused.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAkBjD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE1E;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChE;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC,GACD;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAyBpB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,YAAY,EACpB,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,cAAc,CAoDhB"}
1
+ {"version":3,"file":"hyperfocused.d.ts","sourceRoot":"","sources":["../../src/handlers/hyperfocused.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAkBjD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE1E;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChE;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC,GACD;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAyBpB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,YAAY,EACpB,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,cAAc,CAiDhB"}
@@ -9,6 +9,7 @@
9
9
  * Activate with: --tool-mode hyperfocused or ARC1_TOOL_MODE=hyperfocused
10
10
  */
11
11
  import { getActionPolicy } from '../authz/policy.js';
12
+ import { isGitToolVisible } from './tool-registry.js';
12
13
  /** Map hyperfocused action to the real tool name */
13
14
  const ACTION_TO_TOOL = {
14
15
  read: 'SAPRead',
@@ -69,9 +70,7 @@ export function expandHyperfocusedArgs(args) {
69
70
  * Get the hyperfocused tool definition (~200 tokens).
70
71
  */
71
72
  export function getHyperfocusedToolDefinition(config, resolvedFeatures) {
72
- const gitAvailable = resolvedFeatures !== undefined
73
- ? !!(resolvedFeatures.gcts?.available || resolvedFeatures.abapGit?.available)
74
- : config.featureAbapGit !== 'off' || config.featureGcts !== 'off';
73
+ const gitAvailable = isGitToolVisible(config, resolvedFeatures);
75
74
  // Mixed delegators stay visible when their read sub-actions are usable.
76
75
  // Mutating sub-actions are enforced downstream by the concrete tool policy.
77
76
  const readActions = [
@@ -1 +1 @@
1
- {"version":3,"file":"hyperfocused.js","sourceRoot":"","sources":["../../src/handlers/hyperfocused.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hyperfocused.js","sourceRoot":"","sources":["../../src/handlers/hyperfocused.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/handlers/lint.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AASlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAe,KAAK,UAAU,EAAc,MAAM,aAAa,CAAC;AAIvE,wBAAsB,aAAa,CACjC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,UAAU,CAAC,CA4ErB"}
1
+ {"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/handlers/lint.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AASlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAe,KAAK,UAAU,EAAwB,MAAM,aAAa,CAAC;AAIjF,wBAAsB,aAAa,CACjC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,UAAU,CAAC,CAwErB"}
@@ -5,7 +5,7 @@
5
5
  import { getPrettyPrinterSettings, prettyPrint, setPrettyPrinterSettings, } from '../adt/devtools.js';
6
6
  import { buildLintConfig, listRulesFromConfig } from '../lint/config-builder.js';
7
7
  import { detectFilename, lintAbapSource, lintAndFix } from '../lint/lint.js';
8
- import { errorResult, textResult } from './shared.js';
8
+ import { errorResult, textResult, toolJson } from './shared.js';
9
9
  import { buildLintConfigOptions } from './write-helpers.js';
10
10
  // Some SAPLint actions run offline (@abaplint/core), others call SAP ADT formatter APIs.
11
11
  export async function handleSAPLint(client, args, config) {
@@ -21,7 +21,7 @@ export async function handleSAPLint(client, args, config) {
21
21
  const filename = detectFilename(source, name);
22
22
  const lintConfig = buildLintConfig(configOptions);
23
23
  const issues = lintAbapSource(source, filename, lintConfig);
24
- return textResult(JSON.stringify(issues, null, 2));
24
+ return textResult(toolJson(issues));
25
25
  }
26
26
  case 'lint_and_fix': {
27
27
  const source = String(args.source ?? '');
@@ -31,7 +31,7 @@ export async function handleSAPLint(client, args, config) {
31
31
  const filename = detectFilename(source, name);
32
32
  const lintConfig = buildLintConfig(configOptions);
33
33
  const result = lintAndFix(source, filename, lintConfig);
34
- return textResult(JSON.stringify(result, null, 2));
34
+ return textResult(toolJson(result));
35
35
  }
36
36
  case 'list_rules': {
37
37
  const lintConfig = buildLintConfig(configOptions);
@@ -40,7 +40,7 @@ export async function handleSAPLint(client, args, config) {
40
40
  const disabled = rules.filter((r) => !r.enabled);
41
41
  const effectiveAbapRelease = configOptions.abapRelease ?? 'unknown';
42
42
  const syntax = lintConfig.get().syntax;
43
- return textResult(JSON.stringify({
43
+ return textResult(toolJson({
44
44
  preset: configOptions.systemType === 'btp' ? 'cloud' : 'onprem',
45
45
  abapVersion: effectiveAbapRelease,
46
46
  syntaxVersion: syntax?.version ?? 'unknown',
@@ -48,7 +48,7 @@ export async function handleSAPLint(client, args, config) {
48
48
  disabledRules: disabled.length,
49
49
  rules: enabled,
50
50
  disabledRuleNames: disabled.map((r) => r.rule),
51
- }, null, 2));
51
+ }));
52
52
  }
53
53
  case 'format': {
54
54
  const source = String(args.source ?? '');
@@ -59,7 +59,7 @@ export async function handleSAPLint(client, args, config) {
59
59
  }
60
60
  case 'get_formatter_settings': {
61
61
  const settings = await getPrettyPrinterSettings(client.http, client.safety);
62
- return textResult(JSON.stringify(settings, null, 2));
62
+ return textResult(toolJson(settings));
63
63
  }
64
64
  case 'set_formatter_settings': {
65
65
  const indentation = args.indentation;
@@ -73,7 +73,7 @@ export async function handleSAPLint(client, args, config) {
73
73
  style: style ?? current.style,
74
74
  };
75
75
  await setPrettyPrinterSettings(client.http, client.safety, next);
76
- return textResult(JSON.stringify(next, null, 2));
76
+ return textResult(toolJson(next));
77
77
  }
78
78
  default:
79
79
  return errorResult(`Unknown SAPLint action: "${action}". Supported: lint, lint_and_fix, list_rules, format, get_formatter_settings, set_formatter_settings. For atc/syntax/unittest, use SAPDiagnose instead.`);
@@ -1 +1 @@
1
- {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/handlers/lint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/handlers/lint.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"manage.d.ts","sourceRoot":"","sources":["../../src/handlers/manage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAiBlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,OAAO,EAAe,KAAK,UAAU,EAAc,MAAM,aAAa,CAAC;AAKvE,wBAAsB,eAAe,CACnC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,CAAC,EAAE,YAAY,EAC3B,eAAe,CAAC,EAAE,OAAO,GACxB,OAAO,CAAC,UAAU,CAAC,CA6drB"}
1
+ {"version":3,"file":"manage.d.ts","sourceRoot":"","sources":["../../src/handlers/manage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAkBlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,OAAO,EAAe,KAAK,UAAU,EAAwB,MAAM,aAAa,CAAC;AASjF,wBAAsB,eAAe,CACnC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,CAAC,EAAE,YAAY,EAC3B,eAAe,CAAC,EAAE,OAAO,GACxB,OAAO,CAAC,UAAU,CAAC,CA6erB"}