arc-1 1.3.0 → 1.5.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 (279) hide show
  1. package/README.md +1 -1
  2. package/dist/adt/abapgit.d.ts.map +1 -1
  3. package/dist/adt/abapgit.js +64 -7
  4. package/dist/adt/abapgit.js.map +1 -1
  5. package/dist/adt/aunit.js +4 -4
  6. package/dist/adt/aunit.js.map +1 -1
  7. package/dist/adt/class-structure.d.ts +4 -2
  8. package/dist/adt/class-structure.d.ts.map +1 -1
  9. package/dist/adt/class-structure.js +18 -9
  10. package/dist/adt/class-structure.js.map +1 -1
  11. package/dist/adt/client.d.ts +18 -52
  12. package/dist/adt/client.d.ts.map +1 -1
  13. package/dist/adt/client.js +69 -92
  14. package/dist/adt/client.js.map +1 -1
  15. package/dist/adt/config.d.ts +5 -0
  16. package/dist/adt/config.d.ts.map +1 -1
  17. package/dist/adt/config.js.map +1 -1
  18. package/dist/adt/create-request.d.ts +4 -0
  19. package/dist/adt/create-request.d.ts.map +1 -0
  20. package/dist/adt/create-request.js +16 -0
  21. package/dist/adt/create-request.js.map +1 -0
  22. package/dist/adt/crud.d.ts +3 -3
  23. package/dist/adt/crud.d.ts.map +1 -1
  24. package/dist/adt/crud.js +28 -9
  25. package/dist/adt/crud.js.map +1 -1
  26. package/dist/adt/data-source-policy.d.ts +20 -8
  27. package/dist/adt/data-source-policy.d.ts.map +1 -1
  28. package/dist/adt/data-source-policy.js +55 -109
  29. package/dist/adt/data-source-policy.js.map +1 -1
  30. package/dist/adt/ddic-xml.d.ts +9 -0
  31. package/dist/adt/ddic-xml.d.ts.map +1 -1
  32. package/dist/adt/ddic-xml.js +17 -3
  33. package/dist/adt/ddic-xml.js.map +1 -1
  34. package/dist/adt/devtools.d.ts.map +1 -1
  35. package/dist/adt/devtools.js +10 -7
  36. package/dist/adt/devtools.js.map +1 -1
  37. package/dist/adt/diagnostics.d.ts +11 -9
  38. package/dist/adt/diagnostics.d.ts.map +1 -1
  39. package/dist/adt/diagnostics.js +88 -14
  40. package/dist/adt/diagnostics.js.map +1 -1
  41. package/dist/adt/enhancements.d.ts +7 -0
  42. package/dist/adt/enhancements.d.ts.map +1 -0
  43. package/dist/adt/enhancements.js +89 -0
  44. package/dist/adt/enhancements.js.map +1 -0
  45. package/dist/adt/errors.d.ts +21 -10
  46. package/dist/adt/errors.d.ts.map +1 -1
  47. package/dist/adt/errors.js +76 -54
  48. package/dist/adt/errors.js.map +1 -1
  49. package/dist/adt/features.d.ts.map +1 -1
  50. package/dist/adt/features.js +2 -0
  51. package/dist/adt/features.js.map +1 -1
  52. package/dist/adt/flp.d.ts.map +1 -1
  53. package/dist/adt/flp.js +5 -4
  54. package/dist/adt/flp.js.map +1 -1
  55. package/dist/adt/fm-signature.d.ts +1 -1
  56. package/dist/adt/fm-signature.d.ts.map +1 -1
  57. package/dist/adt/fm-signature.js +9 -1
  58. package/dist/adt/fm-signature.js.map +1 -1
  59. package/dist/adt/http-deadline.d.ts +2 -0
  60. package/dist/adt/http-deadline.d.ts.map +1 -1
  61. package/dist/adt/http-deadline.js.map +1 -1
  62. package/dist/adt/http.d.ts +12 -29
  63. package/dist/adt/http.d.ts.map +1 -1
  64. package/dist/adt/http.js +102 -95
  65. package/dist/adt/http.js.map +1 -1
  66. package/dist/adt/internal-data-operations.d.ts +3 -2
  67. package/dist/adt/internal-data-operations.d.ts.map +1 -1
  68. package/dist/adt/internal-data-operations.js +8 -1
  69. package/dist/adt/internal-data-operations.js.map +1 -1
  70. package/dist/adt/lock-object.d.ts +92 -0
  71. package/dist/adt/lock-object.d.ts.map +1 -0
  72. package/dist/adt/lock-object.js +195 -0
  73. package/dist/adt/lock-object.js.map +1 -0
  74. package/dist/adt/publish-state.d.ts +4 -0
  75. package/dist/adt/publish-state.d.ts.map +1 -0
  76. package/dist/adt/publish-state.js +61 -0
  77. package/dist/adt/publish-state.js.map +1 -0
  78. package/dist/adt/rap-generate.d.ts +5 -1
  79. package/dist/adt/rap-generate.d.ts.map +1 -1
  80. package/dist/adt/rap-generate.js +112 -100
  81. package/dist/adt/rap-generate.js.map +1 -1
  82. package/dist/adt/server-driven.d.ts +56 -13
  83. package/dist/adt/server-driven.d.ts.map +1 -1
  84. package/dist/adt/server-driven.js +114 -23
  85. package/dist/adt/server-driven.js.map +1 -1
  86. package/dist/adt/source-precondition.d.ts +3 -0
  87. package/dist/adt/source-precondition.d.ts.map +1 -0
  88. package/dist/adt/source-precondition.js +12 -0
  89. package/dist/adt/source-precondition.js.map +1 -0
  90. package/dist/adt/text-search.js +5 -5
  91. package/dist/adt/text-search.js.map +1 -1
  92. package/dist/adt/transport.d.ts +1 -2
  93. package/dist/adt/transport.d.ts.map +1 -1
  94. package/dist/adt/transport.js +20 -15
  95. package/dist/adt/transport.js.map +1 -1
  96. package/dist/adt/types.d.ts +21 -1
  97. package/dist/adt/types.d.ts.map +1 -1
  98. package/dist/adt/user-agent.d.ts +4 -0
  99. package/dist/adt/user-agent.d.ts.map +1 -0
  100. package/dist/adt/user-agent.js +11 -0
  101. package/dist/adt/user-agent.js.map +1 -0
  102. package/dist/adt/xml-entities.d.ts +3 -0
  103. package/dist/adt/xml-entities.d.ts.map +1 -0
  104. package/dist/adt/xml-entities.js +19 -0
  105. package/dist/adt/xml-entities.js.map +1 -0
  106. package/dist/adt/xml-parser.d.ts +7 -30
  107. package/dist/adt/xml-parser.d.ts.map +1 -1
  108. package/dist/adt/xml-parser.js +25 -54
  109. package/dist/adt/xml-parser.js.map +1 -1
  110. package/dist/authz/policy.d.ts.map +1 -1
  111. package/dist/authz/policy.js +2 -0
  112. package/dist/authz/policy.js.map +1 -1
  113. package/dist/cache/caching-layer.d.ts.map +1 -1
  114. package/dist/cache/caching-layer.js +5 -10
  115. package/dist/cache/caching-layer.js.map +1 -1
  116. package/dist/cli.js +1 -1
  117. package/dist/cli.js.map +1 -1
  118. package/dist/context/grep.d.ts +14 -0
  119. package/dist/context/grep.d.ts.map +1 -1
  120. package/dist/context/grep.js +49 -0
  121. package/dist/context/grep.js.map +1 -1
  122. package/dist/context/unit-surgery.d.ts +4 -2
  123. package/dist/context/unit-surgery.d.ts.map +1 -1
  124. package/dist/context/unit-surgery.js +54 -6
  125. package/dist/context/unit-surgery.js.map +1 -1
  126. package/dist/handlers/activate.d.ts.map +1 -1
  127. package/dist/handlers/activate.js +11 -20
  128. package/dist/handlers/activate.js.map +1 -1
  129. package/dist/handlers/diagnose.d.ts.map +1 -1
  130. package/dist/handlers/diagnose.js +11 -30
  131. package/dist/handlers/diagnose.js.map +1 -1
  132. package/dist/handlers/dispatch.d.ts.map +1 -1
  133. package/dist/handlers/dispatch.js +63 -8
  134. package/dist/handlers/dispatch.js.map +1 -1
  135. package/dist/handlers/editable-source.d.ts +6 -0
  136. package/dist/handlers/editable-source.d.ts.map +1 -0
  137. package/dist/handlers/editable-source.js +53 -0
  138. package/dist/handlers/editable-source.js.map +1 -0
  139. package/dist/handlers/feature-cache.d.ts +2 -0
  140. package/dist/handlers/feature-cache.d.ts.map +1 -1
  141. package/dist/handlers/feature-cache.js +8 -0
  142. package/dist/handlers/feature-cache.js.map +1 -1
  143. package/dist/handlers/hyperfocused.js +1 -1
  144. package/dist/handlers/hyperfocused.js.map +1 -1
  145. package/dist/handlers/lint.d.ts.map +1 -1
  146. package/dist/handlers/lint.js +13 -4
  147. package/dist/handlers/lint.js.map +1 -1
  148. package/dist/handlers/object-types.d.ts +2 -3
  149. package/dist/handlers/object-types.d.ts.map +1 -1
  150. package/dist/handlers/object-types.js +13 -5
  151. package/dist/handlers/object-types.js.map +1 -1
  152. package/dist/handlers/publish-failure.d.ts +7 -0
  153. package/dist/handlers/publish-failure.d.ts.map +1 -0
  154. package/dist/handlers/publish-failure.js +42 -0
  155. package/dist/handlers/publish-failure.js.map +1 -0
  156. package/dist/handlers/read.d.ts.map +1 -1
  157. package/dist/handlers/read.js +39 -9
  158. package/dist/handlers/read.js.map +1 -1
  159. package/dist/handlers/schemas.d.ts +45 -0
  160. package/dist/handlers/schemas.d.ts.map +1 -1
  161. package/dist/handlers/schemas.js +50 -7
  162. package/dist/handlers/schemas.js.map +1 -1
  163. package/dist/handlers/syntax.d.ts +5 -0
  164. package/dist/handlers/syntax.d.ts.map +1 -0
  165. package/dist/handlers/syntax.js +35 -0
  166. package/dist/handlers/syntax.js.map +1 -0
  167. package/dist/handlers/tool-descriptions.d.ts.map +1 -1
  168. package/dist/handlers/tool-descriptions.js +7 -5
  169. package/dist/handlers/tool-descriptions.js.map +1 -1
  170. package/dist/handlers/tool-registry.d.ts +4 -4
  171. package/dist/handlers/tool-registry.d.ts.map +1 -1
  172. package/dist/handlers/tool-registry.js +4 -0
  173. package/dist/handlers/tool-registry.js.map +1 -1
  174. package/dist/handlers/tools.d.ts +1 -16
  175. package/dist/handlers/tools.d.ts.map +1 -1
  176. package/dist/handlers/tools.js +44 -55
  177. package/dist/handlers/tools.js.map +1 -1
  178. package/dist/handlers/transport.d.ts.map +1 -1
  179. package/dist/handlers/transport.js +17 -3
  180. package/dist/handlers/transport.js.map +1 -1
  181. package/dist/handlers/write/class-edit.d.ts +16 -0
  182. package/dist/handlers/write/class-edit.d.ts.map +1 -0
  183. package/dist/handlers/write/class-edit.js +55 -0
  184. package/dist/handlers/write/class-edit.js.map +1 -0
  185. package/dist/handlers/write/class-surgery.d.ts +2 -2
  186. package/dist/handlers/write/class-surgery.d.ts.map +1 -1
  187. package/dist/handlers/write/class-surgery.js +189 -220
  188. package/dist/handlers/write/class-surgery.js.map +1 -1
  189. package/dist/handlers/write/context.d.ts +1 -8
  190. package/dist/handlers/write/context.d.ts.map +1 -1
  191. package/dist/handlers/write/create.d.ts.map +1 -1
  192. package/dist/handlers/write/create.js +11 -4
  193. package/dist/handlers/write/create.js.map +1 -1
  194. package/dist/handlers/write/metadata-update.d.ts +4 -0
  195. package/dist/handlers/write/metadata-update.d.ts.map +1 -0
  196. package/dist/handlers/write/metadata-update.js +58 -0
  197. package/dist/handlers/write/metadata-update.js.map +1 -0
  198. package/dist/handlers/write/rap.d.ts.map +1 -1
  199. package/dist/handlers/write/rap.js +132 -155
  200. package/dist/handlers/write/rap.js.map +1 -1
  201. package/dist/handlers/write/unit-surgery.d.ts +2 -2
  202. package/dist/handlers/write/unit-surgery.d.ts.map +1 -1
  203. package/dist/handlers/write/unit-surgery.js +58 -34
  204. package/dist/handlers/write/unit-surgery.js.map +1 -1
  205. package/dist/handlers/write/update-delete.d.ts.map +1 -1
  206. package/dist/handlers/write/update-delete.js +34 -82
  207. package/dist/handlers/write/update-delete.js.map +1 -1
  208. package/dist/handlers/write-helpers.d.ts +4 -3
  209. package/dist/handlers/write-helpers.d.ts.map +1 -1
  210. package/dist/handlers/write-helpers.js +135 -21
  211. package/dist/handlers/write-helpers.js.map +1 -1
  212. package/dist/handlers/write.d.ts.map +1 -1
  213. package/dist/handlers/write.js +13 -31
  214. package/dist/handlers/write.js.map +1 -1
  215. package/dist/lint/config-builder.d.ts +10 -1
  216. package/dist/lint/config-builder.d.ts.map +1 -1
  217. package/dist/lint/config-builder.js +4 -0
  218. package/dist/lint/config-builder.js.map +1 -1
  219. package/dist/lint/lint.d.ts +3 -1
  220. package/dist/lint/lint.d.ts.map +1 -1
  221. package/dist/lint/lint.js +2 -1
  222. package/dist/lint/lint.js.map +1 -1
  223. package/dist/public/read-only-client.d.ts +6 -0
  224. package/dist/public/read-only-client.d.ts.map +1 -0
  225. package/dist/public/read-only-client.js +66 -0
  226. package/dist/public/read-only-client.js.map +1 -0
  227. package/dist/public/testing.d.ts +4 -0
  228. package/dist/public/testing.d.ts.map +1 -1
  229. package/dist/public/testing.js +6 -0
  230. package/dist/public/testing.js.map +1 -1
  231. package/dist/public/types.d.ts +14 -15
  232. package/dist/public/types.d.ts.map +1 -1
  233. package/dist/server/audit.d.ts +6 -1
  234. package/dist/server/audit.d.ts.map +1 -1
  235. package/dist/server/audit.js.map +1 -1
  236. package/dist/server/config.d.ts.map +1 -1
  237. package/dist/server/config.js +9 -2
  238. package/dist/server/config.js.map +1 -1
  239. package/dist/server/deny-actions.d.ts +2 -1
  240. package/dist/server/deny-actions.d.ts.map +1 -1
  241. package/dist/server/deny-actions.js +13 -2
  242. package/dist/server/deny-actions.js.map +1 -1
  243. package/dist/server/http.d.ts.map +1 -1
  244. package/dist/server/http.js +7 -5
  245. package/dist/server/http.js.map +1 -1
  246. package/dist/server/logger.d.ts +3 -3
  247. package/dist/server/logger.d.ts.map +1 -1
  248. package/dist/server/logger.js +7 -7
  249. package/dist/server/logger.js.map +1 -1
  250. package/dist/server/multi-target-basic-auth.d.ts.map +1 -1
  251. package/dist/server/multi-target-basic-auth.js +1 -0
  252. package/dist/server/multi-target-basic-auth.js.map +1 -1
  253. package/dist/server/multi-target-runtime.d.ts.map +1 -1
  254. package/dist/server/multi-target-runtime.js +1 -0
  255. package/dist/server/multi-target-runtime.js.map +1 -1
  256. package/dist/server/oauth-redirect-policy.d.ts +13 -0
  257. package/dist/server/oauth-redirect-policy.d.ts.map +1 -0
  258. package/dist/server/oauth-redirect-policy.js +21 -0
  259. package/dist/server/oauth-redirect-policy.js.map +1 -0
  260. package/dist/server/plugin-loader.d.ts.map +1 -1
  261. package/dist/server/plugin-loader.js +1 -3
  262. package/dist/server/plugin-loader.js.map +1 -1
  263. package/dist/server/safe-http-client.d.ts +8 -14
  264. package/dist/server/safe-http-client.d.ts.map +1 -1
  265. package/dist/server/safe-http-client.js +51 -73
  266. package/dist/server/safe-http-client.js.map +1 -1
  267. package/dist/server/server.d.ts +5 -4
  268. package/dist/server/server.d.ts.map +1 -1
  269. package/dist/server/server.js +36 -27
  270. package/dist/server/server.js.map +1 -1
  271. package/dist/server/types.d.ts +6 -4
  272. package/dist/server/types.d.ts.map +1 -1
  273. package/dist/server/types.js +2 -0
  274. package/dist/server/types.js.map +1 -1
  275. package/dist/version.d.ts +3 -0
  276. package/dist/version.d.ts.map +1 -0
  277. package/dist/version.js +3 -0
  278. package/dist/version.js.map +1 -0
  279. package/package.json +15 -15
@@ -1,15 +1,14 @@
1
1
  /**
2
2
  * SAPWrite actions — RAP behavior scaffolding.
3
3
  */
4
- import { lockObject, unlockObject, updateSource } from '../../adt/crud.js';
5
- import { generateBehaviorImplementation, isRapGenerateResultSuccess } from '../../adt/rap-generate.js';
4
+ import { generateBehaviorImplementation, isRapGenerateResultSuccess, readRapClassSources, } from '../../adt/rap-generate.js';
6
5
  import { applyRapHandlerScaffold, extractRapHandlerRequirements, findMissingRapHandlerImplementationStubs, findMissingRapHandlerRequirements, } from '../../adt/rap-handlers.js';
7
- import { getCachedFeatures } from '../feature-cache.js';
8
6
  import { classIncludeUrl } from '../object-types.js';
9
7
  import { errorResult, textResult, toolJson } from '../shared.js';
10
8
  import { mergePreWriteWarnings, runPreWriteLint } from '../write-helpers.js';
9
+ import { withClassEdit } from './class-edit.js';
11
10
  export async function writeActionScaffoldRapHandlers(ctx) {
12
- const { client, args, config, cachingLayer, type, name, transport, lintOverride, objectUrl, srcUrl, invalidateWrittenObject, enforcePackageForExistingObject, } = ctx;
11
+ const { client, args, config, cachingLayer, type, name, lintOverride, srcUrl, enforcePackageForExistingObject } = ctx;
13
12
  // What this action does:
14
13
  // Given a behavior-pool class (ZBP_*) and its interface BDEF, inspect
15
14
  // the class for every `lhc_<alias>` local handler class and make
@@ -40,76 +39,114 @@ export async function writeActionScaffoldRapHandlers(ctx) {
40
39
  if (autoApply) {
41
40
  await enforcePackageForExistingObject();
42
41
  }
43
- // Why scan all three CLAS includes (main, definitions, implementations):
44
- // Behavior-pool handler classes CAN live in any of the three, and
45
- // which include they occupy depends on how the pool was generated:
46
- // - "main" (source/main) — unusual; some hand-written pools put
47
- // lhc_* alongside the global class definition
48
- // - "definitions" (CCDEF) — the ADT "Create Behavior Impl Class"
49
- // wizard default target
50
- // - "implementations" (CCIMP) — older SAP templates and every
51
- // example under /DMO/* ship the handler classes here
52
- // We read all three so the diff (findMissingRapHandlerRequirements)
53
- // reflects what's actually declared anywhere in the class, and the
54
- // apply flow can fall through main → definitions → implementations.
55
- const classStructured = await client.getClassStructured(name);
56
- const classMainSource = classStructured.main ?? '';
57
- const classDefinitionsSource = classStructured.definitions ?? '';
58
- const classImplementationsSource = classStructured.implementations ?? '';
59
- const classCombinedSource = [classMainSource, classDefinitionsSource, classImplementationsSource]
60
- .filter(Boolean)
61
- .join('\n\n');
62
- const bdefSource = cachingLayer
63
- ? (await cachingLayer.getSource('BDEF', bdefName, (ifNoneMatch) => client.getBdef(bdefName, { ifNoneMatch })))
64
- .source
65
- : (await client.getBdef(bdefName)).source;
66
- let requirements = extractRapHandlerRequirements(bdefSource);
67
- if (targetAlias) {
68
- requirements = requirements.filter((req) => req.entityAlias.toLowerCase() === targetAlias);
69
- }
70
- if (requirements.length === 0) {
71
- const allAliases = Array.from(new Set(extractRapHandlerRequirements(bdefSource).map((req) => req.entityAlias)));
72
- const aliasHint = targetAlias && allAliases.length > 0
73
- ? ` Available aliases in ${bdefName}: ${allAliases.join(', ')}.`
74
- : ' No RAP action/determination/validation/auth handler declarations were found in the BDEF source.';
75
- return errorResult(`No RAP handler requirements were found for the requested scope.${aliasHint}`);
76
- }
77
- const missing = findMissingRapHandlerRequirements(requirements, classCombinedSource);
78
- const missingImplementationStubs = findMissingRapHandlerImplementationStubs(requirements, classCombinedSource);
79
- const summary = {
80
- className: name,
81
- bdefName,
82
- targetAlias: targetAlias || undefined,
83
- scannedSections: [
84
- 'main',
85
- classDefinitionsSource ? 'definitions' : undefined,
86
- classImplementationsSource ? 'implementations' : undefined,
87
- ].filter(Boolean),
88
- requiredCount: requirements.length,
89
- missingCount: missing.length,
90
- missing,
91
- missingImplementationStubCount: missingImplementationStubs.length,
92
- missingImplementationStubs,
93
- };
94
- if (!autoApply || (missing.length === 0 && missingImplementationStubs.length === 0)) {
95
- return textResult(toolJson({ ...summary, applied: false }));
96
- }
97
- // Pure RAP transformation planning lives in rap-handlers.ts. Keep this
98
- // handler focused on MCP/ADT concerns: safety, linting, locking, writes.
99
- const scaffoldPlan = applyRapHandlerScaffold({
100
- main: classMainSource,
101
- definitions: classDefinitionsSource || undefined,
102
- implementations: classImplementationsSource || undefined,
103
- }, missing, missingImplementationStubs);
104
- if (scaffoldPlan.changedSections.length === 0) {
105
- const unresolvedHandlerClasses = Array.from(new Set(scaffoldPlan.unresolved.map((req) => req.targetHandlerClass)));
106
- const unresolvedHint = unresolvedHandlerClasses.length > 0
107
- ? `No source changes were applied because handler class skeleton(s) ${unresolvedHandlerClasses.join(', ')} were not found in main, definitions, or implementations. Create the local handler class skeleton(s) first (for example with the ADT quick fix "Create local handler class"), then rerun with autoApply=true.`
108
- : undefined;
109
- return textResult(toolJson({
42
+ const scaffold = async (session, save) => {
43
+ const classStructured = await readRapClassSources(session, client.safety, name);
44
+ const classMainSource = classStructured.main;
45
+ const classDefinitionsSource = classStructured.definitions ?? '';
46
+ const classImplementationsSource = classStructured.implementations ?? '';
47
+ const classCombinedSource = [classMainSource, classDefinitionsSource, classImplementationsSource]
48
+ .filter(Boolean)
49
+ .join('\n\n');
50
+ const bdefSource = cachingLayer
51
+ ? (await cachingLayer.getSource('BDEF', bdefName, (ifNoneMatch) => client.getBdef(bdefName, { ifNoneMatch })))
52
+ .source
53
+ : (await client.getBdef(bdefName)).source;
54
+ let requirements = extractRapHandlerRequirements(bdefSource);
55
+ if (targetAlias) {
56
+ requirements = requirements.filter((req) => req.entityAlias.toLowerCase() === targetAlias);
57
+ }
58
+ if (requirements.length === 0) {
59
+ const allAliases = Array.from(new Set(extractRapHandlerRequirements(bdefSource).map((req) => req.entityAlias)));
60
+ const aliasHint = targetAlias && allAliases.length > 0
61
+ ? ` Available aliases in ${bdefName}: ${allAliases.join(', ')}.`
62
+ : ' No RAP action/determination/validation/auth handler declarations were found in the BDEF source.';
63
+ return errorResult(`No RAP handler requirements were found for the requested scope.${aliasHint}`);
64
+ }
65
+ const missing = findMissingRapHandlerRequirements(requirements, classCombinedSource);
66
+ const missingImplementationStubs = findMissingRapHandlerImplementationStubs(requirements, classCombinedSource);
67
+ const summary = {
68
+ className: name,
69
+ bdefName,
70
+ targetAlias: targetAlias || undefined,
71
+ scannedSections: [
72
+ 'main',
73
+ classDefinitionsSource ? 'definitions' : undefined,
74
+ classImplementationsSource ? 'implementations' : undefined,
75
+ ].filter(Boolean),
76
+ requiredCount: requirements.length,
77
+ missingCount: missing.length,
78
+ missing,
79
+ missingImplementationStubCount: missingImplementationStubs.length,
80
+ missingImplementationStubs,
81
+ };
82
+ if (!save || (missing.length === 0 && missingImplementationStubs.length === 0)) {
83
+ return textResult(toolJson({ ...summary, applied: false }));
84
+ }
85
+ // Pure RAP transformation planning lives in rap-handlers.ts. Keep this
86
+ // handler focused on MCP/ADT concerns: safety, linting, locking, writes.
87
+ const scaffoldPlan = applyRapHandlerScaffold({
88
+ main: classMainSource,
89
+ definitions: classDefinitionsSource || undefined,
90
+ implementations: classImplementationsSource || undefined,
91
+ }, missing, missingImplementationStubs);
92
+ if (scaffoldPlan.changedSections.length === 0) {
93
+ const unresolvedHandlerClasses = Array.from(new Set(scaffoldPlan.unresolved.map((req) => req.targetHandlerClass)));
94
+ const unresolvedHint = unresolvedHandlerClasses.length > 0
95
+ ? `No source changes were applied because handler class skeleton(s) ${unresolvedHandlerClasses.join(', ')} were not found in main, definitions, or implementations. Create the local handler class skeleton(s) first (for example with the ADT quick fix "Create local handler class"), then rerun with autoApply=true.`
96
+ : undefined;
97
+ return textResult(toolJson({
98
+ ...summary,
99
+ applied: false,
100
+ hint: unresolvedHint,
101
+ applyResult: {
102
+ skeletons: scaffoldPlan.skeletons,
103
+ main: scaffoldPlan.signatures.main,
104
+ definitions: scaffoldPlan.signatures.definitions,
105
+ implementations: scaffoldPlan.signatures.implementations,
106
+ implementationStubs: scaffoldPlan.implementationStubs,
107
+ unresolved: scaffoldPlan.unresolved,
108
+ },
109
+ }));
110
+ }
111
+ const finalMainSource = scaffoldPlan.sections.main;
112
+ const finalDefinitionsSource = scaffoldPlan.sections.definitions;
113
+ const finalImplementationsSource = scaffoldPlan.sections.implementations;
114
+ const { changed } = scaffoldPlan;
115
+ // Run lint for every section we are about to update; block before any write to avoid partial state.
116
+ let lintWarningsMain;
117
+ if (changed.main) {
118
+ lintWarningsMain = runPreWriteLint(finalMainSource, type, name, config, lintOverride);
119
+ if (lintWarningsMain.blocked)
120
+ return lintWarningsMain.result;
121
+ }
122
+ let lintWarningsDefinitions;
123
+ if (changed.definitions && finalDefinitionsSource) {
124
+ lintWarningsDefinitions = runPreWriteLint(finalDefinitionsSource, type, name, config, lintOverride);
125
+ if (lintWarningsDefinitions.blocked)
126
+ return lintWarningsDefinitions.result;
127
+ }
128
+ let lintWarningsImplementations;
129
+ if (changed.implementations && finalImplementationsSource) {
130
+ lintWarningsImplementations = runPreWriteLint(finalImplementationsSource, type, name, config, lintOverride);
131
+ if (lintWarningsImplementations.blocked)
132
+ return lintWarningsImplementations.result;
133
+ }
134
+ // The shared class lifecycle invalidates caches even after a partial save.
135
+ if (changed.main)
136
+ await save(srcUrl, finalMainSource);
137
+ if (changed.definitions && finalDefinitionsSource) {
138
+ await save(classIncludeUrl(name, 'definitions'), finalDefinitionsSource);
139
+ }
140
+ if (changed.implementations && finalImplementationsSource) {
141
+ await save(classIncludeUrl(name, 'implementations'), finalImplementationsSource);
142
+ }
143
+ const msg = `Scaffolded ${scaffoldPlan.insertedSignatureCount} RAP handler signature(s) and ${scaffoldPlan.insertedImplementationStubCount} implementation stub(s) in ${type} ${name} from BDEF ${bdefName}. ` +
144
+ `Auto-created ${scaffoldPlan.skeletons.createdDefinitions.length + scaffoldPlan.skeletons.createdImplementations.length} handler skeleton section(s). ` +
145
+ `Updated section(s): ${scaffoldPlan.changedSections.join(', ')}.`;
146
+ const warnings = mergePreWriteWarnings(lintWarningsMain?.warnings, lintWarningsDefinitions?.warnings, lintWarningsImplementations?.warnings);
147
+ const details = toolJson({
110
148
  ...summary,
111
- applied: false,
112
- hint: unresolvedHint,
149
+ applied: true,
113
150
  applyResult: {
114
151
  skeletons: scaffoldPlan.skeletons,
115
152
  main: scaffoldPlan.signatures.main,
@@ -118,80 +155,13 @@ export async function writeActionScaffoldRapHandlers(ctx) {
118
155
  implementationStubs: scaffoldPlan.implementationStubs,
119
156
  unresolved: scaffoldPlan.unresolved,
120
157
  },
121
- }));
122
- }
123
- const finalMainSource = scaffoldPlan.sections.main;
124
- const finalDefinitionsSource = scaffoldPlan.sections.definitions;
125
- const finalImplementationsSource = scaffoldPlan.sections.implementations;
126
- const { changed } = scaffoldPlan;
127
- // Run lint for every section we are about to update; block before any write to avoid partial state.
128
- let lintWarningsMain;
129
- if (changed.main) {
130
- lintWarningsMain = runPreWriteLint(finalMainSource, type, name, config, lintOverride);
131
- if (lintWarningsMain.blocked)
132
- return lintWarningsMain.result;
133
- }
134
- let lintWarningsDefinitions;
135
- if (changed.definitions && finalDefinitionsSource) {
136
- lintWarningsDefinitions = runPreWriteLint(finalDefinitionsSource, type, name, config, lintOverride);
137
- if (lintWarningsDefinitions.blocked)
138
- return lintWarningsDefinitions.result;
139
- }
140
- let lintWarningsImplementations;
141
- if (changed.implementations && finalImplementationsSource) {
142
- lintWarningsImplementations = runPreWriteLint(finalImplementationsSource, type, name, config, lintOverride);
143
- if (lintWarningsImplementations.blocked)
144
- return lintWarningsImplementations.result;
145
- }
146
- // All modified includes share one lock so we never end up in a partial-state
147
- // (e.g. main written, implementations errored → handler class declares but
148
- // doesn't implement methods → class cannot activate). The lock is taken once
149
- // at the class object URL, and every include PUT carries the same lockHandle.
150
- // This mirrors how ADT-in-Eclipse saves a multi-include class in one commit.
151
- await client.http.withStatefulSession(async (session) => {
152
- const lock = await lockObject(session, client.safety, objectUrl, 'MODIFY', getCachedFeatures()?.abapRelease);
153
- const effectiveTransport = transport ?? (lock.corrNr || undefined);
154
- try {
155
- if (changed.main) {
156
- await updateSource(session, client.safety, srcUrl, finalMainSource, lock.lockHandle, effectiveTransport);
157
- }
158
- if (changed.definitions && finalDefinitionsSource) {
159
- await updateSource(session, client.safety, classIncludeUrl(name, 'definitions'), finalDefinitionsSource, lock.lockHandle, effectiveTransport);
160
- }
161
- if (changed.implementations && finalImplementationsSource) {
162
- await updateSource(session, client.safety, classIncludeUrl(name, 'implementations'), finalImplementationsSource, lock.lockHandle, effectiveTransport);
163
- }
164
- }
165
- finally {
166
- // Best-effort unlock — if the object was already removed or the session
167
- // expired, we still want to surface the original error instead of masking
168
- // it with an unlock failure.
169
- try {
170
- await unlockObject(session, objectUrl, lock.lockHandle);
171
- }
172
- catch {
173
- // Swallowed intentionally; see comment above.
174
- }
175
- }
176
- });
177
- invalidateWrittenObject();
178
- const msg = `Scaffolded ${scaffoldPlan.insertedSignatureCount} RAP handler signature(s) and ${scaffoldPlan.insertedImplementationStubCount} implementation stub(s) in ${type} ${name} from BDEF ${bdefName}. ` +
179
- `Auto-created ${scaffoldPlan.skeletons.createdDefinitions.length + scaffoldPlan.skeletons.createdImplementations.length} handler skeleton section(s). ` +
180
- `Updated section(s): ${scaffoldPlan.changedSections.join(', ')}.`;
181
- const warnings = mergePreWriteWarnings(lintWarningsMain?.warnings, lintWarningsDefinitions?.warnings, lintWarningsImplementations?.warnings);
182
- const details = toolJson({
183
- ...summary,
184
- applied: true,
185
- applyResult: {
186
- skeletons: scaffoldPlan.skeletons,
187
- main: scaffoldPlan.signatures.main,
188
- definitions: scaffoldPlan.signatures.definitions,
189
- implementations: scaffoldPlan.signatures.implementations,
190
- implementationStubs: scaffoldPlan.implementationStubs,
191
- unresolved: scaffoldPlan.unresolved,
192
- },
193
- });
194
- return warnings ? textResult(`${msg}\n\n${warnings}\n\n${details}`) : textResult(`${msg}\n\n${details}`);
158
+ });
159
+ return warnings ? textResult(`${msg}\n\n${warnings}\n\n${details}`) : textResult(`${msg}\n\n${details}`);
160
+ };
161
+ if (!autoApply)
162
+ return scaffold(client.http);
163
+ // Even unchanged auto-apply calls need the lock to establish a current no-op.
164
+ return withClassEdit(ctx, ({ http, save }) => scaffold(http, save));
195
165
  }
196
166
  export async function writeActionGenerateBehaviorImplementation(ctx) {
197
167
  const { client, args, type, name, transport, invalidateWrittenObject, enforcePackageForExistingObject } = ctx;
@@ -217,14 +187,21 @@ export async function writeActionGenerateBehaviorImplementation(ctx) {
217
187
  if (!dryRun) {
218
188
  await enforcePackageForExistingObject();
219
189
  }
220
- const result = await generateBehaviorImplementation(client, name, {
221
- bdefName: explicitBdef,
222
- targetAlias,
223
- activate,
224
- dryRun,
225
- transport,
226
- });
227
- invalidateWrittenObject();
190
+ let result;
191
+ try {
192
+ result = await generateBehaviorImplementation(client, name, {
193
+ bdefName: explicitBdef,
194
+ targetAlias,
195
+ activate,
196
+ dryRun,
197
+ transport,
198
+ });
199
+ }
200
+ finally {
201
+ // Generation can leave saved includes even when a later PUT/unlock/activation fails.
202
+ if (!dryRun)
203
+ invalidateWrittenObject();
204
+ }
228
205
  // MCP result-code mapping via the exported helper — see
229
206
  // `isRapGenerateResultSuccess` for the success/error contract (Codex review on PR #260, P1).
230
207
  // The structured JSON is preserved in both branches so the caller can still see what
@@ -1 +1 @@
1
- {"version":3,"file":"rap.js","sourceRoot":"","sources":["../../../src/handlers/write/rap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rap.js","sourceRoot":"","sources":["../../../src/handlers/write/rap.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- /** SAPWrite action for surgical FORM/MODULE replacement in PROG and INCL sources. */
1
+ /** SAPWrite action for surgical FORM/MODULE replacement and insertion in PROG and INCL sources. */
2
2
  import { type ToolResult } from '../shared.js';
3
3
  import type { SapWriteContext } from './context.js';
4
- export declare function writeActionEditUnit(ctx: SapWriteContext): Promise<ToolResult>;
4
+ export declare function writeActionUnit(ctx: SapWriteContext): Promise<ToolResult>;
5
5
  //# sourceMappingURL=unit-surgery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unit-surgery.d.ts","sourceRoot":"","sources":["../../../src/handlers/write/unit-surgery.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAOrF,OAAO,EAAe,KAAK,UAAU,EAAc,MAAM,cAAc,CAAC;AAExE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAsEnF"}
1
+ {"version":3,"file":"unit-surgery.d.ts","sourceRoot":"","sources":["../../../src/handlers/write/unit-surgery.ts"],"names":[],"mappings":"AAAA,mGAAmG;AAQnG,OAAO,EAAe,KAAK,UAAU,EAAc,MAAM,cAAc,CAAC;AAExE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,wBAAsB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAsF/E"}
@@ -1,47 +1,71 @@
1
- /** SAPWrite action for surgical FORM/MODULE replacement in PROG and INCL sources. */
2
- import { safeUpdateSource } from '../../adt/crud.js';
3
- import { mapSapReleaseToAbaplintVersion } from '../../adt/features.js';
4
- import { spliceUnit } from '../../context/unit-surgery.js';
1
+ /** SAPWrite action for surgical FORM/MODULE replacement and insertion in PROG and INCL sources. */
2
+ import { lockObject, unlockObject, updateSource } from '../../adt/crud.js';
3
+ import { ABAPLINT_MAX_RELEASE, mapSapReleaseToAbaplintVersion } from '../../adt/features.js';
4
+ import { checkOperation, OperationType } from '../../adt/safety.js';
5
+ import { assertSourceHash } from '../../adt/source-precondition.js';
6
+ import { insertUnit, spliceUnit } from '../../context/unit-surgery.js';
5
7
  import { getCachedFeatures } from '../feature-cache.js';
6
- import { resolveVersionAndDraftInfo } from '../read.js';
7
8
  import { errorResult, textResult } from '../shared.js';
8
9
  import { runPreWriteLint, runPreWriteSyntaxCheck } from '../write-helpers.js';
9
- export async function writeActionEditUnit(ctx) {
10
- const { client, args, config, cachingLayer, cacheSecurity, type, name, source, transport, lintOverride, checkOverride, objectUrl, srcUrl, invalidateWrittenObject, enforcePackageForExistingObject, } = ctx;
10
+ export async function writeActionUnit(ctx) {
11
+ const { client, args, config, type, name, source, transport, lintOverride, checkOverride, objectUrl, srcUrl, invalidateWrittenObject, enforcePackageForExistingObject, } = ctx;
12
+ const action = String(args.action);
13
+ const adding = action === 'add_unit';
11
14
  const unit = String(args.unit ?? '').trim();
12
15
  if (!unit)
13
- return errorResult('"unit" is required for edit_unit action.');
16
+ return errorResult(`"unit" is required for ${action} action.`);
14
17
  if (!source.trim()) {
15
- return errorResult('"source" (complete FORM...ENDFORM or MODULE...ENDMODULE block) is required for edit_unit.');
18
+ return errorResult(`"source" (complete FORM...ENDFORM or MODULE...ENDMODULE block) is required for ${action}.`);
16
19
  }
17
20
  if (type !== 'PROG' && type !== 'INCL') {
18
- return errorResult('edit_unit is only supported for type=PROG or type=INCL.');
21
+ return errorResult(`${action} is only supported for type=PROG or type=INCL.`);
19
22
  }
23
+ checkOperation(client.safety, OperationType.Update, 'EditUnit');
20
24
  await enforcePackageForExistingObject();
21
- // Read the latest relevant bytes directly from SAP. If an inactive draft exists,
22
- // splice into that draft so consecutive edit_unit calls do not overwrite each other.
23
- const { effectiveVersion } = await resolveVersionAndDraftInfo(client, cachingLayer, type, name, 'auto', cacheSecurity);
24
- const currentSource = (await client.getSourceAtObjectUrl(objectUrl, { version: effectiveVersion })).source;
25
25
  const cachedFeatures = getCachedFeatures();
26
- const abaplintVersion = cachedFeatures?.abapRelease
27
- ? mapSapReleaseToAbaplintVersion(cachedFeatures.abapRelease)
28
- : undefined;
29
- const spliced = spliceUnit(currentSource, name, unit, source, abaplintVersion);
30
- if (!spliced.success)
31
- return errorResult(spliced.error ?? `Failed to splice unit "${unit}" in ${name}.`);
32
- const lint = runPreWriteLint(spliced.newSource, type, name, config, lintOverride);
33
- if (lint.blocked)
34
- return lint.result;
35
- const checkNotes = await runPreWriteSyntaxCheck(client, type, spliced.newSource, objectUrl, config, checkOverride);
36
- await safeUpdateSource(client.http, client.safety, objectUrl, srcUrl, spliced.newSource, transport, cachedFeatures?.abapRelease);
37
- invalidateWrittenObject(type, name);
38
- const kind = spliced.unit?.kind ?? 'unit';
39
- const group = String(args.group ?? '').trim();
40
- const activationHint = type === 'INCL' && group
41
- ? ` Activate this structural include with SAPActivate(type="INCL", name="${name}", group="${group}").`
42
- : '';
43
- const message = `Successfully updated ${kind} "${unit}" in ${type} ${name}.${activationHint}`;
44
- const extras = [lint.warnings, checkNotes].filter(Boolean).join('\n\n');
45
- return extras ? textResult(`${message}\n\n${extras}`) : textResult(message);
26
+ // Match unit lookup's on-prem ceiling only when the target release is unknown.
27
+ // Keep this fallback local: standalone lint and other write actions still use their defaults.
28
+ const release = cachedFeatures?.abapRelease ?? config.abapRelease ?? String(ABAPLINT_MAX_RELEASE);
29
+ const abaplintVersion = mapSapReleaseToAbaplintVersion(release);
30
+ return client.http.withStatefulSession(async (session) => {
31
+ const lock = await lockObject(session, client.safety, objectUrl, 'MODIFY', cachedFeatures?.abapRelease);
32
+ let writeAttempted = false;
33
+ try {
34
+ checkOperation(client.safety, OperationType.Read, 'GetSource');
35
+ // Omit version: SAP returns the editable draft, or active source when no draft exists.
36
+ // Read after locking, without source or inactive-list caches.
37
+ const currentSource = (await session.get(srcUrl, { 'Cache-Control': 'no-cache' })).body;
38
+ assertSourceHash(currentSource, args.expectedSourceHash, srcUrl);
39
+ const spliced = adding
40
+ ? insertUnit(currentSource, name, unit, source, abaplintVersion)
41
+ : spliceUnit(currentSource, name, unit, source, abaplintVersion);
42
+ if (!spliced.success)
43
+ return errorResult(spliced.error ?? `Failed to splice unit "${unit}" in ${name}.`);
44
+ const lint = runPreWriteLint(spliced.newSource, type, name, { ...config, abapRelease: release }, lintOverride);
45
+ if (lint.blocked)
46
+ return lint.result;
47
+ const checkNotes = await runPreWriteSyntaxCheck({ http: session, safety: client.safety }, type, spliced.newSource, objectUrl, config, checkOverride);
48
+ writeAttempted = true;
49
+ await updateSource(session, client.safety, srcUrl, spliced.newSource, lock.lockHandle, transport ?? (lock.corrNr || undefined));
50
+ const kind = spliced.unit?.kind ?? 'unit';
51
+ const group = String(args.group ?? '').trim();
52
+ const activationHint = type === 'INCL' && group
53
+ ? ` Activate this structural include with SAPActivate(type="INCL", name="${name}", group="${group}").`
54
+ : '';
55
+ const message = `Successfully ${adding ? 'added' : 'updated'} ${kind} "${unit}" in ${type} ${name}.${activationHint}`;
56
+ const extras = [lint.warnings, checkNotes].filter(Boolean).join('\n\n');
57
+ return extras ? textResult(`${message}\n\n${extras}`) : textResult(message);
58
+ }
59
+ finally {
60
+ // Surface failed unlocks: SAP may still hold the lock after a successful write.
61
+ try {
62
+ await unlockObject(session, objectUrl, lock.lockHandle);
63
+ }
64
+ finally {
65
+ if (writeAttempted)
66
+ invalidateWrittenObject(type, name);
67
+ }
68
+ }
69
+ });
46
70
  }
47
71
  //# sourceMappingURL=unit-surgery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"unit-surgery.js","sourceRoot":"","sources":["../../../src/handlers/write/unit-surgery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unit-surgery.js","sourceRoot":"","sources":["../../../src/handlers/write/unit-surgery.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"update-delete.d.ts","sourceRoot":"","sources":["../../../src/handlers/write/update-delete.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgCH,OAAO,EAAe,KAAK,UAAU,EAAc,MAAM,cAAc,CAAC;AAexE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAcpD,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAiOjF;AAED,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CA2DjF;AAED;;;;;4FAK4F;AAC5F,wBAAsB,0BAA0B,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAgC1F"}
1
+ {"version":3,"file":"update-delete.d.ts","sourceRoot":"","sources":["../../../src/handlers/write/update-delete.ts"],"names":[],"mappings":"AAAA;;GAEG;AAoBH,OAAO,EAAe,KAAK,UAAU,EAAc,MAAM,cAAc,CAAC;AASxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAepD,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CA2JjF;AAED,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CA2DjF;AAED;;;;;4FAK4F;AAC5F,wBAAsB,0BAA0B,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAgC1F"}