arc-1 0.9.13 → 0.9.15

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 (204) 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 +9 -0
  9. package/dist/adt/ddic-xml.d.ts.map +1 -1
  10. package/dist/adt/ddic-xml.js +49 -53
  11. package/dist/adt/ddic-xml.js.map +1 -1
  12. package/dist/adt/devtools.d.ts.map +1 -1
  13. package/dist/adt/devtools.js +46 -15
  14. package/dist/adt/devtools.js.map +1 -1
  15. package/dist/adt/fm-signature.d.ts +1 -1
  16. package/dist/adt/fm-signature.js +1 -1
  17. package/dist/adt/rap-generate.js +1 -1
  18. package/dist/adt/rap-generate.js.map +1 -1
  19. package/dist/adt/rap-handlers.d.ts +1 -1
  20. package/dist/adt/rap-handlers.js +1 -1
  21. package/dist/adt/refactoring.d.ts.map +1 -1
  22. package/dist/adt/refactoring.js +11 -14
  23. package/dist/adt/refactoring.js.map +1 -1
  24. package/dist/adt/server-driven.d.ts +46 -2
  25. package/dist/adt/server-driven.d.ts.map +1 -1
  26. package/dist/adt/server-driven.js +13 -3
  27. package/dist/adt/server-driven.js.map +1 -1
  28. package/dist/adt/xml-parser.d.ts +8 -1
  29. package/dist/adt/xml-parser.d.ts.map +1 -1
  30. package/dist/adt/xml-parser.js +57 -49
  31. package/dist/adt/xml-parser.js.map +1 -1
  32. package/dist/authz/policy.d.ts +1 -1
  33. package/dist/authz/policy.js +1 -1
  34. package/dist/cache/cache.d.ts +1 -0
  35. package/dist/cache/cache.d.ts.map +1 -1
  36. package/dist/cache/cache.js.map +1 -1
  37. package/dist/cache/inactive-list-cache.d.ts +4 -4
  38. package/dist/cache/inactive-list-cache.d.ts.map +1 -1
  39. package/dist/cache/inactive-list-cache.js +19 -12
  40. package/dist/cache/inactive-list-cache.js.map +1 -1
  41. package/dist/cache/memory.d.ts +1 -0
  42. package/dist/cache/memory.d.ts.map +1 -1
  43. package/dist/cache/memory.js +3 -0
  44. package/dist/cache/memory.js.map +1 -1
  45. package/dist/cache/sqlite.d.ts +1 -0
  46. package/dist/cache/sqlite.d.ts.map +1 -1
  47. package/dist/cache/sqlite.js +3 -0
  48. package/dist/cache/sqlite.js.map +1 -1
  49. package/dist/cache/warmup.d.ts.map +1 -1
  50. package/dist/cache/warmup.js +85 -38
  51. package/dist/cache/warmup.js.map +1 -1
  52. package/dist/cli.d.ts +1 -1
  53. package/dist/cli.js +2 -2
  54. package/dist/cli.js.map +1 -1
  55. package/dist/context/compressor.d.ts.map +1 -1
  56. package/dist/context/compressor.js +22 -13
  57. package/dist/context/compressor.js.map +1 -1
  58. package/dist/context/contract.d.ts.map +1 -1
  59. package/dist/context/contract.js +4 -3
  60. package/dist/context/contract.js.map +1 -1
  61. package/dist/context/deps.d.ts.map +1 -1
  62. package/dist/context/deps.js +3 -2
  63. package/dist/context/deps.js.map +1 -1
  64. package/dist/context/grep.d.ts +3 -1
  65. package/dist/context/grep.d.ts.map +1 -1
  66. package/dist/context/grep.js +83 -1
  67. package/dist/context/grep.js.map +1 -1
  68. package/dist/context/method-surgery.d.ts.map +1 -1
  69. package/dist/context/method-surgery.js +3 -2
  70. package/dist/context/method-surgery.js.map +1 -1
  71. package/dist/handlers/activate.d.ts +25 -0
  72. package/dist/handlers/activate.d.ts.map +1 -0
  73. package/dist/handlers/activate.js +334 -0
  74. package/dist/handlers/activate.js.map +1 -0
  75. package/dist/handlers/cache-security.d.ts +22 -0
  76. package/dist/handlers/cache-security.d.ts.map +1 -0
  77. package/dist/handlers/cache-security.js +51 -0
  78. package/dist/handlers/cache-security.js.map +1 -0
  79. package/dist/handlers/cds-hints.d.ts +26 -0
  80. package/dist/handlers/cds-hints.d.ts.map +1 -0
  81. package/dist/handlers/cds-hints.js +380 -0
  82. package/dist/handlers/cds-hints.js.map +1 -0
  83. package/dist/handlers/context.d.ts +10 -0
  84. package/dist/handlers/context.d.ts.map +1 -0
  85. package/dist/handlers/context.js +344 -0
  86. package/dist/handlers/context.js.map +1 -0
  87. package/dist/handlers/diagnose.d.ts +8 -0
  88. package/dist/handlers/diagnose.d.ts.map +1 -0
  89. package/dist/handlers/diagnose.js +274 -0
  90. package/dist/handlers/diagnose.js.map +1 -0
  91. package/dist/handlers/dispatch.d.ts +39 -0
  92. package/dist/handlers/dispatch.d.ts.map +1 -0
  93. package/dist/handlers/dispatch.js +640 -0
  94. package/dist/handlers/dispatch.js.map +1 -0
  95. package/dist/handlers/feature-cache.d.ts +26 -0
  96. package/dist/handlers/feature-cache.d.ts.map +1 -0
  97. package/dist/handlers/feature-cache.js +45 -0
  98. package/dist/handlers/feature-cache.js.map +1 -0
  99. package/dist/handlers/git.d.ts +9 -0
  100. package/dist/handlers/git.d.ts.map +1 -0
  101. package/dist/handlers/git.js +227 -0
  102. package/dist/handlers/git.js.map +1 -0
  103. package/dist/handlers/lint.d.ts +9 -0
  104. package/dist/handlers/lint.d.ts.map +1 -0
  105. package/dist/handlers/lint.js +82 -0
  106. package/dist/handlers/lint.js.map +1 -0
  107. package/dist/handlers/manage.d.ts +10 -0
  108. package/dist/handlers/manage.d.ts.map +1 -0
  109. package/dist/handlers/manage.js +375 -0
  110. package/dist/handlers/manage.js.map +1 -0
  111. package/dist/handlers/navigate.d.ts +8 -0
  112. package/dist/handlers/navigate.d.ts.map +1 -0
  113. package/dist/handlers/navigate.js +188 -0
  114. package/dist/handlers/navigate.js.map +1 -0
  115. package/dist/handlers/object-types.d.ts +103 -0
  116. package/dist/handlers/object-types.d.ts.map +1 -0
  117. package/dist/handlers/object-types.js +476 -0
  118. package/dist/handlers/object-types.js.map +1 -0
  119. package/dist/handlers/query.d.ts +7 -0
  120. package/dist/handlers/query.d.ts.map +1 -0
  121. package/dist/handlers/query.js +190 -0
  122. package/dist/handlers/query.js.map +1 -0
  123. package/dist/handlers/read.d.ts +18 -0
  124. package/dist/handlers/read.d.ts.map +1 -0
  125. package/dist/handlers/read.js +581 -0
  126. package/dist/handlers/read.js.map +1 -0
  127. package/dist/handlers/schemas.d.ts +28 -26
  128. package/dist/handlers/schemas.d.ts.map +1 -1
  129. package/dist/handlers/schemas.js +17 -153
  130. package/dist/handlers/schemas.js.map +1 -1
  131. package/dist/handlers/search.d.ts +24 -0
  132. package/dist/handlers/search.d.ts.map +1 -0
  133. package/dist/handlers/search.js +208 -0
  134. package/dist/handlers/search.js.map +1 -0
  135. package/dist/handlers/shared.d.ts +19 -0
  136. package/dist/handlers/shared.d.ts.map +1 -0
  137. package/dist/handlers/shared.js +23 -0
  138. package/dist/handlers/shared.js.map +1 -0
  139. package/dist/handlers/tool-registry.d.ts +44 -0
  140. package/dist/handlers/tool-registry.d.ts.map +1 -0
  141. package/dist/handlers/tool-registry.js +152 -0
  142. package/dist/handlers/tool-registry.js.map +1 -0
  143. package/dist/handlers/tools.d.ts +9 -0
  144. package/dist/handlers/tools.d.ts.map +1 -1
  145. package/dist/handlers/tools.js +40 -141
  146. package/dist/handlers/tools.js.map +1 -1
  147. package/dist/handlers/transport.d.ts +8 -0
  148. package/dist/handlers/transport.d.ts.map +1 -0
  149. package/dist/handlers/transport.js +281 -0
  150. package/dist/handlers/transport.js.map +1 -0
  151. package/dist/handlers/write/class-surgery.d.ts +18 -0
  152. package/dist/handlers/write/class-surgery.d.ts.map +1 -0
  153. package/dist/handlers/write/class-surgery.js +366 -0
  154. package/dist/handlers/write/class-surgery.js.map +1 -0
  155. package/dist/handlers/write/context.d.ts +43 -0
  156. package/dist/handlers/write/context.d.ts.map +1 -0
  157. package/dist/handlers/write/context.js +5 -0
  158. package/dist/handlers/write/context.js.map +1 -0
  159. package/dist/handlers/write/create.d.ts +8 -0
  160. package/dist/handlers/write/create.d.ts.map +1 -0
  161. package/dist/handlers/write/create.js +603 -0
  162. package/dist/handlers/write/create.js.map +1 -0
  163. package/dist/handlers/write/rap.d.ts +8 -0
  164. package/dist/handlers/write/rap.d.ts.map +1 -0
  165. package/dist/handlers/write/rap.js +235 -0
  166. package/dist/handlers/write/rap.js.map +1 -0
  167. package/dist/handlers/write/update-delete.d.ts +8 -0
  168. package/dist/handlers/write/update-delete.d.ts.map +1 -0
  169. package/dist/handlers/write/update-delete.js +182 -0
  170. package/dist/handlers/write/update-delete.js.map +1 -0
  171. package/dist/handlers/write-helpers.d.ts +155 -0
  172. package/dist/handlers/write-helpers.d.ts.map +1 -0
  173. package/dist/handlers/write-helpers.js +859 -0
  174. package/dist/handlers/write-helpers.js.map +1 -0
  175. package/dist/handlers/write.d.ts +16 -0
  176. package/dist/handlers/write.d.ts.map +1 -0
  177. package/dist/handlers/write.js +210 -0
  178. package/dist/handlers/write.js.map +1 -0
  179. package/dist/handlers/zod-errors.d.ts +1 -1
  180. package/dist/handlers/zod-errors.js +1 -1
  181. package/dist/lint/abaplint-config-cache.d.ts +5 -0
  182. package/dist/lint/abaplint-config-cache.d.ts.map +1 -0
  183. package/dist/lint/abaplint-config-cache.js +29 -0
  184. package/dist/lint/abaplint-config-cache.js.map +1 -0
  185. package/dist/lint/config-builder.d.ts.map +1 -1
  186. package/dist/lint/config-builder.js +3 -4
  187. package/dist/lint/config-builder.js.map +1 -1
  188. package/dist/lint/lint.d.ts +1 -1
  189. package/dist/lint/lint.d.ts.map +1 -1
  190. package/dist/lint/lint.js +3 -2
  191. package/dist/lint/lint.js.map +1 -1
  192. package/dist/server/config.d.ts.map +1 -1
  193. package/dist/server/config.js +22 -8
  194. package/dist/server/config.js.map +1 -1
  195. package/dist/server/mcp-rate-limit.d.ts +1 -1
  196. package/dist/server/mcp-rate-limit.js +1 -1
  197. package/dist/server/server.d.ts +1 -1
  198. package/dist/server/server.js +3 -2
  199. package/dist/server/server.js.map +1 -1
  200. package/package.json +15 -10
  201. package/dist/handlers/intent.d.ts +0 -144
  202. package/dist/handlers/intent.d.ts.map +0 -1
  203. package/dist/handlers/intent.js +0 -6782
  204. package/dist/handlers/intent.js.map +0 -1
@@ -0,0 +1,155 @@
1
+ /**
2
+ * Write + pre-write-validation helpers.
3
+ *
4
+ * Content-type negotiation, DDIC metadata write properties, buildCreateXml, the pre-write
5
+ * lint/syntax/RAP-preflight gates, package enforcement, and the server-driven-object write engine.
6
+ * Shared by the SAPWrite and SAPLint handlers.
7
+ */
8
+ import type { AdtClient } from '../adt/client.js';
9
+ import type { ResolvedFeatures } from '../adt/types.js';
10
+ import type { CachingLayer } from '../cache/caching-layer.js';
11
+ import type { LintConfigOptions, RuleOverrides } from '../lint/config-builder.js';
12
+ import type { ServerConfig } from '../server/types.js';
13
+ import { type CacheSecurityContext } from './cache-security.js';
14
+ import { type ToolResult } from './shared.js';
15
+ /**
16
+ * Build LintConfigOptions from server config and cached features.
17
+ *
18
+ * Uses cachedFeatures (from SAPManage probe) when available, but falls back
19
+ * to config.systemType so that --system-type btp works even before the first
20
+ * probe. Without this fallback, cloud lint rules wouldn't apply until a probe
21
+ * populates cachedFeatures.
22
+ */
23
+ export declare function buildLintConfigOptions(config: ServerConfig, ruleOverrides?: RuleOverrides): LintConfigOptions;
24
+ export declare const DOMAIN_V2_CONTENT_TYPE = "application/vnd.sap.adt.domains.v2+xml; charset=utf-8";
25
+ export declare const DATAELEMENT_V2_CONTENT_TYPE = "application/vnd.sap.adt.dataelements.v2+xml; charset=utf-8";
26
+ export declare const SERVICEBINDING_V2_CONTENT_TYPE = "application/vnd.sap.adt.businessservices.servicebinding.v2+xml; charset=utf-8";
27
+ export declare const SERVICEBINDING_V2_ACCEPT = "application/vnd.sap.adt.businessservices.servicebinding.v2+xml";
28
+ export declare const SKTD_V2_CONTENT_TYPE = "application/vnd.sap.adt.sktdv2+xml";
29
+ export declare function isMetadataWriteType(type: string): boolean;
30
+ /** Content type used for create POST */
31
+ export declare function createContentTypeForType(type: string): string;
32
+ /**
33
+ * Check if a DTEL create has properties that SAP ignores on POST but accepts on PUT.
34
+ * SAP's DTEL POST only stores the shell (name, description, package, typeKind, typeName, dataType, length).
35
+ * Labels, searchHelp, setGetParameter, etc. require a follow-up PUT to take effect.
36
+ */
37
+ export declare function dtelNeedsPostCreateUpdate(props: Record<string, unknown>): boolean;
38
+ export declare function vendorContentTypeForType(type: string): string;
39
+ export declare function getMetadataWriteProperties(input: Record<string, unknown>): Record<string, unknown>;
40
+ export declare function mergeMetadataWriteProperties(client: AdtClient, type: string, name: string, provided: Record<string, unknown>): Promise<Record<string, unknown>>;
41
+ /**
42
+ * Build the type-specific XML body for ADT object creation.
43
+ *
44
+ * SAP ADT requires each object type to have its own root XML element.
45
+ * Using a generic body (e.g. adtcore:objectReferences) returns 400:
46
+ * "System expected the element '{http://www.sap.com/adt/programs/programs}abapProgram'"
47
+ */
48
+ export declare function buildCreateXml(type: string, name: string, pkg: string, description: string, properties?: Record<string, unknown>, language?: string, responsible?: string): string;
49
+ /**
50
+ * Strip SAPGUI-style function-module parameter comment blocks from an FM source body.
51
+ *
52
+ * SAP rejects PUT-to-source/main with parameter comment blocks (verified live on a4h
53
+ * S/4HANA 2023 — issue #250):
54
+ * HTTP 400 / com.sap.adt.sedi / ExceptionResourceScanDuringSaveFailure
55
+ * "Parameter comment blocks are not allowed" (T100KEY FUNC_ADT028)
56
+ *
57
+ * The signature is metadata, not source. LLMs frequently emit the SAPGUI block out
58
+ * of muscle memory (every released FM ships with one). This helper strips lines whose
59
+ * first non-whitespace tokens are `*"` so the PUT succeeds, and reports back whether
60
+ * stripping occurred so the caller can append a warning to the response.
61
+ *
62
+ * Only `*"…` lines are stripped — single `*` ABAP comments and inline `"` comments
63
+ * are preserved. Exported for unit tests.
64
+ */
65
+ export declare function stripFmParamCommentBlock(source: string): {
66
+ source: string;
67
+ wasStripped: boolean;
68
+ };
69
+ /**
70
+ * Single-object actions whose top-level `name` is an SAP object name and must be
71
+ * uppercase (TADIR convention). `batch_create` is excluded — its names live in
72
+ * the `objects[]` items and are validated per item in the batch_create branch.
73
+ */
74
+ export declare const NAME_CASE_GUARD_ACTIONS: Set<string>;
75
+ /**
76
+ * Enforce the `allowedPackages` ceiling for an EXISTING object addressed by its
77
+ * ADT object URL. Resolves the object's REAL package from ADT metadata and gates
78
+ * it via `checkPackage`. Fail-closed: if the package can't be determined, refuse
79
+ * the operation rather than passing the gate. No-op (and no HTTP round-trip) when
80
+ * no package restrictions are configured.
81
+ *
82
+ * Shared by every mutating operation that targets an existing object —
83
+ * update/delete/surgery (via `enforcePackageForExistingObject`), activation, and
84
+ * change_package — so they all honor the same package boundary against the
85
+ * object's true package, never a caller-supplied package string.
86
+ */
87
+ export declare function enforceAllowedPackageForObjectUrl(client: AdtClient, objectUrl: string, label: string, accept?: string): Promise<string | undefined>;
88
+ /**
89
+ * SAPWrite for server-driven objects (8.16+): create / update-source / delete via the generic AFF
90
+ * blue:blueSource + JSON-source engine. Discovery-gated (clean 8.16 error otherwise), allowWrites-gated
91
+ * (through the engine's checkOperation), and allowedPackages-gated against the REAL package
92
+ * (create gates the caller-supplied package like every create; update/delete resolve the object's true
93
+ * package under the blues Accept). The `source` param carries the AFF JSON — parse-validated before the
94
+ * PUT; ABAP-specific pre-write steps (lint, RAP preflight, CDS guard) do not apply. Create leaves the
95
+ * object inactive — callers follow with SAPActivate (never auto-activated).
96
+ */
97
+ export declare function handleServerDrivenObjectWrite(client: AdtClient, action: string, type: string, name: string, args: Record<string, unknown>, cachingLayer: CachingLayer | undefined, cacheSecurity: CacheSecurityContext): Promise<ToolResult>;
98
+ /** Pre-write lint check result */
99
+ export interface PreWriteLintResult {
100
+ /** Whether the write was blocked by lint errors */
101
+ blocked: boolean;
102
+ /** Error result to return if blocked */
103
+ result?: ToolResult;
104
+ /** Warning text to append to success message */
105
+ warnings?: string;
106
+ }
107
+ /** Pre-write RAP preflight check result */
108
+ interface PreWriteRapPreflightResult {
109
+ /** Whether the write was blocked by RAP preflight errors */
110
+ blocked: boolean;
111
+ /** Error result to return if blocked */
112
+ result?: ToolResult;
113
+ /** Warning text to append to success message */
114
+ warnings?: string;
115
+ }
116
+ /**
117
+ * Run deterministic RAP preflight checks for non-ABAP RAP artifact types.
118
+ *
119
+ * Unlike lint, this check is intentionally narrow and rule-based. It focuses on
120
+ * known activation churn patterns (TABL curr/quan semantics, BDEF enum/header
121
+ * misuse, DDLX scope/duplicate annotations) and can cover types that offline
122
+ * abaplint does not parse well.
123
+ */
124
+ export declare function runRapPreflightValidation(source: string, type: string, name: string, features: ResolvedFeatures | undefined, configSystemType: ServerConfig['systemType'], perCallOverride?: boolean): PreWriteRapPreflightResult;
125
+ export declare function mergePreWriteWarnings(...warnings: Array<string | undefined>): string | undefined;
126
+ /**
127
+ * Run pre-write lint validation on source code.
128
+ *
129
+ * This is a "lint-before-lock" optimization (pattern from vibing-steampunk):
130
+ * by validating locally before acquiring the SAP object lock, we avoid
131
+ * holding locks on objects that would fail validation anyway.
132
+ *
133
+ * Only runs a strict subset of correctness rules (parser_error, cloud_types, etc.)
134
+ * — not style/formatting rules. This prevents false rejections from opinionated
135
+ * style checks while catching genuine errors that would fail server-side anyway.
136
+ *
137
+ * If lint itself throws (e.g., abaplint bug on unusual syntax), we don't block
138
+ * the write — we let the SAP server-side syntax check handle it instead.
139
+ */
140
+ export declare function runPreWriteLint(source: string, type: string, name: string, config: ServerConfig, perCallOverride?: boolean): PreWriteLintResult;
141
+ /** Pre-write SAP server-side syntax check via /checkruns with inline <chkrun:content>.
142
+ * Sends the proposed source to SAP's compiler without writing. Surfaces errors AND
143
+ * warnings as informational text appended to the write's success message — never
144
+ * blocks the write. Rationale: multi-file edits have inter-object dependencies, so
145
+ * intermediate writes legitimately trip compile errors that resolve once the whole
146
+ * sequence lands. Real blocking is deferred to SAPActivate, which runs after all
147
+ * dependencies are in place. Best-effort: network/endpoint failures return ''. */
148
+ export declare function runPreWriteSyntaxCheck(client: AdtClient, type: string, source: string, objectUrl: string, config: ServerConfig, perCallOverride?: boolean): Promise<string>;
149
+ /** Run a syntax check on the inactive version and format the errors for appending to an
150
+ * error message. Returns '' on any failure or when no errors are reported. */
151
+ export declare function inactiveSyntaxDiagnostic(client: AdtClient, type: string, name: string): Promise<string>;
152
+ export declare function tryPostSaveSyntaxCheck(client: AdtClient, type: string, name: string): Promise<string>;
153
+ export declare const TABL_DT_WRITE_UNAVAILABLE_HINT: string;
154
+ export {};
155
+ //# sourceMappingURL=write-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-helpers.d.ts","sourceRoot":"","sources":["../../src/handlers/write-helpers.ts"],"names":[],"mappings":"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"}