@cspeach/cli 1.1.37 → 1.1.38

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.
@@ -12,6 +12,7 @@
12
12
  */
13
13
  import { recordSyntaxCheck } from './syntax-state.js';
14
14
  import { toObjectUrl, xmlParser } from '@cspeach/sap-client';
15
+ import * as sapClient from '@cspeach/sap-client';
15
16
  /** Line for display: the parsed line, else the `#start=L,C` fragment of the
16
17
  * checkruns uri (sap-client <= 0.1.14 left line at 0 for checkruns). */
17
18
  function lineOf(m) {
@@ -90,15 +91,35 @@ export function normaliseSyntaxResult(res) {
90
91
  * TABL is NOT retried here (live-check finding 3, 2026-10-14): sap-client
91
92
  * checks tables itself with an explicit chkrun:version ("inactive", then one
92
93
  * "active" retry on notProcessed), so its "did not run" is already final.
93
- * BDEF, DDLX and SRVD keep this retry until sap-client covers them too.
94
+ * STRU is not retried either (FINDINGS item 20, proved live 2026-10-15), nor
95
+ * BDEF, DDLX, SRVD (fix/active-only-checks, proved live 2026-10-15).
96
+ *
97
+ * The list is sap-client's own export (VERSIONED_CHECK_TYPES), so the two
98
+ * cannot drift. An older sap-client without the export checks only TABL
99
+ * itself (0.1.22), so the fallback is TABL: the CLI then keeps retrying every
100
+ * other type, as before. Still retried here today: DTEL, SRVB, DOMA.
94
101
  */
95
- const SAP_CLIENT_VERSIONED_TYPES = new Set(['TABL']);
102
+ export function versionedTypesFrom(mod) {
103
+ let list;
104
+ try {
105
+ list = mod['VERSIONED_CHECK_TYPES'];
106
+ }
107
+ catch {
108
+ list = undefined;
109
+ } // a test mock without the export throws
110
+ if (!Array.isArray(list) || !list.every((t) => typeof t === 'string'))
111
+ return new Set(['TABL']);
112
+ return new Set(list.map((t) => t.toUpperCase()));
113
+ }
114
+ export function sapClientVersionedTypes() {
115
+ return versionedTypesFrom(sapClient);
116
+ }
96
117
  export async function checkSyntax(adt, type, name) {
97
118
  try {
98
119
  return await adt.syntaxCheck(type, name);
99
120
  }
100
121
  catch (err) {
101
- if (SAP_CLIENT_VERSIONED_TYPES.has(type.toUpperCase()))
122
+ if (sapClientVersionedTypes().has(type.toUpperCase()))
102
123
  throw err;
103
124
  if (!/did not run \(status notProcessed\)/i.test(String(err?.message ?? err)))
104
125
  throw err;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cspeach/cli",
3
- "version": "1.1.37",
3
+ "version": "1.1.38",
4
4
  "description": "CSPeach — AI-assisted ABAP development CLI. Direct SAP access, signed skills, safety gates.",
5
5
  "keywords": [
6
6
  "abap",
@@ -54,7 +54,7 @@
54
54
  "@anthropic-ai/sdk": "^0.90.0",
55
55
  "@azure/msal-node": "6.0.1",
56
56
  "@cspeach/register-core": "0.4.0",
57
- "@cspeach/sap-client": "0.1.22",
57
+ "@cspeach/sap-client": "0.1.23",
58
58
  "@iarna/toml": "^2.2.5",
59
59
  "@inkjs/ui": "^2.0.0",
60
60
  "@inquirer/prompts": "^7.0.0",