arc-1 1.1.1 → 1.2.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 (147) hide show
  1. package/README.md +9 -1
  2. package/bin/start-cf.sh +32 -0
  3. package/dist/adt/atc.d.ts +24 -1
  4. package/dist/adt/atc.d.ts.map +1 -1
  5. package/dist/adt/atc.js +191 -54
  6. package/dist/adt/atc.js.map +1 -1
  7. package/dist/adt/bounded-response.d.ts +9 -0
  8. package/dist/adt/bounded-response.d.ts.map +1 -0
  9. package/dist/adt/bounded-response.js +216 -0
  10. package/dist/adt/bounded-response.js.map +1 -0
  11. package/dist/adt/client.d.ts +35 -18
  12. package/dist/adt/client.d.ts.map +1 -1
  13. package/dist/adt/client.js +100 -104
  14. package/dist/adt/client.js.map +1 -1
  15. package/dist/adt/config.d.ts +6 -0
  16. package/dist/adt/config.d.ts.map +1 -1
  17. package/dist/adt/config.js +3 -0
  18. package/dist/adt/config.js.map +1 -1
  19. package/dist/adt/data-result-context.d.ts +46 -0
  20. package/dist/adt/data-result-context.d.ts.map +1 -0
  21. package/dist/adt/data-result-context.js +118 -0
  22. package/dist/adt/data-result-context.js.map +1 -0
  23. package/dist/adt/data-source-name.d.ts +60 -0
  24. package/dist/adt/data-source-name.d.ts.map +1 -0
  25. package/dist/adt/data-source-name.js +156 -0
  26. package/dist/adt/data-source-name.js.map +1 -0
  27. package/dist/adt/data-source-policy.d.ts +148 -0
  28. package/dist/adt/data-source-policy.d.ts.map +1 -0
  29. package/dist/adt/data-source-policy.js +752 -0
  30. package/dist/adt/data-source-policy.js.map +1 -0
  31. package/dist/adt/devtools.d.ts +1 -1
  32. package/dist/adt/devtools.d.ts.map +1 -1
  33. package/dist/adt/devtools.js.map +1 -1
  34. package/dist/adt/errors.d.ts +10 -0
  35. package/dist/adt/errors.d.ts.map +1 -1
  36. package/dist/adt/errors.js +17 -0
  37. package/dist/adt/errors.js.map +1 -1
  38. package/dist/adt/http-deadline.d.ts +5 -0
  39. package/dist/adt/http-deadline.d.ts.map +1 -1
  40. package/dist/adt/http-deadline.js +7 -0
  41. package/dist/adt/http-deadline.js.map +1 -1
  42. package/dist/adt/http.d.ts.map +1 -1
  43. package/dist/adt/http.js +43 -46
  44. package/dist/adt/http.js.map +1 -1
  45. package/dist/adt/internal-data-operations.d.ts +51 -0
  46. package/dist/adt/internal-data-operations.d.ts.map +1 -0
  47. package/dist/adt/internal-data-operations.js +95 -0
  48. package/dist/adt/internal-data-operations.js.map +1 -0
  49. package/dist/adt/safety.d.ts +2 -0
  50. package/dist/adt/safety.d.ts.map +1 -1
  51. package/dist/adt/safety.js +6 -0
  52. package/dist/adt/safety.js.map +1 -1
  53. package/dist/adt/sql-source-analyzer.d.ts +12 -0
  54. package/dist/adt/sql-source-analyzer.d.ts.map +1 -0
  55. package/dist/adt/sql-source-analyzer.js +158 -0
  56. package/dist/adt/sql-source-analyzer.js.map +1 -0
  57. package/dist/adt/table-query.d.ts +41 -0
  58. package/dist/adt/table-query.d.ts.map +1 -0
  59. package/dist/adt/table-query.js +99 -0
  60. package/dist/adt/table-query.js.map +1 -0
  61. package/dist/adt/xml-parser.d.ts +10 -15
  62. package/dist/adt/xml-parser.d.ts.map +1 -1
  63. package/dist/adt/xml-parser.js +24 -11
  64. package/dist/adt/xml-parser.js.map +1 -1
  65. package/dist/cli-checks.d.ts.map +1 -1
  66. package/dist/cli-checks.js +25 -2
  67. package/dist/cli-checks.js.map +1 -1
  68. package/dist/cli.d.ts.map +1 -1
  69. package/dist/cli.js +2 -0
  70. package/dist/cli.js.map +1 -1
  71. package/dist/handlers/diagnose.d.ts.map +1 -1
  72. package/dist/handlers/diagnose.js +14 -1
  73. package/dist/handlers/diagnose.js.map +1 -1
  74. package/dist/handlers/dispatch.d.ts +3 -1
  75. package/dist/handlers/dispatch.d.ts.map +1 -1
  76. package/dist/handlers/dispatch.js +74 -6
  77. package/dist/handlers/dispatch.js.map +1 -1
  78. package/dist/handlers/navigate.d.ts.map +1 -1
  79. package/dist/handlers/navigate.js +23 -3
  80. package/dist/handlers/navigate.js.map +1 -1
  81. package/dist/handlers/object-types.d.ts +4 -4
  82. package/dist/handlers/object-types.js +4 -4
  83. package/dist/handlers/query.d.ts +1 -1
  84. package/dist/handlers/query.d.ts.map +1 -1
  85. package/dist/handlers/query.js +13 -20
  86. package/dist/handlers/query.js.map +1 -1
  87. package/dist/handlers/read.d.ts.map +1 -1
  88. package/dist/handlers/read.js +68 -12
  89. package/dist/handlers/read.js.map +1 -1
  90. package/dist/handlers/search.d.ts.map +1 -1
  91. package/dist/handlers/search.js +27 -5
  92. package/dist/handlers/search.js.map +1 -1
  93. package/dist/handlers/tools.d.ts.map +1 -1
  94. package/dist/handlers/tools.js +13 -13
  95. package/dist/handlers/tools.js.map +1 -1
  96. package/dist/handlers/where-used.d.ts +2 -0
  97. package/dist/handlers/where-used.d.ts.map +1 -1
  98. package/dist/handlers/where-used.js +23 -5
  99. package/dist/handlers/where-used.js.map +1 -1
  100. package/dist/public/index.d.ts +1 -1
  101. package/dist/public/index.d.ts.map +1 -1
  102. package/dist/public/index.js +1 -1
  103. package/dist/public/index.js.map +1 -1
  104. package/dist/server/audit.d.ts +42 -1
  105. package/dist/server/audit.d.ts.map +1 -1
  106. package/dist/server/audit.js.map +1 -1
  107. package/dist/server/config.d.ts +4 -0
  108. package/dist/server/config.d.ts.map +1 -1
  109. package/dist/server/config.js +67 -0
  110. package/dist/server/config.js.map +1 -1
  111. package/dist/server/context.d.ts +5 -0
  112. package/dist/server/context.d.ts.map +1 -1
  113. package/dist/server/context.js.map +1 -1
  114. package/dist/server/destination-registry.d.ts +10 -2
  115. package/dist/server/destination-registry.d.ts.map +1 -1
  116. package/dist/server/destination-registry.js +12 -3
  117. package/dist/server/destination-registry.js.map +1 -1
  118. package/dist/server/effective-policy-log.d.ts +2 -1
  119. package/dist/server/effective-policy-log.d.ts.map +1 -1
  120. package/dist/server/effective-policy-log.js +18 -2
  121. package/dist/server/effective-policy-log.js.map +1 -1
  122. package/dist/server/multi-target-runtime.d.ts.map +1 -1
  123. package/dist/server/multi-target-runtime.js +7 -2
  124. package/dist/server/multi-target-runtime.js.map +1 -1
  125. package/dist/server/runtime-memory.d.ts +13 -0
  126. package/dist/server/runtime-memory.d.ts.map +1 -0
  127. package/dist/server/runtime-memory.js +42 -0
  128. package/dist/server/runtime-memory.js.map +1 -0
  129. package/dist/server/server-instructions.d.ts +2 -0
  130. package/dist/server/server-instructions.d.ts.map +1 -0
  131. package/dist/server/server-instructions.js +27 -0
  132. package/dist/server/server-instructions.js.map +1 -0
  133. package/dist/server/server.d.ts +3 -2
  134. package/dist/server/server.d.ts.map +1 -1
  135. package/dist/server/server.js +25 -35
  136. package/dist/server/server.js.map +1 -1
  137. package/dist/server/sinks/btp-auditlog.d.ts.map +1 -1
  138. package/dist/server/sinks/btp-auditlog.js +10 -0
  139. package/dist/server/sinks/btp-auditlog.js.map +1 -1
  140. package/dist/server/types.d.ts +8 -0
  141. package/dist/server/types.d.ts.map +1 -1
  142. package/dist/server/types.js +4 -0
  143. package/dist/server/types.js.map +1 -1
  144. package/dist/server/ui-state.d.ts.map +1 -1
  145. package/dist/server/ui-state.js +1 -0
  146. package/dist/server/ui-state.js.map +1 -1
  147. package/package.json +1 -1
package/README.md CHANGED
@@ -22,6 +22,7 @@ Built for organizations that need AI-assisted SAP development with guardrails. I
22
22
  - **Action deny list** — block specific tool actions with `SAP_DENY_ACTIONS` (for example `SAPWrite.delete`), without exposing low-level operation codes to admins
23
23
  - **Package restrictions** — limit AI write operations (create, update, delete) to specific packages with wildcards (`--allowed-packages "Z*,$TMP"`). Read operations are not restricted by package — use SAP's native authorization for read-level access control
24
24
  - **Data access control (off by default)** — `SAPRead(type=TABLE_CONTENTS)` and `SAPQuery` are gated behind explicit env vars (`SAP_ALLOW_DATA_PREVIEW=true`, `SAP_ALLOW_FREE_SQL=true`). These capabilities can expose application data or run ad-hoc SQL, so they are intentionally separated from the default development-tooling surface. They can be enabled for governed use cases, but should be reviewed against the [SAP API Policy](docs_page/sap-api-policy-and-architecture.md), your SAP agreement, and internal data-governance rules
25
+ - **Experimental data-source emergency brake** — approved data/SQL deployments can set `SAP_BLOCKED_DATA_SOURCES=USR02,PA0002`. ARC-1 then parses each SQL request and resolves active CDS plus replacement-object lineage before execution, denying direct or transitive exact-name matches and failing closed when lineage is unsupported or cannot be proven. The empty default adds no metadata calls. This denylist is defense in depth, not a production allowlist or replacement for SAP authorization/CDS DCL; see [Authorization & Roles](docs_page/authorization.md#experimental-data-source-blocklist).
25
26
  - **Transport safety** — transport reads are available for review, while transport mutations require both `--allow-writes` and `--allow-transport-writes`. Update/delete operations auto-use the lock correction number when no explicit transport is provided
26
27
  - **Git workflow safety** — Git operations are disabled by default. Enable explicitly with `--allow-git-writes` / `SAP_ALLOW_GIT_WRITES=true`
27
28
  - **API-key profiles** — multi-key HTTP deployments can assign `viewer`, `viewer-data`, `viewer-sql`, `developer`, `developer-data`, `developer-sql`, or `admin` per key
@@ -130,6 +131,13 @@ Two ARC-1 capabilities can expose business data or execute ad-hoc SQL. Both are
130
131
  | ---------- | ------- | ------- | ----------- |
131
132
  | Named table content preview (`SAPRead(type=TABLE_CONTENTS)`) | `SAP_ALLOW_DATA_PREVIEW=true` | `false` (off) | Can expose application-table data; keep off unless the use case is approved. |
132
133
  | Freestyle ABAP SQL (`SAPQuery`) | `SAP_ALLOW_FREE_SQL=true` | `false` (off) | Executes ad-hoc ABAP SQL; keep off unless the use case is approved. |
134
+ | Exact source blocklist (experimental) | `SAP_BLOCKED_DATA_SOURCES=USR02,PA0002` | empty (off) | Denies exact direct/transitive table or CDS dependencies; active mode is deliberately fail-closed and slower. |
135
+
136
+ When either capability is enabled, successful data-preview bodies are limited cumulatively per tool
137
+ call (2 MiB by default), and only two data-result calls per process remain admitted through parsing
138
+ and serialization. `SAPQuery.maxRows` is separately clamped to 10,000, but wide rows can reach the
139
+ byte limit much earlier. See [Configuration](docs_page/configuration-reference.md) before tuning
140
+ `ARC1_MAX_DATAPREVIEW_RESPONSE_BYTES` or `ARC1_MAX_CONCURRENT_DATA_RESULTS`.
133
141
 
134
142
  With both flags at their defaults, ARC-1's data/sql rows are unreachable. Turning either flag on is a valid operational choice for approved scenarios, but it should be deliberate: check the current SAP API Policy, the customer's SAP agreement, SAP authorizations, and internal data-protection rules before enabling it on a productive system.
135
143
 
@@ -139,7 +147,7 @@ ARC-1's strategy is to stay close to documented and discoverable ADT behavior, p
139
147
 
140
148
  From `1.0` onward ARC-1 follows [semantic versioning](https://semver.org/): patch releases fix bugs, minor releases add backward-compatible capability, and breaking changes to the MCP tool surface, configuration, or auth contract bump the major version.
141
149
 
142
- **Experimental, default-off features are excluded from this guarantee until they are promoted** — they are clearly labeled and their surface may still change in a minor release. Today this covers the [multi-target BTP mode](docs_page/multi-target-setup.md) (ADR-0006 / ADR-0007): a mutation-free, read-only exception to the single-target default.
150
+ **Experimental, default-off features are excluded from this guarantee until they are promoted** — they are clearly labeled and their surface may still change in a minor release. Today this covers the [multi-target BTP mode](docs_page/multi-target-setup.md) (ADR-0006 / ADR-0007) and the [data-source blocklist](docs_page/authorization.md#experimental-data-source-blocklist).
143
151
 
144
152
  What changed per release: the annotated [Release Notes](https://docs.arc-1-mcp.com/release-notes/) give each release its impact and upgrade action; [CHANGELOG.md](CHANGELOG.md) lists every merged PR.
145
153
 
@@ -0,0 +1,32 @@
1
+ #!/bin/sh
2
+ set -eu
3
+
4
+ if [ "${OPTIMIZE_MEMORY:-}" != "true" ]; then
5
+ exec node dist/index.js
6
+ fi
7
+
8
+ memory_available=${MEMORY_AVAILABLE:-}
9
+ case "$memory_available" in
10
+ ''|*[!0-9]*)
11
+ echo "ARC-1 startup refused: OPTIMIZE_MEMORY=true requires MEMORY_AVAILABLE as decimal MiB." >&2
12
+ exit 1
13
+ ;;
14
+ esac
15
+
16
+ # Avoid octal interpretation and arithmetic overflow in POSIX shells. CF values
17
+ # are vastly smaller than this nine-digit upper bound.
18
+ while [ "${memory_available#0}" != "$memory_available" ]; do
19
+ memory_available=${memory_available#0}
20
+ done
21
+ if [ -z "$memory_available" ] || [ "${#memory_available}" -gt 9 ]; then
22
+ echo "ARC-1 startup refused: MEMORY_AVAILABLE is outside the supported decimal-MiB range." >&2
23
+ exit 1
24
+ fi
25
+
26
+ old_space_mib=$((memory_available / 4 * 3 + memory_available % 4 * 3 / 4))
27
+ if [ "$old_space_mib" -lt 1 ]; then
28
+ echo "ARC-1 startup refused: MEMORY_AVAILABLE is too small for the 75% old-space policy." >&2
29
+ exit 1
30
+ fi
31
+
32
+ exec node "--max-old-space-size=${old_space_mib}" dist/index.js
package/dist/adt/atc.d.ts CHANGED
@@ -19,6 +19,17 @@ export interface AtcFinding {
19
19
  * not confirm SAP will honour the name rather than silently substituting `DEFAULT`.
20
20
  */
21
21
  export type AtcVariantSource = 'requested' | 'requestedUnverified' | 'systemDefault' | 'sapFallback';
22
+ export interface AtcRunInfo {
23
+ type: string;
24
+ description: string;
25
+ }
26
+ export interface AtcFindingStatistics {
27
+ errors: number;
28
+ warnings: number;
29
+ infos: number;
30
+ total: number;
31
+ }
32
+ export type AtcCompletionEvidence = 'asyncRunCompleted' | 'legacyWorklistSettled';
22
33
  export interface AtcRunResult {
23
34
  findings: AtcFinding[];
24
35
  worklistId: string;
@@ -26,14 +37,26 @@ export interface AtcRunResult {
26
37
  variant: string | null;
27
38
  variantSource: AtcVariantSource;
28
39
  maximumVerdicts: number;
40
+ /**
41
+ * @deprecated Informational compatibility alias for `findingStatistics.total`. SAP does not
42
+ * define this value as the exact number of findings that must appear in the worklist. It is null
43
+ * when an asynchronous run-creation response has no legacy run-info body.
44
+ */
29
45
  expectedFindingCount: number | null;
46
+ /** Legacy synchronous run infos expose these counters; modern empty 201 responses leave them null. */
47
+ findingStatistics: AtcFindingStatistics | null;
30
48
  findingCount: number;
31
49
  processedObjectCount: number;
32
50
  objectSetIsComplete: boolean | null;
51
+ /** Compatibility field; false until SAP exposes an independent, reliable truncation signal. */
33
52
  truncated: boolean;
34
53
  complete: boolean;
54
+ completionEvidence: AtcCompletionEvidence | null;
35
55
  incompleteReasons: string[];
36
56
  runStatusCode: number;
57
+ runStatus: string | null;
58
+ /** Raw run infos when SAP returns a synchronous `<worklistRun>` body; otherwise empty. */
59
+ runInfos: AtcRunInfo[];
37
60
  worklist: {
38
61
  id: string;
39
62
  timestamp?: string;
@@ -54,6 +77,6 @@ export interface AtcPollOptions {
54
77
  export declare function listAtcVariants(http: AdtHttpClient, safety: SafetyConfig, filter?: string, options?: AdtRequestOptions): Promise<NamedItem[]>;
55
78
  /** Read the system default ATC check variant. */
56
79
  export declare function getAtcSystemDefaultVariant(http: AdtHttpClient, safety: SafetyConfig, options?: AdtRequestOptions): Promise<string | undefined>;
57
- /** Run an ATC worklist and preserve the evidence required for a CI verdict. */
80
+ /** Run an ATC worklist and preserve terminal, structural, and informational evidence for CI. */
58
81
  export declare function runAtcCheck(http: AdtHttpClient, safety: SafetyConfig, objectUrl: string, variant?: string, pollOptions?: AtcPollOptions): Promise<AtcRunResult>;
59
82
  //# sourceMappingURL=atc.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"atc.d.ts","sourceRoot":"","sources":["../../src/adt/atc.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAG3E,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,WAAW,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EAAiC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAiB,KAAK,SAAS,EAAyD,MAAM,iBAAiB,CAAC;AAEvH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,qBAAqB,GAAG,eAAe,GAAG,aAAa,CAAC;AAErG,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,0FAA0F;IAC1F,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,EAAE,gBAAgB,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,OAAO,GAAG,IAAI,CAAC;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAwBD,yCAAyC;AACzC,wBAAsB,eAAe,CACnC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,MAAM,SAAM,EACZ,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,SAAS,EAAE,CAAC,CAStB;AAED,iDAAiD;AACjD,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAI7B;AAsDD,+EAA+E;AAC/E,wBAAsB,WAAW,CAC/B,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,GAAE,cAAmB,GAC/B,OAAO,CAAC,YAAY,CAAC,CA8HvB"}
1
+ {"version":3,"file":"atc.d.ts","sourceRoot":"","sources":["../../src/adt/atc.ts"],"names":[],"mappings":"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"}
package/dist/adt/atc.js CHANGED
@@ -6,14 +6,17 @@ import { escapeXmlAttr, parseAtcSystemCheckVariant, parseNamedItems, parseXml }
6
6
  const DEFAULT_ATC_TIMEOUT_MS = 300_000;
7
7
  const DEFAULT_ATC_POLL_DELAY_MS = 250;
8
8
  const DEFAULT_ATC_MAX_POLL_DELAY_MS = 2_000;
9
+ const ATC_RUN_STATUS_PREFIX = '/sap/bc/adt/atc/runs/';
10
+ const ATC_RUN_STATUS_MEDIA_TYPE = 'application/vnd.sap.atc.run.v1+xml';
9
11
  /**
10
- * Minimum continuous quiet interval before an unchanged worklist is considered settled.
12
+ * Fallback quiet interval when SAP returns a synchronous run without a status location.
11
13
  *
12
14
  * A live 758 worklist grew from 23 findings/two objects to 73/ten after already reporting
13
15
  * `objectSetIsComplete=true`, so neither that flag nor a few fast count snapshots are terminal
14
- * evidence. Ten seconds spans at least five intervals at the default 2 s backoff cap. SAP also
15
- * advances the root worklist timestamp on unchanged GETs, so that proven volatile attribute is
16
- * excluded from the comparison.
16
+ * evidence. Modern systems instead expose the terminal run status requested with
17
+ * `clientWait=false`. Ten seconds spans at least five intervals at the default 2 s backoff cap.
18
+ * SAP also advances the root worklist timestamp on unchanged GETs, so that proven volatile
19
+ * attribute is excluded from the comparison.
17
20
  * See docs/research/2026-08-20-atc-completeness-polling.md.
18
21
  */
19
22
  const ATC_SETTLE_QUIET_MS = 10_000;
@@ -77,7 +80,7 @@ async function resolveCheckVariant(http, safety, requestedRaw, requestOptions) {
77
80
  ? { variant: systemDefault, variantSource: 'systemDefault' }
78
81
  : { variant: undefined, variantSource: 'sapFallback' };
79
82
  }
80
- /** Run an ATC worklist and preserve the evidence required for a CI verdict. */
83
+ /** Run an ATC worklist and preserve terminal, structural, and informational evidence for CI. */
81
84
  export async function runAtcCheck(http, safety, objectUrl, variant, pollOptions = {}) {
82
85
  checkOperation(safety, OperationType.Read, 'RunATCCheck');
83
86
  const now = pollOptions.now ?? Date.now;
@@ -110,19 +113,105 @@ export async function runAtcCheck(http, safety, objectUrl, variant, pollOptions
110
113
  </atc:run>`;
111
114
  let runResp;
112
115
  try {
113
- runResp = await http.post(`/sap/bc/adt/atc/runs?worklistId=${encodeURIComponent(worklistId)}`, runBody, 'application/xml', { Accept: 'application/xml' }, requestOptions);
116
+ runResp = await http.post(`/sap/bc/adt/atc/runs?worklistId=${encodeURIComponent(worklistId)}&clientWait=false`, runBody, 'application/xml', { Accept: 'application/xml' }, requestOptions);
114
117
  }
115
118
  catch (error) {
116
119
  if (isAtcDeadlineFailure(error)) {
117
- return incompleteAtcResult(worklistId, effectiveVariant, variantSource, maximumVerdicts, null, 0, 'ATC execution timed out.');
120
+ return incompleteAtcResult({
121
+ worklistId,
122
+ variant: effectiveVariant,
123
+ variantSource,
124
+ maximumVerdicts,
125
+ findingStatistics: null,
126
+ runInfos: [],
127
+ runStatusCode: 0,
128
+ runStatus: null,
129
+ completionEvidence: null,
130
+ }, 'ATC execution timed out.');
118
131
  }
119
132
  throw error;
120
133
  }
121
- const expectedFindingCount = parseAtcFindingStats(runResp.body);
134
+ const runInfos = parseAtcRunInfos(runResp.body);
135
+ const findingStatistics = parseAtcFindingStatistics(runInfos);
136
+ const baseContext = {
137
+ worklistId,
138
+ variant: effectiveVariant,
139
+ variantSource,
140
+ maximumVerdicts,
141
+ findingStatistics,
142
+ runInfos,
143
+ runStatusCode: runResp.statusCode,
144
+ runStatus: null,
145
+ completionEvidence: null,
146
+ };
122
147
  const sleep = pollOptions.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
123
148
  let delayMs = pollOptions.initialDelayMs ?? DEFAULT_ATC_POLL_DELAY_MS;
124
149
  const maxDelayMs = pollOptions.maxDelayMs ?? DEFAULT_ATC_MAX_POLL_DELAY_MS;
150
+ const rawRunLocation = responseHeader(runResp, 'location');
151
+ const fallbackContext = baseContext;
152
+ let settleFallbackReason;
153
+ if (rawRunLocation !== undefined) {
154
+ const runStatusPath = canonicalAtcRunStatusPath(rawRunLocation);
155
+ if (!runStatusPath) {
156
+ settleFallbackReason = 'SAP returned an unsafe or malformed ATC run-status location.';
157
+ }
158
+ else {
159
+ let runStatus = null;
160
+ while (true) {
161
+ let statusResp;
162
+ try {
163
+ statusResp = await http.get(runStatusPath, { Accept: ATC_RUN_STATUS_MEDIA_TYPE }, requestOptions);
164
+ }
165
+ catch (error) {
166
+ if (isAtcDeadlineFailure(error)) {
167
+ return fetchAtcWorklistSnapshot(http, { ...baseContext, runStatus }, requestOptions, 'ATC run-status polling timed out before SAP completed the run.');
168
+ }
169
+ throw error;
170
+ }
171
+ runStatus = parseAtcRunStatus(statusResp.body);
172
+ const statusContext = { ...baseContext, runStatus };
173
+ if (!runStatus) {
174
+ return fetchAtcWorklistSnapshot(http, statusContext, requestOptions, 'SAP returned an ATC run-status response without one valid status.');
175
+ }
176
+ if (isAtcRunCompleted(runStatus)) {
177
+ const completedContext = {
178
+ ...statusContext,
179
+ completionEvidence: 'asyncRunCompleted',
180
+ };
181
+ try {
182
+ const resultResp = await http.get(`/sap/bc/adt/atc/worklists/${encodeURIComponent(worklistId)}`, { Accept: 'application/atc.worklist.v1+xml' }, requestOptions);
183
+ return parseAtcRunResult(resultResp.body, completedContext);
184
+ }
185
+ catch (error) {
186
+ if (isAtcDeadlineFailure(error)) {
187
+ return incompleteAtcResult(completedContext, 'ATC completed, but worklist retrieval timed out before SAP returned the result.');
188
+ }
189
+ throw error;
190
+ }
191
+ }
192
+ if (isAtcRunFailure(runStatus)) {
193
+ return fetchAtcWorklistSnapshot(http, statusContext, requestOptions, `SAP ended the ATC run with failure status "${runStatus}".`);
194
+ }
195
+ const remainingMs = deadline - now();
196
+ if (remainingMs <= delayMs) {
197
+ return fetchAtcWorklistSnapshot(http, statusContext, requestOptions, 'ATC run-status polling could not continue within the request deadline.');
198
+ }
199
+ await sleep(delayMs);
200
+ if (now() >= deadline) {
201
+ return fetchAtcWorklistSnapshot(http, statusContext, requestOptions, 'ATC run-status polling reached the request deadline before SAP completed the run.');
202
+ }
203
+ delayMs = Math.min(maxDelayMs, delayMs * 2);
204
+ }
205
+ }
206
+ }
207
+ else if (runResp.statusCode !== 200) {
208
+ settleFallbackReason = `SAP returned asynchronous ATC status ${runResp.statusCode} without a run-status location.`;
209
+ }
210
+ // Older systems return the completed run synchronously without a status location. A malformed or
211
+ // missing async location also uses this safe path so partial findings survive, but it cannot prove
212
+ // completion. In both cases the worklist may still populate after the POST returns.
125
213
  let result;
214
+ let resultXml;
126
215
  let lastWorklistObservation;
127
216
  let unchangedSince;
128
217
  while (true) {
@@ -132,19 +221,17 @@ export async function runAtcCheck(http, safety, objectUrl, variant, pollOptions
132
221
  }
133
222
  catch (error) {
134
223
  if (isAtcDeadlineFailure(error)) {
135
- return (result ??
136
- incompleteAtcResult(worklistId, effectiveVariant, variantSource, maximumVerdicts, expectedFindingCount, runResp.statusCode, 'ATC worklist polling timed out before SAP returned the first snapshot.'));
224
+ const timeoutReason = settleFallbackReason
225
+ ? `${settleFallbackReason} Worklist polling then timed out before SAP returned a snapshot.`
226
+ : 'ATC worklist polling timed out before SAP returned the first snapshot.';
227
+ return result ?? incompleteAtcResult(fallbackContext, timeoutReason);
137
228
  }
138
229
  throw error;
139
230
  }
140
- result = parseAtcRunResult(resultResp.body, {
141
- worklistId,
142
- variant: effectiveVariant,
143
- variantSource,
144
- maximumVerdicts,
145
- expectedFindingCount,
146
- runStatusCode: runResp.statusCode,
147
- });
231
+ resultXml = resultResp.body;
232
+ result = parseAtcRunResult(resultXml, fallbackContext);
233
+ if (settleFallbackReason)
234
+ result.incompleteReasons.unshift(settleFallbackReason);
148
235
  // Counts alone miss same-count replacements and other response-evidence changes. Compare the
149
236
  // full XML except the root timestamp, which live 758 advances on otherwise identical GETs.
150
237
  const observedAt = now();
@@ -155,11 +242,15 @@ export async function runAtcCheck(http, safety, objectUrl, variant, pollOptions
155
242
  }
156
243
  const unchangedForMs = unchangedSince === undefined ? 0 : observedAt - unchangedSince;
157
244
  const settled = unchangedForMs >= ATC_SETTLE_QUIET_MS;
158
- if (expectedFindingCount === null ||
159
- result.complete ||
160
- result.findingCount > expectedFindingCount ||
161
- settled ||
162
- observedAt >= deadline) {
245
+ if (settled || observedAt >= deadline) {
246
+ if (settled) {
247
+ result = parseAtcRunResult(resultXml, {
248
+ ...fallbackContext,
249
+ completionEvidence: settleFallbackReason ? null : 'legacyWorklistSettled',
250
+ });
251
+ if (settleFallbackReason)
252
+ result.incompleteReasons.unshift(settleFallbackReason);
253
+ }
163
254
  if (settled && !result.complete) {
164
255
  result.incompleteReasons.push(`ATC worklist response, excluding SAP's poll timestamp, was unchanged for at least ` +
165
256
  `${ATC_SETTLE_QUIET_MS / 1_000} seconds at ` +
@@ -178,22 +269,40 @@ function isAtcDeadlineFailure(error) {
178
269
  return (error instanceof AdtNetworkError &&
179
270
  (error.cause?.name === 'TimeoutError' || /deadline was exceeded|timed out|\btimeout\b/i.test(error.message)));
180
271
  }
181
- function incompleteAtcResult(worklistId, variant, variantSource, maximumVerdicts, expectedFindingCount, runStatusCode, reason) {
272
+ async function fetchAtcWorklistSnapshot(http, context, requestOptions, reason) {
273
+ try {
274
+ const response = await http.get(`/sap/bc/adt/atc/worklists/${encodeURIComponent(context.worklistId)}`, { Accept: 'application/atc.worklist.v1+xml' }, requestOptions);
275
+ const result = parseAtcRunResult(response.body, context);
276
+ result.incompleteReasons.unshift(reason);
277
+ return result;
278
+ }
279
+ catch (error) {
280
+ if (isAtcDeadlineFailure(error)) {
281
+ return incompleteAtcResult(context, `${reason} No worklist snapshot was available before the deadline.`);
282
+ }
283
+ return incompleteAtcResult(context, `${reason} The best-effort worklist snapshot could not be retrieved.`);
284
+ }
285
+ }
286
+ function incompleteAtcResult(context, reason) {
182
287
  return {
183
288
  findings: [],
184
- worklistId,
185
- variant: variant ?? null,
186
- variantSource,
187
- maximumVerdicts,
188
- expectedFindingCount,
289
+ worklistId: context.worklistId,
290
+ variant: context.variant ?? null,
291
+ variantSource: context.variantSource,
292
+ maximumVerdicts: context.maximumVerdicts,
293
+ expectedFindingCount: context.findingStatistics?.total ?? null,
294
+ findingStatistics: context.findingStatistics,
189
295
  findingCount: 0,
190
296
  processedObjectCount: 0,
191
297
  objectSetIsComplete: null,
192
- truncated: expectedFindingCount !== null && expectedFindingCount > 0,
298
+ truncated: false,
193
299
  complete: false,
300
+ completionEvidence: context.completionEvidence,
194
301
  incompleteReasons: [reason],
195
- runStatusCode,
196
- worklist: { id: worklistId },
302
+ runStatusCode: context.runStatusCode,
303
+ runStatus: context.runStatus,
304
+ runInfos: context.runInfos,
305
+ worklist: { id: context.worklistId },
197
306
  infos: [],
198
307
  };
199
308
  }
@@ -220,16 +329,49 @@ function nodeText(value) {
220
329
  return String(first).trim();
221
330
  return String(first['#text'] ?? '').trim();
222
331
  }
223
- function parseAtcFindingStats(xml) {
332
+ function responseHeader(response, name) {
333
+ const match = Object.entries(response.headers).find(([key]) => key.toLowerCase() === name.toLowerCase());
334
+ return match?.[1];
335
+ }
336
+ function canonicalAtcRunStatusPath(rawPath) {
337
+ const canonical = canonicalHostRelativeAdtPath(rawPath, ATC_RUN_STATUS_PREFIX);
338
+ if (!canonical || canonical.includes('?'))
339
+ return null;
340
+ const runId = canonical.slice(ATC_RUN_STATUS_PREFIX.length);
341
+ return runId && !runId.includes('/') ? canonical : null;
342
+ }
343
+ function parseAtcRunStatus(xml) {
344
+ const roots = nodeRecords(parseXml(xml).run);
345
+ if (roots.length !== 1)
346
+ return null;
347
+ const status = typeof roots[0]?.['@_status'] === 'string' ? roots[0]['@_status'].trim() : '';
348
+ return status || null;
349
+ }
350
+ function normalizedAtcRunStatus(status) {
351
+ return status.trim().replace(/\s+/g, ' ').toLowerCase();
352
+ }
353
+ function isAtcRunCompleted(status) {
354
+ return ['completed', 'finished'].includes(normalizedAtcRunStatus(status));
355
+ }
356
+ function isAtcRunFailure(status) {
357
+ return ['not created', 'failed', 'cancelled', 'canceled', 'aborted', 'error'].includes(normalizedAtcRunStatus(status));
358
+ }
359
+ function parseAtcRunInfos(xml) {
360
+ if (!xml.trim())
361
+ return [];
224
362
  const root = nodeRecord(parseXml(xml).worklistRun);
225
363
  const infos = nodeRecords(root?.infos).flatMap((container) => nodeRecords(container.info));
226
- const stats = infos.find((info) => nodeText(info.type).toUpperCase() === 'FINDING_STATS');
227
- const parts = nodeText(stats?.description)
228
- .split(',')
229
- .map((part) => Number(part.trim()));
230
- return parts.length === 3 && parts.every((part) => Number.isSafeInteger(part) && part >= 0)
231
- ? parts.reduce((sum, part) => sum + part, 0)
232
- : null;
364
+ return infos
365
+ .map((info) => ({ type: nodeText(info.type), description: nodeText(info.description) }))
366
+ .filter((info) => info.type || info.description);
367
+ }
368
+ function parseAtcFindingStatistics(runInfos) {
369
+ const stats = runInfos.find((info) => info.type.toUpperCase() === 'FINDING_STATS');
370
+ const parts = (stats?.description ?? '').split(',').map((part) => Number(part.trim()));
371
+ if (parts.length !== 3 || !parts.every((part) => Number.isSafeInteger(part) && part >= 0))
372
+ return null;
373
+ const [errors, warnings, infos] = parts;
374
+ return { errors, warnings, infos, total: errors + warnings + infos };
233
375
  }
234
376
  function isValidProcessedObject(object) {
235
377
  const uri = typeof object['@_uri'] === 'string' ? object['@_uri'].trim() : '';
@@ -297,7 +439,6 @@ function parseAtcRunResult(xml, context) {
297
439
  const rawObjectRows = nodeValues(rawObjectValue);
298
440
  const objectRows = nodeRecords(rawObjectValue);
299
441
  const findings = parseAtcFindings(root, objectRows);
300
- const truncated = context.expectedFindingCount !== null && findings.length < context.expectedFindingCount;
301
442
  const validObjectRows = objectRows.filter(isValidProcessedObject);
302
443
  const processedObjectCount = validObjectRows.length;
303
444
  const malformedObjectCount = rawObjectRows.length - validObjectRows.length;
@@ -318,14 +459,8 @@ function parseAtcRunResult(xml, context) {
318
459
  ? 'SAP marked the ATC object set incomplete.'
319
460
  : 'SAP did not provide object-set completeness evidence.');
320
461
  }
321
- if (context.expectedFindingCount === null) {
322
- incompleteReasons.push('SAP did not provide valid ATC finding-count evidence for this run.');
323
- }
324
- else if (findings.length !== context.expectedFindingCount) {
325
- incompleteReasons.push(findings.length < context.expectedFindingCount
326
- ? `ATC worklist has ${findings.length} of ${context.expectedFindingCount} findings reported by the run.`
327
- : `ATC worklist has ${findings.length} findings, exceeding the ${context.expectedFindingCount} reported by the run.`);
328
- }
462
+ if (context.completionEvidence === null)
463
+ incompleteReasons.push('SAP did not provide terminal ATC run evidence.');
329
464
  if (!objectContainerShapeIsValid) {
330
465
  incompleteReasons.push('SAP did not provide one schema-scoped ATC objects container.');
331
466
  }
@@ -344,23 +479,25 @@ function parseAtcRunResult(xml, context) {
344
479
  variant: context.variant ?? null,
345
480
  variantSource: context.variantSource,
346
481
  maximumVerdicts: context.maximumVerdicts,
347
- expectedFindingCount: context.expectedFindingCount,
482
+ expectedFindingCount: context.findingStatistics?.total ?? null,
483
+ findingStatistics: context.findingStatistics,
348
484
  findingCount: findings.length,
349
485
  processedObjectCount,
350
486
  objectSetIsComplete,
351
- truncated,
487
+ truncated: false,
352
488
  complete: rootShapeIsValid &&
353
489
  worklistIdMatches &&
354
490
  objectSetIsComplete === true &&
355
- !truncated &&
356
- context.expectedFindingCount !== null &&
357
- findings.length === context.expectedFindingCount &&
491
+ context.completionEvidence !== null &&
358
492
  objectContainerShapeIsValid &&
359
493
  processedObjectCount > 0 &&
360
494
  malformedObjectCount === 0 &&
361
495
  invalidPriorityCount === 0,
496
+ completionEvidence: context.completionEvidence,
362
497
  incompleteReasons,
363
498
  runStatusCode: context.runStatusCode,
499
+ runStatus: context.runStatus,
500
+ runInfos: context.runInfos,
364
501
  worklist: {
365
502
  id: bodyWorklistId,
366
503
  ...(root['@_timestamp'] ? { timestamp: String(root['@_timestamp']) } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"atc.js","sourceRoot":"","sources":["../../src/adt/atc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"atc.js","sourceRoot":"","sources":["../../src/adt/atc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { Client, Dispatcher } from 'undici';
2
+ import type { DataResponseBudget } from './data-result-context.js';
3
+ type ConnectivityProxyResponse = Pick<Dispatcher.ResponseData, 'statusCode' | 'headers' | 'body'>;
4
+ /** Apply the cumulative post-content-decoding allowance before string conversion. */
5
+ export declare function capResponseBody(response: Response, budget: DataResponseBudget): Promise<Response>;
6
+ /** Convert one Connectivity response while preserving ownership of its short-lived client. */
7
+ export declare function connectivityProxyResponse(response: ConnectivityProxyResponse, client: Client, signal: AbortSignal, bounded: boolean): Promise<Response>;
8
+ export {};
9
+ //# sourceMappingURL=bounded-response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bounded-response.d.ts","sourceRoot":"","sources":["../../src/adt/bounded-response.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,KAAK,yBAAyB,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC;AAelG,qFAAqF;AACrF,wBAAsB,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAsEvG;AAyFD,8FAA8F;AAC9F,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,yBAAyB,EACnC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,QAAQ,CAAC,CA0BnB"}