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
@@ -19,9 +19,14 @@
19
19
  * `selectionMethod` and `baselineStatus` ride the result so a reviewer can tell exact
20
20
  * evidence from a fallback guess; SAP's tool reports neither.
21
21
  */
22
+ import { getCurrentContext } from '../server/context.js';
22
23
  import { CLASS_REVISION_INCLUDES, REVISION_TYPES } from './client.js';
23
- import { AdtApiError, isNotFoundError } from './errors.js';
24
+ import { AdtApiError, AdtNetworkError, AdtResponseLimitError, isNotFoundError } from './errors.js';
25
+ import { throwIfRequestCancelled } from './http-deadline.js';
26
+ import { AdtRequestBudgetError } from './request-attempt-budget.js';
27
+ import { RevisionHistoryError } from './revision-feed.js';
24
28
  import { unifiedDiff } from './source-diff.js';
29
+ import { ReviewBudget } from './transport-review-budget.js';
25
30
  /**
26
31
  * Error text for a result NOTE (not a thrown error).
27
32
  *
@@ -30,16 +35,39 @@ import { unifiedDiff } from './source-diff.js';
30
35
  * the status code alone is enough for a reviewer to see that something failed.
31
36
  */
32
37
  function describeError(err, minimalErrors) {
38
+ // Explain the cause, not the budget state: SAP may fail on the last allowed read.
39
+ if (err instanceof AdtApiError)
40
+ return minimalErrors ? `SAP request failed (status ${err.statusCode})` : err.message;
41
+ if (err instanceof AdtResponseLimitError)
42
+ return `ARC-1 response exceeded its ${err.limitBytes}-byte review allowance; inspect this part in SAP.`;
43
+ if (err instanceof AdtRequestBudgetError)
44
+ return err.message;
45
+ if (err instanceof RevisionHistoryError)
46
+ return err.message;
47
+ if (err instanceof AdtNetworkError && err.cause?.name === 'TimeoutError')
48
+ return 'ARC-1 review request time limit reached; source evidence was not collected.';
49
+ if (err instanceof Error && err.message === 'Review collection budget exhausted.')
50
+ return 'ARC-1 review page budget exhausted; remaining source evidence was not collected.';
33
51
  if (!minimalErrors)
34
52
  return err instanceof Error ? err.message : String(err);
35
- if (err instanceof AdtApiError)
36
- return `SAP request failed (status ${err.statusCode})`;
37
53
  return 'request failed';
38
54
  }
55
+ /** Authentication and caller cancellation end the review, even inside per-part recovery. */
56
+ function throwIfReviewInterrupted(error) {
57
+ throwIfRequestCancelled({ signal: getCurrentContext()?.signal });
58
+ if (error instanceof AdtApiError && error.statusCode === 401)
59
+ throw error;
60
+ }
61
+ export function revisionSourceState(r) {
62
+ if (!r)
63
+ return 'unknown';
64
+ const num = revisionNumber(r);
65
+ return num === ACTIVE_VERSION ? 'active' : num === INACTIVE_VERSION ? 'draft' : num ? 'released' : 'unknown';
66
+ }
39
67
  /**
40
68
  * The two pseudo-versions SAP's `IRevision` maps to UI text rather than a number: `00000` is the
41
- * ACTIVE work state and `99999` the INACTIVE draft. Either can legitimately be the *current* side
42
- * of a review — that is the change being shipped — but neither is ever a transported baseline.
69
+ * ACTIVE work state and `99999` the INACTIVE draft. Only active source can be the current side of an open-request
70
+ * review; neither work state is a transported baseline.
43
71
  */
44
72
  const ACTIVE_VERSION = '00000';
45
73
  const INACTIVE_VERSION = '99999';
@@ -99,7 +127,7 @@ function compareDesc(a, b) {
99
127
  * the request on the systems verified so far, but matching both is a superset that can
100
128
  * only add correct matches.
101
129
  */
102
- export function selectTransportRevisionPair(revisions, transportIds) {
130
+ export function selectTransportRevisionPair(revisions, transportIds, mode = 'released') {
103
131
  const sorted = sortNewestFirst(revisions);
104
132
  const wanted = new Set([...transportIds].map((id) => String(id).trim().toUpperCase()).filter(Boolean));
105
133
  const belongsToTransport = (r) => {
@@ -111,26 +139,25 @@ export function selectTransportRevisionPair(revisions, transportIds) {
111
139
  if (!sorted.length) {
112
140
  return { current: null, previous: null, selectionMethod: 'no-revisions', skipped: [] };
113
141
  }
114
- // An UNRELEASED transport has no snapshot of its own — but while its objects are locked,
115
- // the active entry (00000) carries the transport link, so it matches here and the walk
116
- // back lands on the last released state. That makes "what am I about to ship" the same
117
- // code path as "what did this transport ship", with the same evidence labels.
118
- let currentIndex = sorted.findIndex(belongsToTransport);
142
+ // A released review needs an attributed historical snapshot. An open request uses
143
+ // active source, never an inactive draft or an unrelated released version.
144
+ let currentIndex = sorted.findIndex((r) => belongsToTransport(r) && revisionSourceState(r) === mode);
119
145
  let selectionMethod = 'exact-transport';
120
- if (currentIndex === -1) {
121
- // No revision names this transport. Prefer the newest real snapshot over a work state,
122
- // so the diff is still between two transported versions.
123
- currentIndex = sorted.findIndex((r) => !WORK_STATE_VERSIONS.has(revisionNumber(r)));
124
- selectionMethod = 'latest-revision-fallback';
146
+ if (currentIndex === -1 && mode === 'active') {
147
+ currentIndex = sorted.findIndex((r) => revisionSourceState(r) === 'active');
148
+ selectionMethod = 'active-only-fallback';
125
149
  }
126
150
  if (currentIndex === -1) {
127
- currentIndex = 0;
128
- selectionMethod = 'active-only-fallback';
151
+ return { current: null, previous: null, selectionMethod: 'no-revisions', skipped: [] };
129
152
  }
130
153
  const skipped = [];
131
- let previousIndex = currentIndex + 1;
132
- while (previousIndex < sorted.length) {
133
- const candidate = sorted[previousIndex];
154
+ const current = sorted[currentIndex];
155
+ // Active timestamps can predate the latest snapshot (verified on A4H). They are not
156
+ // historical boundaries: compare active source to the latest foreign snapshot.
157
+ const candidates = mode === 'active' ? sorted.filter((r) => revisionSourceState(r) === 'released') : sorted.slice(currentIndex + 1);
158
+ let previousIndex = 0;
159
+ while (previousIndex < candidates.length) {
160
+ const candidate = candidates[previousIndex];
134
161
  const num = revisionNumber(candidate);
135
162
  if (WORK_STATE_VERSIONS.has(num)) {
136
163
  const kind = num === ACTIVE_VERSION ? 'active work state' : 'inactive draft';
@@ -144,37 +171,53 @@ export function selectTransportRevisionPair(revisions, transportIds) {
144
171
  }
145
172
  previousIndex += 1;
146
173
  }
174
+ const previous = candidates[previousIndex] ?? null;
175
+ // Missing dates sort last, so date order cannot prove the pair: a predecessor numbered at or
176
+ // after `current`, or a foreign snapshot numbered between the two, leaves chronology open.
177
+ const [before, after] = [previous ? revisionNumber(previous) : '', revisionNumber(current)];
178
+ const currentIsWorkState = WORK_STATE_VERSIONS.has(after);
179
+ const undatedWorkState = currentIsWorkState && !Number.isFinite(Date.parse(current.timestamp)) && candidates.length > 0;
180
+ const conflictingCurrent = sorted.some((r) => belongsToTransport(r) && revisionSourceState(r) === mode && revisionNumber(r) > after);
181
+ const conflictingOrder = previous &&
182
+ ((revisionSourceState(current) === 'released' && before >= after) ||
183
+ sorted.some((r) => revisionSourceState(r) === 'released' &&
184
+ !belongsToTransport(r) &&
185
+ revisionNumber(r) > before &&
186
+ (currentIsWorkState || revisionNumber(r) < after)));
147
187
  return {
148
- current: sorted[currentIndex],
149
- previous: previousIndex < sorted.length ? sorted[previousIndex] : null,
188
+ current,
189
+ previous,
150
190
  selectionMethod,
151
191
  skipped,
192
+ ...(undatedWorkState || conflictingCurrent || conflictingOrder ? { baselineAmbiguous: true } : {}),
152
193
  };
153
194
  }
154
195
  /**
155
196
  * Classify the "before" side.
156
197
  *
157
- * Creation is asserted ONLY when the current revision was matched to the transport and has
158
- * no predecessor. A missing predecessor under a fallback selection is ambiguous — it may
198
+ * No prior snapshot means only that no predecessor was found; it is not proof of creation.
199
+ * An exact transport match identifies attribution, not the completeness of retained history. A missing predecessor under a fallback selection is ambiguous — it may
159
200
  * simply mean the object's history was never snapshotted.
160
201
  */
161
202
  export function baselineStatusFor(pair, allRevisions = []) {
162
203
  if (!pair.current)
163
204
  return 'baseline-unavailable';
205
+ if (pair.baselineAmbiguous)
206
+ return 'baseline-ambiguous';
164
207
  const matched = pair.selectionMethod === 'exact-transport';
165
208
  if (pair.previous)
166
209
  return matched ? 'prior-revision' : 'prior-revision-unverified';
167
210
  if (!matched)
168
211
  return 'baseline-ambiguous';
169
- // "Matched with no predecessor" normally means created here — but for an OPEN transport the
170
- // active row carries the transport link, so `matched` is trivially true, and SAP only writes
171
- // versions on release. If any revision has a strictly lower version number, the object plainly
172
- // pre-existed and the walk-back simply failed to reach it (e.g. the transport's own revision
173
- // is undated and sorts last). Creation is asserted only when nothing older exists.
174
- const currentNum = Number(revisionNumber(pair.current));
212
+ // A lower numbered snapshot is evidence that the walk-back missed existing history
213
+ // (for example an undated current row sorted last). Neither result proves creation.
214
+ const currentVersion = revisionNumber(pair.current);
215
+ const currentNum = Number(currentVersion);
175
216
  const hasOlder = allRevisions.some((r) => {
176
217
  const raw = revisionNumber(r);
177
- return /^\d+$/.test(raw) && !WORK_STATE_VERSIONS.has(raw) && Number(raw) < currentNum;
218
+ return (/^\d+$/.test(raw) &&
219
+ !WORK_STATE_VERSIONS.has(raw) &&
220
+ (WORK_STATE_VERSIONS.has(currentVersion) || Number(raw) < currentNum));
178
221
  });
179
222
  return hasOlder ? 'baseline-ambiguous' : 'no-prior-snapshot';
180
223
  }
@@ -324,6 +367,8 @@ export function classIncludesFor(object) {
324
367
  // ~640k LIMU rows on 758, zero counterexamples), so fall back to every include.
325
368
  if (c.pgmid !== 'LIMU')
326
369
  return { includes: [...CLASS_REVISION_INCLUDES], fromComponents: false };
370
+ if (c.type === 'REPT')
371
+ continue;
327
372
  // The suffix starts at a FIXED offset: CTS pads the class name into a 30-char field. It
328
373
  // pads with '=' only when the name is shorter — 6.6% of live CINC rows are 30-char names
329
374
  // with no padding at all, where splitting on '=' returns the whole string and silently
@@ -337,7 +382,7 @@ export function classIncludesFor(object) {
337
382
  : { includes: [...CLASS_REVISION_INCLUDES], fromComponents: false };
338
383
  }
339
384
  /**
340
- * Per-part diff cap. A created object renders its ENTIRE source as an addition, so a page of
385
+ * Per-part diff cap. A missing predecessor displays available source as additions, so a page of
341
386
  * 20 such objects is otherwise unbounded — `MAX_DIFF_OBJECTS` limits the object count, never
342
387
  * the bytes. `added`/`removed` are counted before truncation, so the totals stay honest.
343
388
  */
@@ -345,10 +390,16 @@ const MAX_DIFF_LINES = 400;
345
390
  /** Trim a unified diff to `MAX_DIFF_LINES` body lines, keeping the header. */
346
391
  function capDiff(diff) {
347
392
  const lines = diff.split('\n');
348
- if (lines.length <= MAX_DIFF_LINES)
393
+ const maxBytes = 16 * 1024;
394
+ if (lines.length <= MAX_DIFF_LINES && Buffer.byteLength(diff) <= maxBytes)
349
395
  return { diff, truncated: false };
396
+ // Decode only complete UTF-8 code points; reserve space for the omission marker.
397
+ const capped = Buffer.from(lines.slice(0, MAX_DIFF_LINES).join('\n'))
398
+ .subarray(0, maxBytes - 100)
399
+ .toString('utf8')
400
+ .replace(/\uFFFD$/, '');
350
401
  return {
351
- diff: `${lines.slice(0, MAX_DIFF_LINES).join('\n')}\n… diff truncated at ${MAX_DIFF_LINES} lines`,
402
+ diff: `${capped}\n… diff truncated (400-line / 16-KiB display limit)`,
352
403
  truncated: true,
353
404
  };
354
405
  }
@@ -367,6 +418,7 @@ function revisionLabel(revision) {
367
418
  */
368
419
  function unavailablePart(part, note, resolved) {
369
420
  return {
421
+ ...resolved,
370
422
  part,
371
423
  baselineStatus: 'baseline-unavailable',
372
424
  selectionMethod: resolved?.selectionMethod ?? 'no-revisions',
@@ -375,83 +427,154 @@ function unavailablePart(part, note, resolved) {
375
427
  added: 0,
376
428
  removed: 0,
377
429
  diff: '',
378
- note,
430
+ note: [resolved?.note, note].filter(Boolean).join(' '),
379
431
  };
380
432
  }
381
433
  /**
382
434
  * Diff one source part of one object across the transport boundary.
383
435
  *
384
- * Returns null ONLY for a class include that genuinely does not exist (most classes have no
385
- * CCAU test include) — every other failure becomes a visible `baseline-unavailable` row, so a
386
- * read error can never masquerade as "unchanged".
436
+ * Every selected or speculative part receives a result. A 404 cannot establish absence,
437
+ * deletion or unchanged source; report it as an evidence gap.
387
438
  */
388
439
  async function diffPart(client, type, name, part, transportIds, opts) {
389
440
  const include = type === 'CLAS' ? part : undefined;
390
441
  let revisions;
442
+ let historyIncomplete = false;
391
443
  try {
392
- revisions = (await client.getRevisions(type, name, { include, group: opts.group })).revisions;
444
+ const history = await (opts.budget
445
+ ? opts.budget.read((request) => client.getRevisions(type, name, { include, group: opts.group }, request))
446
+ : client.getRevisions(type, name, { include, group: opts.group }));
447
+ revisions = history.revisions;
448
+ historyIncomplete = history.historyComplete === false;
393
449
  }
394
450
  catch (err) {
395
- if (type === 'CLAS' && part !== 'main' && isNotFoundError(err))
396
- return null;
451
+ throwIfReviewInterrupted(err);
452
+ if (type === 'CLAS' && part !== 'main' && isNotFoundError(err)) {
453
+ return unavailablePart(part, `${opts.speculative ? 'Speculative part' : 'CTS-selected part'}: revision history returned 404; absence or deletion is not established`);
454
+ }
397
455
  return unavailablePart(part, `revision history unavailable: ${describeError(err, opts.minimalErrors)}`);
398
456
  }
399
- const pair = selectTransportRevisionPair(revisions, transportIds);
457
+ const pair = selectTransportRevisionPair(revisions, transportIds, opts.mode);
458
+ const baselineStatus = historyIncomplete && pair.current ? 'baseline-ambiguous' : baselineStatusFor(pair, revisions);
400
459
  const base = {
401
460
  part,
402
- baselineStatus: baselineStatusFor(pair, revisions),
461
+ baselineStatus,
403
462
  selectionMethod: pair.selectionMethod,
404
463
  from: pair.previous ? revisionLabel(pair.previous) : null,
405
464
  to: pair.current ? revisionLabel(pair.current) : null,
465
+ ...(opts.mode === 'active' &&
466
+ revisions.some((r) => revisionSourceState(r) === 'draft' && transportIds.has((r.transport ?? '').trim().toUpperCase()))
467
+ ? { note: 'Inactive draft pending for this request; not compared.' }
468
+ : {}),
406
469
  };
407
470
  if (!pair.current) {
408
- return { ...base, added: 0, removed: 0, diff: '', note: 'no revision history for this part' };
471
+ return unavailablePart(part, opts.speculative && opts.mode !== 'active'
472
+ ? 'Speculative part: no snapshot attributed to this request; unchanged source is not established.'
473
+ : 'No revision satisfies the requested source state and attribution.', base);
409
474
  }
410
475
  let after;
411
476
  let before;
412
477
  try {
413
- // No predecessor: render the whole thing as an addition so a created object is still
414
- // reviewable. `baselineStatus` says whether that is proven creation or a missing base.
415
- [after, before] = await Promise.all([
416
- client.getRevisionSource(pair.current.uri),
417
- pair.previous ? client.getRevisionSource(pair.previous.uri) : Promise.resolve(''),
418
- ]);
478
+ // Without a predecessor, additions only display the available source; they do not prove creation.
479
+ const read = (uri) => opts.budget
480
+ ? opts.budget.read((request) => client.getRevisionSource(uri, request))
481
+ : client.getRevisionSource(uri);
482
+ after = await read(pair.current.uri);
483
+ before = pair.previous ? await read(pair.previous.uri) : '';
419
484
  }
420
485
  catch (err) {
486
+ throwIfReviewInterrupted(err);
421
487
  return unavailablePart(part, `source read failed: ${describeError(err, opts.minimalErrors)}`, base);
422
488
  }
423
- const result = unifiedDiff(before, after, `${name} (${base.from ?? 'none'})`, `${name} (${base.to})`, 3, true);
489
+ let result;
490
+ try {
491
+ result = unifiedDiff(before, after, `${name} (${base.from ?? 'none'})`, `${name} (${base.to})`, 3, true, {
492
+ timeout: 100,
493
+ maxEditLength: 20_000,
494
+ });
495
+ }
496
+ catch {
497
+ return unavailablePart(part, 'Diff calculation failed or exceeded its work budget; statistics are unavailable.', {
498
+ ...base,
499
+ });
500
+ }
424
501
  const capped = capDiff(result.diff);
425
- const note = result.cosmeticOnly
426
- ? 'whitespace-only change (trailing blanks / final newline)'
427
- : result.identical
428
- ? 'no source change between the selected revisions'
429
- : undefined;
502
+ const note = [
503
+ base.note,
504
+ historyIncomplete ? 'History advertises more revisions; the selected baseline is uncertain.' : '',
505
+ pair.selectionMethod !== 'exact-transport'
506
+ ? 'Active source is not attributed to this request; this is a candidate comparison.'
507
+ : '',
508
+ result.cosmeticOnly
509
+ ? 'whitespace-only change (trailing blanks / final newline)'
510
+ : result.identical
511
+ ? 'no source change between the selected revisions'
512
+ : '',
513
+ ]
514
+ .filter(Boolean)
515
+ .join(' ');
430
516
  return {
431
517
  ...base,
432
518
  added: result.added,
433
519
  removed: result.removed,
434
- diff: capped.diff,
520
+ diff: opts.summary ? '' : capped.diff,
521
+ ...(opts.summary && result.diff ? { hunksOmitted: true } : {}),
435
522
  ...(capped.truncated ? { diffTruncated: true } : {}),
436
523
  ...(note ? { note } : {}),
437
524
  };
438
525
  }
439
526
  /** Diff every source part of one logical object. Never throws — failures become visible rows. */
440
527
  export async function diffTransportObject(client, object, transportIds, opts = {}) {
528
+ opts = { ...opts, budget: opts.budget ?? new ReviewBudget() };
441
529
  const { type, name, taskIds } = object;
442
- const head = { type, name, taskIds };
530
+ const textGap = 'Text-pool components are in scope; historical symbols, selection texts and headings were not compared.';
531
+ // A text-only CTS key names no source part; diffing main would review something CTS never selected.
532
+ if (object.components.length && object.components.every((c) => c.type === 'REPT')) {
533
+ return { type, name, taskIds, parts: [], inventoryReason: textGap };
534
+ }
535
+ if (object.pgmid !== 'R3TR' && object.pgmid !== 'LIMU') {
536
+ return {
537
+ type,
538
+ name,
539
+ taskIds,
540
+ parts: [],
541
+ inventoryReason: `${object.pgmid} entry: non-source scope has no verified historical adapter.`,
542
+ };
543
+ }
544
+ const wholeObject = object.components.some((c) => c.pgmid === 'R3TR');
545
+ const notCompared = new Set();
546
+ if (wholeObject && REVISION_TYPES.has(type))
547
+ notCompared.add('metadata');
548
+ if ((wholeObject && (type === 'PROG' || type === 'CLAS')) || object.components.some((c) => c.type === 'REPT')) {
549
+ notCompared.add('text pool');
550
+ }
551
+ if (wholeObject && type === 'PROG') {
552
+ notCompared.add('screens');
553
+ notCompared.add('GUI status');
554
+ }
555
+ const head = {
556
+ type,
557
+ name,
558
+ taskIds,
559
+ ...(notCompared.size ? { notCompared: [...notCompared] } : {}),
560
+ ...(object.components.some((c) => c.type === 'METH')
561
+ ? {
562
+ scopeNote: 'CTS method keys select whole class source; hunks are not attributed per method.',
563
+ }
564
+ : {}),
565
+ };
443
566
  if (type === FUGR_INCLUDE_TYPE) {
444
567
  return {
445
568
  ...head,
446
569
  parts: [],
447
- inventoryReason: 'function-group source (wbtype FUGR/*) — in scope, but its includes live under /functions/groups and have no revisions feed here',
570
+ inventoryReason: 'function-group source (wbtype FUGR/*) — in scope; historical include ownership and before/after coverage are not verified by this adapter',
448
571
  };
449
572
  }
450
573
  if (!REVISION_TYPES.has(type)) {
451
574
  return {
452
575
  ...head,
453
576
  parts: [],
454
- inventoryReason: `type ${type} has no ADT source revision feed — in scope, but no source diff available`,
577
+ inventoryReason: `type ${type} has no verified historical adapter — in scope, but no source diff available`,
455
578
  };
456
579
  }
457
580
  // FUNC revisions are addressed under their group. A lookup failure must not abort the whole
@@ -459,9 +582,13 @@ export async function diffTransportObject(client, object, transportIds, opts = {
459
582
  let group;
460
583
  if (type === 'FUNC') {
461
584
  try {
462
- group = (await client.resolveFunctionGroup(name)) ?? undefined;
585
+ group =
586
+ (await (opts.budget
587
+ ? opts.budget.read((request) => client.resolveFunctionGroup(name, request))
588
+ : client.resolveFunctionGroup(name))) ?? undefined;
463
589
  }
464
590
  catch (err) {
591
+ throwIfReviewInterrupted(err);
465
592
  return {
466
593
  ...head,
467
594
  parts: [],
@@ -472,53 +599,24 @@ export async function diffTransportObject(client, object, transportIds, opts = {
472
599
  return { ...head, parts: [], inventoryReason: `cannot resolve the function group for FUNC ${name}` };
473
600
  }
474
601
  }
475
- // Parts are independent reads; http.ts funnels every request through the shared Semaphore
476
- // (ARC1_MAX_CONCURRENT), so fanning out here is bounded without extra bookkeeping.
602
+ // Sequence parts within the shared page budget; never enqueue an unbounded batch.
477
603
  const selection = type === 'CLAS' ? classIncludesFor(object) : { includes: ['main'], fromComponents: true };
478
604
  const wanted = selection.includes;
479
- const settled = await Promise.all(wanted.map(async (part) => {
605
+ const parts = [];
606
+ for (const part of wanted) {
480
607
  try {
481
- return await diffPart(client, type, name, part, transportIds, { group, minimalErrors: opts.minimalErrors });
608
+ const result = await diffPart(client, type, name, part, transportIds, {
609
+ ...opts,
610
+ group,
611
+ speculative: !selection.fromComponents,
612
+ });
613
+ parts.push(result);
482
614
  }
483
615
  catch (err) {
484
- if (type === 'CLAS' && part !== 'main' && isNotFoundError(err))
485
- return null;
486
- return unavailablePart(part, `source read failed: ${describeError(err, opts.minimalErrors)}`);
616
+ throwIfReviewInterrupted(err);
617
+ parts.push(unavailablePart(part, `source read failed: ${describeError(err, opts.minimalErrors)}`));
487
618
  }
488
- }));
489
- const parts = settled.filter((p) => p !== null);
490
- // Every selected part turned out not to exist. Dropping them all would emit an object with
491
- // no rows and no reason — indistinguishable from "nothing changed", which is the one thing
492
- // this tool must never say by accident.
493
- if (!parts.length) {
494
- return {
495
- ...head,
496
- parts: [],
497
- inventoryReason: `no readable source for ${wanted.join(', ')} — the object or its includes could not be found`,
498
- };
499
619
  }
500
- return { ...head, parts: selection.fromComponents ? parts : suppressUntouchedParts(parts) };
501
- }
502
- /**
503
- * Blank the DIFF of parts this transport did not touch, keeping the row for coverage.
504
- *
505
- * ONLY valid for a SPECULATIVE part list. When the includes came from the transport's own
506
- * components, every selected part was named by CTS and therefore WAS changed — suppressing
507
- * one because its revision happens to carry no CTS id (a live-verified shape) would erase a
508
- * real diff and report it clean. The caller enforces that; this function assumes the parts
509
- * were probed blindly.
510
- *
511
- * Without it, the whole-class (`R3TR CLAS`) shape renders SAP's boilerplate headers in the
512
- * four untouched includes as fresh additions — noise around one real change.
513
- *
514
- * Two further guards: suppress only when a sibling part DID match the transport (so
515
- * attribution demonstrably works for this object), and NEVER touch a row whose read failed.
516
- */
517
- function suppressUntouchedParts(parts) {
518
- if (!parts.some((p) => p.selectionMethod === 'exact-transport'))
519
- return parts;
520
- return parts.map((p) => p.selectionMethod === 'exact-transport' || p.baselineStatus === 'baseline-unavailable'
521
- ? p
522
- : { ...p, added: 0, removed: 0, diff: '', note: 'not changed by this transport' });
620
+ return { ...head, parts };
523
621
  }
524
622
  //# sourceMappingURL=transport-diff.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transport-diff.js","sourceRoot":"","sources":["../../src/adt/transport-diff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport-diff.js","sourceRoot":"","sources":["../../src/adt/transport-diff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { type AdtRequestOptions } from './http-deadline.js';
2
+ import { RequestAttemptBudget } from './request-attempt-budget.js';
3
+ export declare const REVIEW_DEADLINE_MS = 20000;
4
+ /** One review page: bounded sequential reads, including inventory, retries and CSRF. */
5
+ export declare class ReviewBudget {
6
+ readonly started: number;
7
+ readonly deadline: number;
8
+ readonly attempts: RequestAttemptBudget;
9
+ bytes: number;
10
+ reads: number;
11
+ exhausted: boolean;
12
+ stopReason?: string;
13
+ read<T>(operation: (request: AdtRequestOptions) => Promise<T>): Promise<T>;
14
+ }
15
+ //# sourceMappingURL=transport-review-budget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport-review-budget.d.ts","sourceRoot":"","sources":["../../src/adt/transport-review-budget.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,iBAAiB,EAA2B,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,wFAAwF;AACxF,qBAAa,YAAY;IACvB,QAAQ,CAAC,OAAO,SAAc;IAC9B,QAAQ,CAAC,QAAQ,SAAqC;IACtD,QAAQ,CAAC,QAAQ,uBAAiC;IAClD,KAAK,SAAK;IACV,KAAK,SAAK;IACV,SAAS,UAAS;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEd,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAiC/E;CACF"}
@@ -0,0 +1,57 @@
1
+ import { getCurrentContext } from '../server/context.js';
2
+ import { DataResponseBudget } from './data-result-context.js';
3
+ import { AdtResponseLimitError } from './errors.js';
4
+ import { throwIfRequestCancelled } from './http-deadline.js';
5
+ import { RequestAttemptBudget } from './request-attempt-budget.js';
6
+ export const REVIEW_DEADLINE_MS = 20_000;
7
+ /** One review page: bounded sequential reads, including inventory, retries and CSRF. */
8
+ export class ReviewBudget {
9
+ started = Date.now();
10
+ deadline = this.started + REVIEW_DEADLINE_MS;
11
+ attempts = new RequestAttemptBudget(180);
12
+ bytes = 0;
13
+ reads = 0;
14
+ exhausted = false;
15
+ stopReason;
16
+ async read(operation) {
17
+ const remaining = 8 * 1024 * 1024 - this.bytes;
18
+ const responseBudget = new DataResponseBudget(Math.max(1, Math.min(1024 * 1024, remaining)), 'transport-review');
19
+ const request = {
20
+ deadline: this.deadline,
21
+ signal: getCurrentContext()?.signal,
22
+ responseBudget,
23
+ attemptBudget: this.attempts,
24
+ };
25
+ try {
26
+ throwIfRequestCancelled(request);
27
+ if (remaining <= 0 || this.exhausted || this.reads >= 180)
28
+ throw new Error('Review collection budget exhausted.');
29
+ this.reads++;
30
+ return await operation(request);
31
+ }
32
+ catch (error) {
33
+ // Failed streaming reservations are released by HTTP. Stop this page rather than
34
+ // repeatedly downloading oversized bodies whose bytes would otherwise go uncharged.
35
+ if (error instanceof AdtResponseLimitError) {
36
+ this.bytes += Math.max(0, error.observedBytes - responseBudget.consumedBytes);
37
+ this.exhausted = true;
38
+ this.stopReason = 'response byte limit';
39
+ }
40
+ if (remaining <= 0 || Date.now() >= this.deadline || this.attempts.used >= 180 || this.reads >= 180)
41
+ this.exhausted = true;
42
+ if (request.signal?.aborted) {
43
+ this.exhausted = true;
44
+ this.stopReason = 'cancelled';
45
+ }
46
+ else if (Date.now() >= this.deadline)
47
+ this.stopReason = 'deadline';
48
+ else if (this.exhausted && !this.stopReason)
49
+ this.stopReason = 'collection limit';
50
+ throw error;
51
+ }
52
+ finally {
53
+ this.bytes += responseBudget.consumedBytes;
54
+ }
55
+ }
56
+ }
57
+ //# sourceMappingURL=transport-review-budget.js.map