arc-1 0.9.14 → 0.9.16

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 (195) hide show
  1. package/README.md +17 -4
  2. package/dist/adt/class-structure.d.ts +1 -1
  3. package/dist/adt/class-structure.js +1 -1
  4. package/dist/adt/client.d.ts +16 -3
  5. package/dist/adt/client.d.ts.map +1 -1
  6. package/dist/adt/client.js +40 -35
  7. package/dist/adt/client.js.map +1 -1
  8. package/dist/adt/ddic-xml.d.ts.map +1 -1
  9. package/dist/adt/ddic-xml.js +46 -53
  10. package/dist/adt/ddic-xml.js.map +1 -1
  11. package/dist/adt/devtools.d.ts.map +1 -1
  12. package/dist/adt/devtools.js +46 -15
  13. package/dist/adt/devtools.js.map +1 -1
  14. package/dist/adt/fm-signature.d.ts +1 -1
  15. package/dist/adt/fm-signature.js +1 -1
  16. package/dist/adt/rap-generate.js +1 -1
  17. package/dist/adt/rap-generate.js.map +1 -1
  18. package/dist/adt/rap-handlers.d.ts +1 -1
  19. package/dist/adt/rap-handlers.js +1 -1
  20. package/dist/adt/refactoring.d.ts.map +1 -1
  21. package/dist/adt/refactoring.js +11 -14
  22. package/dist/adt/refactoring.js.map +1 -1
  23. package/dist/adt/server-driven.d.ts +46 -2
  24. package/dist/adt/server-driven.d.ts.map +1 -1
  25. package/dist/adt/server-driven.js +13 -3
  26. package/dist/adt/server-driven.js.map +1 -1
  27. package/dist/adt/xml-parser.d.ts +8 -1
  28. package/dist/adt/xml-parser.d.ts.map +1 -1
  29. package/dist/adt/xml-parser.js +57 -49
  30. package/dist/adt/xml-parser.js.map +1 -1
  31. package/dist/authz/policy.d.ts +1 -1
  32. package/dist/authz/policy.js +1 -1
  33. package/dist/cache/cache.d.ts +1 -0
  34. package/dist/cache/cache.d.ts.map +1 -1
  35. package/dist/cache/cache.js.map +1 -1
  36. package/dist/cache/memory.d.ts +1 -0
  37. package/dist/cache/memory.d.ts.map +1 -1
  38. package/dist/cache/memory.js +3 -0
  39. package/dist/cache/memory.js.map +1 -1
  40. package/dist/cache/sqlite.d.ts +1 -0
  41. package/dist/cache/sqlite.d.ts.map +1 -1
  42. package/dist/cache/sqlite.js +3 -0
  43. package/dist/cache/sqlite.js.map +1 -1
  44. package/dist/cache/warmup.d.ts.map +1 -1
  45. package/dist/cache/warmup.js +85 -38
  46. package/dist/cache/warmup.js.map +1 -1
  47. package/dist/cli.d.ts +1 -1
  48. package/dist/cli.js +2 -2
  49. package/dist/cli.js.map +1 -1
  50. package/dist/context/compressor.d.ts.map +1 -1
  51. package/dist/context/compressor.js +22 -13
  52. package/dist/context/compressor.js.map +1 -1
  53. package/dist/context/contract.d.ts.map +1 -1
  54. package/dist/context/contract.js +4 -3
  55. package/dist/context/contract.js.map +1 -1
  56. package/dist/context/deps.d.ts.map +1 -1
  57. package/dist/context/deps.js +3 -2
  58. package/dist/context/deps.js.map +1 -1
  59. package/dist/context/method-surgery.d.ts.map +1 -1
  60. package/dist/context/method-surgery.js +3 -2
  61. package/dist/context/method-surgery.js.map +1 -1
  62. package/dist/handlers/activate.d.ts +25 -0
  63. package/dist/handlers/activate.d.ts.map +1 -0
  64. package/dist/handlers/activate.js +334 -0
  65. package/dist/handlers/activate.js.map +1 -0
  66. package/dist/handlers/cache-security.d.ts +22 -0
  67. package/dist/handlers/cache-security.d.ts.map +1 -0
  68. package/dist/handlers/cache-security.js +51 -0
  69. package/dist/handlers/cache-security.js.map +1 -0
  70. package/dist/handlers/cds-hints.d.ts +26 -0
  71. package/dist/handlers/cds-hints.d.ts.map +1 -0
  72. package/dist/handlers/cds-hints.js +380 -0
  73. package/dist/handlers/cds-hints.js.map +1 -0
  74. package/dist/handlers/context.d.ts +10 -0
  75. package/dist/handlers/context.d.ts.map +1 -0
  76. package/dist/handlers/context.js +344 -0
  77. package/dist/handlers/context.js.map +1 -0
  78. package/dist/handlers/diagnose.d.ts +8 -0
  79. package/dist/handlers/diagnose.d.ts.map +1 -0
  80. package/dist/handlers/diagnose.js +274 -0
  81. package/dist/handlers/diagnose.js.map +1 -0
  82. package/dist/handlers/dispatch.d.ts +39 -0
  83. package/dist/handlers/dispatch.d.ts.map +1 -0
  84. package/dist/handlers/dispatch.js +640 -0
  85. package/dist/handlers/dispatch.js.map +1 -0
  86. package/dist/handlers/feature-cache.d.ts +26 -0
  87. package/dist/handlers/feature-cache.d.ts.map +1 -0
  88. package/dist/handlers/feature-cache.js +45 -0
  89. package/dist/handlers/feature-cache.js.map +1 -0
  90. package/dist/handlers/git.d.ts +9 -0
  91. package/dist/handlers/git.d.ts.map +1 -0
  92. package/dist/handlers/git.js +227 -0
  93. package/dist/handlers/git.js.map +1 -0
  94. package/dist/handlers/lint.d.ts +9 -0
  95. package/dist/handlers/lint.d.ts.map +1 -0
  96. package/dist/handlers/lint.js +82 -0
  97. package/dist/handlers/lint.js.map +1 -0
  98. package/dist/handlers/manage.d.ts +10 -0
  99. package/dist/handlers/manage.d.ts.map +1 -0
  100. package/dist/handlers/manage.js +375 -0
  101. package/dist/handlers/manage.js.map +1 -0
  102. package/dist/handlers/navigate.d.ts +8 -0
  103. package/dist/handlers/navigate.d.ts.map +1 -0
  104. package/dist/handlers/navigate.js +188 -0
  105. package/dist/handlers/navigate.js.map +1 -0
  106. package/dist/handlers/object-types.d.ts +103 -0
  107. package/dist/handlers/object-types.d.ts.map +1 -0
  108. package/dist/handlers/object-types.js +476 -0
  109. package/dist/handlers/object-types.js.map +1 -0
  110. package/dist/handlers/query.d.ts +7 -0
  111. package/dist/handlers/query.d.ts.map +1 -0
  112. package/dist/handlers/query.js +190 -0
  113. package/dist/handlers/query.js.map +1 -0
  114. package/dist/handlers/read.d.ts +18 -0
  115. package/dist/handlers/read.d.ts.map +1 -0
  116. package/dist/handlers/read.js +581 -0
  117. package/dist/handlers/read.js.map +1 -0
  118. package/dist/handlers/schemas.d.ts +28 -26
  119. package/dist/handlers/schemas.d.ts.map +1 -1
  120. package/dist/handlers/schemas.js +14 -151
  121. package/dist/handlers/schemas.js.map +1 -1
  122. package/dist/handlers/search.d.ts +24 -0
  123. package/dist/handlers/search.d.ts.map +1 -0
  124. package/dist/handlers/search.js +208 -0
  125. package/dist/handlers/search.js.map +1 -0
  126. package/dist/handlers/shared.d.ts +19 -0
  127. package/dist/handlers/shared.d.ts.map +1 -0
  128. package/dist/handlers/shared.js +23 -0
  129. package/dist/handlers/shared.js.map +1 -0
  130. package/dist/handlers/tool-registry.d.ts +44 -0
  131. package/dist/handlers/tool-registry.d.ts.map +1 -0
  132. package/dist/handlers/tool-registry.js +152 -0
  133. package/dist/handlers/tool-registry.js.map +1 -0
  134. package/dist/handlers/tools.d.ts +9 -0
  135. package/dist/handlers/tools.d.ts.map +1 -1
  136. package/dist/handlers/tools.js +41 -144
  137. package/dist/handlers/tools.js.map +1 -1
  138. package/dist/handlers/transport.d.ts +8 -0
  139. package/dist/handlers/transport.d.ts.map +1 -0
  140. package/dist/handlers/transport.js +281 -0
  141. package/dist/handlers/transport.js.map +1 -0
  142. package/dist/handlers/write/class-surgery.d.ts +18 -0
  143. package/dist/handlers/write/class-surgery.d.ts.map +1 -0
  144. package/dist/handlers/write/class-surgery.js +376 -0
  145. package/dist/handlers/write/class-surgery.js.map +1 -0
  146. package/dist/handlers/write/context.d.ts +43 -0
  147. package/dist/handlers/write/context.d.ts.map +1 -0
  148. package/dist/handlers/write/context.js +5 -0
  149. package/dist/handlers/write/context.js.map +1 -0
  150. package/dist/handlers/write/create.d.ts +8 -0
  151. package/dist/handlers/write/create.d.ts.map +1 -0
  152. package/dist/handlers/write/create.js +603 -0
  153. package/dist/handlers/write/create.js.map +1 -0
  154. package/dist/handlers/write/rap.d.ts +8 -0
  155. package/dist/handlers/write/rap.d.ts.map +1 -0
  156. package/dist/handlers/write/rap.js +235 -0
  157. package/dist/handlers/write/rap.js.map +1 -0
  158. package/dist/handlers/write/update-delete.d.ts +8 -0
  159. package/dist/handlers/write/update-delete.d.ts.map +1 -0
  160. package/dist/handlers/write/update-delete.js +182 -0
  161. package/dist/handlers/write/update-delete.js.map +1 -0
  162. package/dist/handlers/write-helpers.d.ts +155 -0
  163. package/dist/handlers/write-helpers.d.ts.map +1 -0
  164. package/dist/handlers/write-helpers.js +859 -0
  165. package/dist/handlers/write-helpers.js.map +1 -0
  166. package/dist/handlers/write.d.ts +16 -0
  167. package/dist/handlers/write.d.ts.map +1 -0
  168. package/dist/handlers/write.js +210 -0
  169. package/dist/handlers/write.js.map +1 -0
  170. package/dist/handlers/zod-errors.d.ts +1 -1
  171. package/dist/handlers/zod-errors.js +1 -1
  172. package/dist/lint/abaplint-config-cache.d.ts +5 -0
  173. package/dist/lint/abaplint-config-cache.d.ts.map +1 -0
  174. package/dist/lint/abaplint-config-cache.js +29 -0
  175. package/dist/lint/abaplint-config-cache.js.map +1 -0
  176. package/dist/lint/config-builder.d.ts.map +1 -1
  177. package/dist/lint/config-builder.js +3 -4
  178. package/dist/lint/config-builder.js.map +1 -1
  179. package/dist/lint/lint.d.ts +1 -1
  180. package/dist/lint/lint.d.ts.map +1 -1
  181. package/dist/lint/lint.js +3 -2
  182. package/dist/lint/lint.js.map +1 -1
  183. package/dist/server/config.d.ts.map +1 -1
  184. package/dist/server/config.js +22 -8
  185. package/dist/server/config.js.map +1 -1
  186. package/dist/server/mcp-rate-limit.d.ts +1 -1
  187. package/dist/server/mcp-rate-limit.js +1 -1
  188. package/dist/server/server.d.ts +1 -1
  189. package/dist/server/server.js +3 -2
  190. package/dist/server/server.js.map +1 -1
  191. package/package.json +15 -10
  192. package/dist/handlers/intent.d.ts +0 -144
  193. package/dist/handlers/intent.d.ts.map +0 -1
  194. package/dist/handlers/intent.js +0 -6837
  195. package/dist/handlers/intent.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/handlers/write/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * SAPWrite actions — RAP behavior scaffolding.
3
+ */
4
+ import { type ToolResult } from '../shared.js';
5
+ import type { SapWriteContext } from './context.js';
6
+ export declare function writeActionScaffoldRapHandlers(ctx: SapWriteContext): Promise<ToolResult>;
7
+ export declare function writeActionGenerateBehaviorImplementation(ctx: SapWriteContext): Promise<ToolResult>;
8
+ //# sourceMappingURL=rap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rap.d.ts","sourceRoot":"","sources":["../../../src/handlers/write/rap.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,OAAO,EAAe,KAAK,UAAU,EAAc,MAAM,cAAc,CAAC;AAExE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,wBAAsB,8BAA8B,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CA8O9F;AAED,wBAAsB,yCAAyC,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAwCzG"}
@@ -0,0 +1,235 @@
1
+ /**
2
+ * SAPWrite actions — RAP behavior scaffolding.
3
+ */
4
+ import { lockObject, unlockObject, updateSource } from '../../adt/crud.js';
5
+ import { generateBehaviorImplementation, isRapGenerateResultSuccess } from '../../adt/rap-generate.js';
6
+ import { applyRapHandlerScaffold, extractRapHandlerRequirements, findMissingRapHandlerImplementationStubs, findMissingRapHandlerRequirements, } from '../../adt/rap-handlers.js';
7
+ import { cachedFeatures } from '../feature-cache.js';
8
+ import { classIncludeUrl } from '../object-types.js';
9
+ import { errorResult, textResult } from '../shared.js';
10
+ import { mergePreWriteWarnings, runPreWriteLint } from '../write-helpers.js';
11
+ export async function writeActionScaffoldRapHandlers(ctx) {
12
+ const { client, args, config, cachingLayer, type, name, transport, lintOverride, objectUrl, srcUrl, invalidateWrittenObject, enforcePackageForExistingObject, } = ctx;
13
+ // What this action does:
14
+ // Given a behavior-pool class (ZBP_*) and its interface BDEF, inspect
15
+ // the class for every `lhc_<alias>` local handler class and make
16
+ // sure it declares a METHOD for every action / determination /
17
+ // validation / authorization master the BDEF requires. When autoApply
18
+ // is true, missing METHODS signatures plus empty METHOD stubs are
19
+ // inserted directly and the class is saved.
20
+ //
21
+ // Why this exists:
22
+ // Without it, the LLM agent trying to author a RAP behavior pool has
23
+ // to manually read the BDEF, compute the required handler signatures,
24
+ // paste them into the correct local class, and then save — a
25
+ // boilerplate-heavy step that is easy to get wrong (alias case,
26
+ // RESULT vs no RESULT, factory/static modifiers). The activation
27
+ // errors for an incomplete pool are particularly unhelpful. See
28
+ // docs/plans/completed/rap-onprem-agent-gap-closure.md.
29
+ if (type !== 'CLAS') {
30
+ return errorResult('scaffold_rap_handlers is only supported for type=CLAS behavior pool classes.');
31
+ }
32
+ const bdefName = String(args.bdefName ?? '').trim();
33
+ if (!bdefName) {
34
+ return errorResult('"bdefName" is required for scaffold_rap_handlers (interface behavior definition name).');
35
+ }
36
+ const autoApply = Boolean(args.autoApply ?? false);
37
+ const targetAlias = String(args.targetAlias ?? '')
38
+ .trim()
39
+ .toLowerCase();
40
+ if (autoApply) {
41
+ await enforcePackageForExistingObject();
42
+ }
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(JSON.stringify({ ...summary, applied: false }, null, 2));
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(JSON.stringify({
110
+ ...summary,
111
+ applied: false,
112
+ hint: unresolvedHint,
113
+ applyResult: {
114
+ skeletons: scaffoldPlan.skeletons,
115
+ main: scaffoldPlan.signatures.main,
116
+ definitions: scaffoldPlan.signatures.definitions,
117
+ implementations: scaffoldPlan.signatures.implementations,
118
+ implementationStubs: scaffoldPlan.implementationStubs,
119
+ unresolved: scaffoldPlan.unresolved,
120
+ },
121
+ }, null, 2));
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', cachedFeatures?.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 = JSON.stringify({
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
+ }, null, 2);
194
+ return warnings ? textResult(`${msg}\n\n${warnings}\n\n${details}`) : textResult(`${msg}\n\n${details}`);
195
+ }
196
+ export async function writeActionGenerateBehaviorImplementation(ctx) {
197
+ const { client, args, type, name, transport, invalidateWrittenObject, enforcePackageForExistingObject } = ctx;
198
+ // PR-C: high-level RAP one-shot — auto-discover BDEF via class metadata's
199
+ // rootEntityRef, scaffold every required handler (creating lhc_<alias>
200
+ // skeletons when missing), write under one lock, and (by default) activate.
201
+ // Reliable equivalent of Eclipse ADT's "Generate Behavior Implementation"
202
+ // Cmd+1 quickfix; avoids the broken /sap/bc/adt/quickfixes/proposals/
203
+ // create_class_implementation server endpoint (HTTP 500 on a4h, verified
204
+ // live during PR-C research). See docs/plans/add-generate-behavior-implementation.md.
205
+ if (type !== 'CLAS') {
206
+ return errorResult('generate_behavior_implementation is only supported for type=CLAS behavior pool classes.');
207
+ }
208
+ if (!name) {
209
+ return errorResult('"name" is required for generate_behavior_implementation.');
210
+ }
211
+ const dryRun = args.dryRun === true || String(args.dryRun ?? '') === 'true';
212
+ const activate = args.activate === undefined ? true : args.activate === true || String(args.activate) === 'true';
213
+ const explicitBdef = args.bdefName?.trim() || undefined;
214
+ const targetAlias = args.targetAlias?.trim() || undefined;
215
+ // Package gate only when we'll actually mutate. dryRun=true is read-only;
216
+ // bypassing the gate matches the scaffold_rap_handlers preview pattern.
217
+ if (!dryRun) {
218
+ await enforcePackageForExistingObject();
219
+ }
220
+ const result = await generateBehaviorImplementation(client, name, {
221
+ bdefName: explicitBdef,
222
+ targetAlias,
223
+ activate,
224
+ dryRun,
225
+ transport,
226
+ });
227
+ invalidateWrittenObject();
228
+ // MCP result-code mapping via the exported helper — see
229
+ // `isRapGenerateResultSuccess` for the success/error contract (Codex review on PR #260, P1).
230
+ // The structured JSON is preserved in both branches so the caller can still see what
231
+ // was discovered, written, and what activation reported.
232
+ const json = JSON.stringify(result, null, 2);
233
+ return isRapGenerateResultSuccess(result) ? textResult(json) : errorResult(json);
234
+ }
235
+ //# sourceMappingURL=rap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rap.js","sourceRoot":"","sources":["../../../src/handlers/write/rap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * SAPWrite actions — update + delete.
3
+ */
4
+ import { type ToolResult } from '../shared.js';
5
+ import type { SapWriteContext } from './context.js';
6
+ export declare function writeActionUpdate(ctx: SapWriteContext): Promise<ToolResult>;
7
+ export declare function writeActionDelete(ctx: SapWriteContext): Promise<ToolResult>;
8
+ //# sourceMappingURL=update-delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-delete.d.ts","sourceRoot":"","sources":["../../../src/handlers/write/update-delete.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqBH,OAAO,EAAe,KAAK,UAAU,EAAc,MAAM,cAAc,CAAC;AAcxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAcpD,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAiMjF;AAED,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAsCjF"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * SAPWrite actions — update + delete.
3
+ */
4
+ import { deleteObject, lockObject, safeUpdateClassInclude, safeUpdateObject, safeUpdateSource, unlockObject, } from '../../adt/crud.js';
5
+ import { rewriteKtdText } from '../../adt/ddic-xml.js';
6
+ import { AdtApiError } from '../../adt/errors.js';
7
+ import { spliceFmSignature } from '../../adt/fm-signature.js';
8
+ import { buildCdsDeleteDependencyHint, buildCdsUpdateCrudHint, CDS_DEPENDENCY_SENSITIVE_TYPES, guardCdsSyntax, } from '../cds-hints.js';
9
+ import { cachedFeatures } from '../feature-cache.js';
10
+ import { CLASS_WRITE_INCLUDES, canonicalTablType, classIncludeUrl } from '../object-types.js';
11
+ import { errorResult, textResult } from '../shared.js';
12
+ import { buildCreateXml, getMetadataWriteProperties, isMetadataWriteType, mergeMetadataWriteProperties, mergePreWriteWarnings, runPreWriteLint, runPreWriteSyntaxCheck, runRapPreflightValidation, SKTD_V2_CONTENT_TYPE, stripFmParamCommentBlock, vendorContentTypeForType, } from '../write-helpers.js';
13
+ function isDeleteDependencyError(err) {
14
+ const clean = AdtApiError.extractCleanMessage(err.responseBody ?? err.message).toLowerCase();
15
+ const body = (err.responseBody ?? '').toLowerCase();
16
+ const diagnostics = err.responseBody ? AdtApiError.extractDdicDiagnostics(err.responseBody) : [];
17
+ if (diagnostics.some((diag) => diag.messageNumber === '039'))
18
+ return true;
19
+ return /could not be deleted|cannot be deleted|still in use|used by|dependent object|existing reference/.test(`${clean}\n${body}`);
20
+ }
21
+ export async function writeActionUpdate(ctx) {
22
+ const { client, args, config, type, name, source, hasSource, include, transport, lintOverride, preflightOverride, checkOverride, objectUrl, srcUrl, invalidateWrittenObject, enforcePackageForExistingObject, } = ctx;
23
+ const existingPackage = await enforcePackageForExistingObject();
24
+ // Keep CLAS local include writes ahead of the generic /source/main fallthrough.
25
+ // If CLAS ever gains separate metadata-update handling, this branch must still
26
+ // win whenever callers pass include=definitions|implementations|macros|testclasses.
27
+ if (args.include !== undefined) {
28
+ if (!include) {
29
+ return errorResult(`Invalid CLAS include "${String(args.include)}". Valid values: ${CLASS_WRITE_INCLUDES.join(', ')}.`);
30
+ }
31
+ if (type !== 'CLAS') {
32
+ return errorResult('SAPWrite include is only supported for action="update" with type="CLAS".');
33
+ }
34
+ if (!hasSource) {
35
+ return errorResult('"source" is required when updating a CLAS include.');
36
+ }
37
+ // Auto-initialise the include if it doesn't exist yet. On a fresh class
38
+ // the testclasses (CCAU) include is absent — a content PUT alone fails
39
+ // with HTTP 500 "…CCAU does not have any inactive version". safeUpdateClassInclude
40
+ // probes the include and POST-creates it (under the same lock) before the PUT.
41
+ const { initialized } = await safeUpdateClassInclude(client.http, client.safety, objectUrl, classIncludeUrl(name, include), source, transport, cachedFeatures?.abapRelease);
42
+ invalidateWrittenObject(type, name);
43
+ const initNote = initialized ? ` (initialised the ${include} include first)` : '';
44
+ return textResult(`Successfully updated ${type} ${name} include ${include}${initNote}. Active version remains unchanged until activation; read with SAPRead(version="inactive") to verify the draft.`);
45
+ }
46
+ if (type === 'SKTD') {
47
+ // KTD update requires the full <sktd:docu> XML envelope with the Markdown
48
+ // body base64-encoded inside <sktd:text>, PUT with
49
+ // `application/vnd.sap.adt.sktdv2+xml`. PUTting raw text/plain silently
50
+ // no-ops (or 415s on strict systems). Fetch the current envelope,
51
+ // replace only the <sktd:text> body, and PUT it back — preserves
52
+ // responsible/masterLanguage/packageRef/refObject metadata.
53
+ const { source: currentEnvelope } = await client.getKtd(name);
54
+ const body = rewriteKtdText(currentEnvelope, source);
55
+ await safeUpdateObject(client.http, client.safety, objectUrl, body, SKTD_V2_CONTENT_TYPE, transport, cachedFeatures?.abapRelease);
56
+ invalidateWrittenObject(type, name);
57
+ return textResult(`Successfully updated ${type} ${name}.`);
58
+ }
59
+ if (isMetadataWriteType(type)) {
60
+ // Metadata updates are full-XML-replace — we must fetch existing metadata
61
+ // and merge with provided fields so omitted fields keep their current values.
62
+ // Without this, updating just labels would reset dataType/typeKind to defaults.
63
+ const metadataProps = getMetadataWriteProperties(args);
64
+ const mergedProps = await mergeMetadataWriteProperties(client, type, name, metadataProps);
65
+ const description = String(args.description ?? mergedProps._description ?? name);
66
+ const pkg = String(args.package ?? existingPackage ?? mergedProps._package ?? '$TMP');
67
+ const body = buildCreateXml(type, name, pkg, description, mergedProps, config.language, config.username);
68
+ await safeUpdateObject(client.http, client.safety, objectUrl, body, vendorContentTypeForType(type), transport, cachedFeatures?.abapRelease);
69
+ invalidateWrittenObject(type, name);
70
+ return textResult(`Successfully updated ${type} ${name}.`);
71
+ }
72
+ // RAP deterministic preflight validation
73
+ const preflightWarnings = runRapPreflightValidation(source, type, name, cachedFeatures, config.systemType, preflightOverride);
74
+ if (preflightWarnings.blocked)
75
+ return preflightWarnings.result;
76
+ // CDS pre-write validation: reject unsupported syntax early
77
+ const cdsGuardUpdate = guardCdsSyntax(type, source, cachedFeatures);
78
+ if (cdsGuardUpdate)
79
+ return cdsGuardUpdate;
80
+ // FUNC-source sanitization: strip SAPGUI-style parameter comment blocks.
81
+ // SAP rejects PUT-to-source/main with these blocks (HTTP 400 / FUNC_ADT028
82
+ // "Parameter comment blocks are not allowed" — verified live a4h S/4HANA 2023,
83
+ // issue #250). LLMs frequently emit them out of muscle memory because every
84
+ // released FM has one. Strip and warn rather than fail.
85
+ //
86
+ // Issue #252: when `parameters` is supplied as a structured array, splice
87
+ // it into the FM source as ABAP-source-based signature syntax. If `source`
88
+ // is omitted entirely, fetch the existing source first to preserve the
89
+ // body. The structured clause replaces any existing signature region.
90
+ let effectiveSource = source;
91
+ let fmParamStripWarning;
92
+ let fmParamMergeWarning;
93
+ if (type === 'FUNC') {
94
+ const parameters = args.parameters;
95
+ if (parameters !== undefined) {
96
+ // If caller passed parameters but no source, fetch the current source so
97
+ // the body is preserved (the parameters array re-emits only the signature).
98
+ let baseSource = source;
99
+ if (!baseSource || baseSource.trim() === '') {
100
+ const groupName = String(args.group ?? '');
101
+ const fetched = await client.getFunction(groupName, name).catch(() => null);
102
+ baseSource = fetched?.source ?? `FUNCTION ${name}.\nENDFUNCTION.\n`;
103
+ }
104
+ else if (!/^\s*FUNCTION\s+/i.test(baseSource)) {
105
+ // Body-only source: wrap in FUNCTION/ENDFUNCTION so the splicer has
106
+ // something to work with. Common shape from LLMs: just the body.
107
+ baseSource = `FUNCTION ${name}.\n${baseSource}\nENDFUNCTION.\n`;
108
+ }
109
+ try {
110
+ effectiveSource = spliceFmSignature(baseSource, name, parameters);
111
+ }
112
+ catch {
113
+ // No FUNCTION token in the supplied source — fall back to user's source.
114
+ effectiveSource = baseSource;
115
+ fmParamMergeWarning =
116
+ 'Could not splice structured parameters: source did not start with FUNCTION keyword. Used the supplied source verbatim.';
117
+ }
118
+ }
119
+ // Defense-in-depth: strip *" comment blocks even after splicing — the
120
+ // user's body may contain them (e.g. pasted from SAPGUI).
121
+ const stripped = stripFmParamCommentBlock(effectiveSource);
122
+ effectiveSource = stripped.source;
123
+ if (stripped.wasStripped) {
124
+ fmParamStripWarning =
125
+ 'Stripped *"…IMPORTING/EXPORTING…*" parameter comment blocks (SAP rejects them on PUT — pass `parameters` as a structured array instead).';
126
+ }
127
+ }
128
+ // Pre-write lint validation (uses sanitized source for FUNC)
129
+ const lintWarnings = runPreWriteLint(effectiveSource, type, name, config, lintOverride);
130
+ if (lintWarnings.blocked)
131
+ return lintWarnings.result;
132
+ // Pre-write server-side syntax check (opt-in; never blocks — warnings only).
133
+ const checkNotes = await runPreWriteSyntaxCheck(client, type, effectiveSource, objectUrl, config, checkOverride);
134
+ // If safeUpdateSource throws (lock conflict, network error, etc.), checkNotes
135
+ // is intentionally discarded — pre-check warnings only matter when the write succeeded.
136
+ await safeUpdateSource(client.http, client.safety, objectUrl, srcUrl, effectiveSource, transport, cachedFeatures?.abapRelease);
137
+ invalidateWrittenObject(type, name);
138
+ const msg = `Successfully updated ${type} ${name}.`;
139
+ const cdsUpdateHint = type === 'DDLS' ? await buildCdsUpdateCrudHint(client, name, objectUrl) : undefined;
140
+ const warnings = mergePreWriteWarnings(preflightWarnings.warnings, lintWarnings.warnings, checkNotes, cdsUpdateHint, fmParamStripWarning, fmParamMergeWarning);
141
+ return warnings ? textResult(`${msg}\n\n${warnings}`) : textResult(msg);
142
+ }
143
+ export async function writeActionDelete(ctx) {
144
+ const { client, type, name, transport, objectUrl, invalidateWrittenObject, enforcePackageForExistingObject } = ctx;
145
+ await enforcePackageForExistingObject();
146
+ // Lock, delete, unlock pattern (works for all types including SKTD) — auto-propagate lock corrNr if no explicit transport
147
+ try {
148
+ await client.http.withStatefulSession(async (session) => {
149
+ const lock = await lockObject(session, client.safety, objectUrl, 'MODIFY', cachedFeatures?.abapRelease);
150
+ const effectiveTransport = transport ?? (lock.corrNr || undefined);
151
+ try {
152
+ await deleteObject(session, client.safety, objectUrl, lock.lockHandle, effectiveTransport);
153
+ }
154
+ finally {
155
+ try {
156
+ await unlockObject(session, objectUrl, lock.lockHandle);
157
+ }
158
+ catch {
159
+ // Object may already be deleted — unlock failure is expected
160
+ }
161
+ }
162
+ });
163
+ }
164
+ catch (err) {
165
+ if (err instanceof AdtApiError &&
166
+ CDS_DEPENDENCY_SENSITIVE_TYPES.has(canonicalTablType(type)) &&
167
+ isDeleteDependencyError(err)) {
168
+ const hint = await buildCdsDeleteDependencyHint(client, type, name, objectUrl);
169
+ if (hint) {
170
+ // Attach via extraHint so the LLM-facing formatter renders it after
171
+ // DDIC diagnostics ("what happened → diagnostics → how to fix").
172
+ // Mutating err.message would surface the hint before diagnostics and
173
+ // leak into any other consumer of the same error instance.
174
+ err.extraHint = hint;
175
+ }
176
+ }
177
+ throw err;
178
+ }
179
+ invalidateWrittenObject();
180
+ return textResult(`Deleted ${type} ${name}.`);
181
+ }
182
+ //# sourceMappingURL=update-delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-delete.js","sourceRoot":"","sources":["../../../src/handlers/write/update-delete.ts"],"names":[],"mappings":"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"}