arc-1 0.6.8 → 0.6.9
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.
- package/README.md +15 -11
- package/dist/adt/cds-impact.d.ts +25 -0
- package/dist/adt/cds-impact.d.ts.map +1 -0
- package/dist/adt/cds-impact.js +91 -0
- package/dist/adt/cds-impact.js.map +1 -0
- package/dist/adt/client.d.ts +15 -1
- package/dist/adt/client.d.ts.map +1 -1
- package/dist/adt/client.js +84 -1
- package/dist/adt/client.js.map +1 -1
- package/dist/adt/codeintel.d.ts +8 -0
- package/dist/adt/codeintel.d.ts.map +1 -1
- package/dist/adt/codeintel.js +33 -0
- package/dist/adt/codeintel.js.map +1 -1
- package/dist/adt/config.d.ts +2 -0
- package/dist/adt/config.d.ts.map +1 -1
- package/dist/adt/config.js.map +1 -1
- package/dist/adt/cookies.d.ts +5 -0
- package/dist/adt/cookies.d.ts.map +1 -1
- package/dist/adt/cookies.js +14 -0
- package/dist/adt/cookies.js.map +1 -1
- package/dist/adt/crud.d.ts.map +1 -1
- package/dist/adt/crud.js +7 -0
- package/dist/adt/crud.js.map +1 -1
- package/dist/adt/devtools.d.ts +11 -0
- package/dist/adt/devtools.d.ts.map +1 -1
- package/dist/adt/devtools.js +33 -0
- package/dist/adt/devtools.js.map +1 -1
- package/dist/adt/http.d.ts +2 -0
- package/dist/adt/http.d.ts.map +1 -1
- package/dist/adt/http.js +33 -1
- package/dist/adt/http.js.map +1 -1
- package/dist/adt/transport.d.ts +26 -0
- package/dist/adt/transport.d.ts.map +1 -1
- package/dist/adt/transport.js +60 -0
- package/dist/adt/transport.js.map +1 -1
- package/dist/adt/types.d.ts +89 -0
- package/dist/adt/types.d.ts.map +1 -1
- package/dist/adt/xml-parser.d.ts +19 -1
- package/dist/adt/xml-parser.d.ts.map +1 -1
- package/dist/adt/xml-parser.js +173 -0
- package/dist/adt/xml-parser.js.map +1 -1
- package/dist/cli.js +5 -0
- package/dist/cli.js.map +1 -1
- package/dist/handlers/intent.d.ts.map +1 -1
- package/dist/handlers/intent.js +204 -10
- package/dist/handlers/intent.js.map +1 -1
- package/dist/handlers/schemas.d.ts +59 -37
- package/dist/handlers/schemas.d.ts.map +1 -1
- package/dist/handlers/schemas.js +52 -22
- package/dist/handlers/schemas.js.map +1 -1
- package/dist/handlers/tools.d.ts.map +1 -1
- package/dist/handlers/tools.js +80 -43
- package/dist/handlers/tools.js.map +1 -1
- package/dist/server/config.d.ts.map +1 -1
- package/dist/server/config.js +18 -0
- package/dist/server/config.js.map +1 -1
- package/dist/server/server.d.ts +7 -1
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +62 -6
- package/dist/server/server.js.map +1 -1
- package/dist/server/types.d.ts +4 -0
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/types.js +2 -0
- package/dist/server/types.js.map +1 -1
- package/package.json +4 -2
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,YAAY;AACZ,MAAM,EAAE,CAAC;AAET,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,yCAAyC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAE7F,wBAAwB;AACxB,OAAO;KACJ,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;KACrC,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,6DAA6D;IAC7D,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACpE,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,oBAAoB,CAAC,YAAY,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC;AAEL,iBAAiB;AACjB,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,yBAAyB,CAAC;KACtC,MAAM,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,IAAI,CAAC;KACjD,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,IAAqB,EAAE,EAAE;IACrD,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEL,iBAAiB;AACjB,OAAO;KACJ,OAAO,CAAC,sBAAsB,CAAC;KAC/B,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAY,EAAE,EAAE;IAC3C,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;IACrC,QAAQ,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QAC3B,KAAK,MAAM;YACT,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3C,MAAM;QACR,KAAK,MAAM;YACT,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACzC,MAAM;QACR,KAAK,MAAM;YACT,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7C,MAAM;QACR;YACE,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,eAAe;AACf,OAAO;KACJ,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE;IACvB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACnG,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,6BAA6B;AAC7B,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,oBAAoB,CAAC;KACjC,MAAM,CAAC,GAAG,EAAE;IACX,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEL,SAAS,mBAAmB;IAC1B,MAAM,YAAY,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IACnC,OAAO,IAAI,SAAS,CAAC;QACnB,OAAO,EAAE,YAAY,CAAC,GAAG;QACzB,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3B,QAAQ,EAAE,YAAY,CAAC,QAAQ;QAC/B,QAAQ,EAAE,YAAY,CAAC,QAAQ;KAChC,CAAC,CAAC;AACL,CAAC;AAED,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intent.d.ts","sourceRoot":"","sources":["../../src/handlers/intent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"intent.d.ts","sourceRoot":"","sources":["../../src/handlers/intent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAExE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAuFlD,OAAO,KAAK,EAA0C,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGhG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAc9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKvD,2BAA2B;AAC3B,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAY9C,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CASnF;AAeD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAe1F;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CASzD;AA2KD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,QAAQ,CAAC,EAAE,QAAQ,EACnB,OAAO,CAAC,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,YAAY,EAC3B,eAAe,CAAC,EAAE,OAAO,GACxB,OAAO,CAAC,UAAU,CAAC,CAsLrB;AAu5BD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAyB1E;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,MAAM,CA6NR;AAwCD,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIxD;AA45DD,0CAA0C;AAC1C,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C;AAED,gEAAgE;AAChE,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,SAAS,GAAG,IAAI,CAE9E;AAED,2DAA2D;AAC3D,wBAAgB,iBAAiB,IAAI,gBAAgB,GAAG,SAAS,CAEhE;AAED,iDAAiD;AACjD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAEnE;AAED,iDAAiD;AACjD,wBAAgB,kBAAkB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAE1D"}
|
package/dist/handlers/intent.js
CHANGED
|
@@ -9,20 +9,21 @@
|
|
|
9
9
|
* responses. Internal details (stack traces, SAP XML) are NOT
|
|
10
10
|
* leaked to the LLM — only user-friendly error messages.
|
|
11
11
|
*/
|
|
12
|
+
import { classifyCdsImpact } from '../adt/cds-impact.js';
|
|
12
13
|
import { findDefinition, findReferences, findWhereUsed, getCompletion, } from '../adt/codeintel.js';
|
|
13
14
|
import { createObject, deleteObject, lockObject, safeUpdateObject, safeUpdateSource, unlockObject, updateObject, } from '../adt/crud.js';
|
|
14
15
|
import { buildDataElementXml, buildDomainXml, buildMessageClassXml, buildPackageXml, buildServiceBindingXml, decodeKtdText, rewriteKtdText, } from '../adt/ddic-xml.js';
|
|
15
|
-
import { activate, activateBatch, applyFixProposal, getFixProposals, publishServiceBinding, runAtcCheck, runUnitTests, syntaxCheck, unpublishServiceBinding, } from '../adt/devtools.js';
|
|
16
|
+
import { activate, activateBatch, applyFixProposal, getFixProposals, getPrettyPrinterSettings, prettyPrint, publishServiceBinding, runAtcCheck, runUnitTests, setPrettyPrinterSettings, syntaxCheck, unpublishServiceBinding, } from '../adt/devtools.js';
|
|
16
17
|
import { getDump, getTraceDbAccesses, getTraceHitlist, getTraceStatements, listDumps, listTraces, } from '../adt/diagnostics.js';
|
|
17
18
|
import { AdtApiError, AdtNetworkError, AdtSafetyError, classifySapDomainError, isNotFoundError, } from '../adt/errors.js';
|
|
18
19
|
import { classifyTextSearchError, mapSapReleaseToAbaplintVersion, probeFeatures } from '../adt/features.js';
|
|
19
20
|
import { addTileToGroup, createCatalog, createGroup, createTile, deleteCatalog, listCatalogs, listGroups, listTiles, } from '../adt/flp.js';
|
|
20
21
|
import { changePackage } from '../adt/refactoring.js';
|
|
21
22
|
import { checkOperation, checkPackage, isOperationAllowed, OperationType } from '../adt/safety.js';
|
|
22
|
-
import { createTransport, deleteTransport, getTransport, getTransportInfo, listTransports, reassignTransport, releaseTransport, releaseTransportRecursive, } from '../adt/transport.js';
|
|
23
|
+
import { createTransport, deleteTransport, getObjectTransports, getTransport, getTransportInfo, listTransports, reassignTransport, releaseTransport, releaseTransportRecursive, } from '../adt/transport.js';
|
|
23
24
|
import { getAppInfo } from '../adt/ui5-repository.js';
|
|
24
25
|
import { validateAffHeader } from '../aff/validator.js';
|
|
25
|
-
import { extractCdsElements } from '../context/cds-deps.js';
|
|
26
|
+
import { extractCdsDependencies, extractCdsElements } from '../context/cds-deps.js';
|
|
26
27
|
import { compressCdsContext, compressContext } from '../context/compressor.js';
|
|
27
28
|
import { extractMethod, formatMethodListing, listMethods, spliceMethod } from '../context/method-surgery.js';
|
|
28
29
|
import { buildLintConfig, listRulesFromConfig, } from '../lint/config-builder.js';
|
|
@@ -627,6 +628,58 @@ async function handleSAPRead(client, args, cachingLayer) {
|
|
|
627
628
|
const dtel = await client.getDataElement(name);
|
|
628
629
|
return textResult(JSON.stringify(dtel, null, 2));
|
|
629
630
|
}
|
|
631
|
+
case 'AUTH': {
|
|
632
|
+
const authField = await client.getAuthorizationField(name);
|
|
633
|
+
return textResult(JSON.stringify(authField, null, 2));
|
|
634
|
+
}
|
|
635
|
+
case 'FTG2': {
|
|
636
|
+
const toggle = await client.getFeatureToggle(name);
|
|
637
|
+
return textResult(JSON.stringify(toggle, null, 2));
|
|
638
|
+
}
|
|
639
|
+
case 'ENHO': {
|
|
640
|
+
const enhancement = await client.getEnhancementImplementation(name);
|
|
641
|
+
return textResult(JSON.stringify(enhancement, null, 2));
|
|
642
|
+
}
|
|
643
|
+
case 'VERSIONS': {
|
|
644
|
+
const include = typeof args.include === 'string' ? args.include : undefined;
|
|
645
|
+
let group = typeof args.group === 'string' ? args.group : undefined;
|
|
646
|
+
const objectType = normalizeObjectType(String(args.objectType ?? '')) || inferObjectType(name) || 'PROG';
|
|
647
|
+
if (objectType === 'FUNC' && !group) {
|
|
648
|
+
const resolved = cachingLayer
|
|
649
|
+
? await cachingLayer.resolveFuncGroup(client, name)
|
|
650
|
+
: await client.resolveFunctionGroup(name);
|
|
651
|
+
if (!resolved) {
|
|
652
|
+
return errorResult(`Cannot resolve function group for "${name}". Provide the group parameter explicitly, or use SAPSearch("${name}") to find the function group.`);
|
|
653
|
+
}
|
|
654
|
+
group = resolved;
|
|
655
|
+
}
|
|
656
|
+
try {
|
|
657
|
+
const revisions = await client.getRevisions(objectType, name, { include, group });
|
|
658
|
+
return textResult(JSON.stringify(revisions, null, 2));
|
|
659
|
+
}
|
|
660
|
+
catch (err) {
|
|
661
|
+
if (isNotFoundError(err)) {
|
|
662
|
+
return textResult(`No version history available for ${objectType} "${name}" on this SAP system. ` +
|
|
663
|
+
`This usually means the object does not exist, or the ADT versions endpoint is not supported for ${objectType} on this backend release.`);
|
|
664
|
+
}
|
|
665
|
+
throw err;
|
|
666
|
+
}
|
|
667
|
+
}
|
|
668
|
+
case 'VERSION_SOURCE': {
|
|
669
|
+
const versionUri = String(args.versionUri ?? '');
|
|
670
|
+
if (!versionUri) {
|
|
671
|
+
return errorResult('VERSION_SOURCE requires a versionUri parameter. Get it from SAPRead(type="VERSIONS", name="...") response (.revisions[].uri).');
|
|
672
|
+
}
|
|
673
|
+
try {
|
|
674
|
+
return textResult(await client.getRevisionSource(versionUri));
|
|
675
|
+
}
|
|
676
|
+
catch (err) {
|
|
677
|
+
if (isNotFoundError(err)) {
|
|
678
|
+
return errorResult(`Revision at URI "${versionUri}" was not found. The revision may have been removed, or the URI is malformed. Fetch a fresh list via SAPRead(type="VERSIONS", name="...").`);
|
|
679
|
+
}
|
|
680
|
+
throw err;
|
|
681
|
+
}
|
|
682
|
+
}
|
|
630
683
|
case 'TRAN': {
|
|
631
684
|
const tran = await client.getTransaction(name);
|
|
632
685
|
// Enrich with program name via SQL — only if free SQL is allowed by safety config
|
|
@@ -763,7 +816,7 @@ async function handleSAPRead(client, args, cachingLayer) {
|
|
|
763
816
|
}
|
|
764
817
|
}
|
|
765
818
|
default:
|
|
766
|
-
return errorResult(`Unknown SAPRead type: "${type}". Supported types: PROG, CLAS, INTF, FUNC, FUGR, INCL, DDLS, DCLS, DDLX, BDEF, SRVD, SRVB, SKTD, TABL, VIEW, STRU, DOMA, DTEL, TRAN, TABLE_CONTENTS, DEVC, SOBJ, SYSTEM, COMPONENTS, MESSAGES, TEXT_ELEMENTS, VARIANTS, BSP, BSP_DEPLOY, API_STATE, INACTIVE_OBJECTS. ` +
|
|
819
|
+
return errorResult(`Unknown SAPRead type: "${type}". Supported types: PROG, CLAS, INTF, FUNC, FUGR, INCL, DDLS, DCLS, DDLX, BDEF, SRVD, SRVB, SKTD, TABL, VIEW, STRU, DOMA, DTEL, AUTH, FTG2, ENHO, VERSIONS, VERSION_SOURCE, TRAN, TABLE_CONTENTS, DEVC, SOBJ, SYSTEM, COMPONENTS, MESSAGES, TEXT_ELEMENTS, VARIANTS, BSP, BSP_DEPLOY, API_STATE, INACTIVE_OBJECTS. ` +
|
|
767
820
|
'Tip: Type aliases are auto-normalized (e.g., DDLS/DF → DDLS, DCLS/DL → DCLS, CLAS/OC → CLAS, PROG/P → PROG). ' +
|
|
768
821
|
'Do not pass a URI — use the "type" and "name" parameters instead.');
|
|
769
822
|
}
|
|
@@ -851,9 +904,8 @@ async function handleSAPQuery(client, args) {
|
|
|
851
904
|
throw err;
|
|
852
905
|
}
|
|
853
906
|
}
|
|
854
|
-
//
|
|
855
|
-
|
|
856
|
-
async function handleSAPLint(_client, args, config) {
|
|
907
|
+
// Some SAPLint actions run offline (@abaplint/core), others call SAP ADT formatter APIs.
|
|
908
|
+
async function handleSAPLint(client, args, config) {
|
|
857
909
|
const action = String(args.action ?? '');
|
|
858
910
|
const ruleOverrides = args.rules;
|
|
859
911
|
const configOptions = buildLintConfigOptions(config, ruleOverrides);
|
|
@@ -892,8 +944,33 @@ async function handleSAPLint(_client, args, config) {
|
|
|
892
944
|
disabledRuleNames: disabled.map((r) => r.rule),
|
|
893
945
|
}, null, 2));
|
|
894
946
|
}
|
|
947
|
+
case 'format': {
|
|
948
|
+
const source = String(args.source ?? '');
|
|
949
|
+
if (!source)
|
|
950
|
+
return errorResult('"source" is required for format action.');
|
|
951
|
+
const formatted = await prettyPrint(client.http, client.safety, source);
|
|
952
|
+
return textResult(formatted);
|
|
953
|
+
}
|
|
954
|
+
case 'get_formatter_settings': {
|
|
955
|
+
const settings = await getPrettyPrinterSettings(client.http, client.safety);
|
|
956
|
+
return textResult(JSON.stringify(settings, null, 2));
|
|
957
|
+
}
|
|
958
|
+
case 'set_formatter_settings': {
|
|
959
|
+
const indentation = args.indentation;
|
|
960
|
+
const style = args.style;
|
|
961
|
+
if (indentation === undefined && style === undefined) {
|
|
962
|
+
return errorResult('At least one of "indentation" or "style" is required for set_formatter_settings.');
|
|
963
|
+
}
|
|
964
|
+
const current = await getPrettyPrinterSettings(client.http, client.safety);
|
|
965
|
+
const next = {
|
|
966
|
+
indentation: indentation ?? current.indentation,
|
|
967
|
+
style: style ?? current.style,
|
|
968
|
+
};
|
|
969
|
+
await setPrettyPrinterSettings(client.http, client.safety, next);
|
|
970
|
+
return textResult(JSON.stringify(next, null, 2));
|
|
971
|
+
}
|
|
895
972
|
default:
|
|
896
|
-
return errorResult(`Unknown SAPLint action: "${action}". Supported: lint, lint_and_fix, list_rules. For atc/syntax/unittest, use SAPDiagnose instead.`);
|
|
973
|
+
return errorResult(`Unknown SAPLint action: "${action}". Supported: lint, lint_and_fix, list_rules, format, get_formatter_settings, set_formatter_settings. For atc/syntax/unittest, use SAPDiagnose instead.`);
|
|
897
974
|
}
|
|
898
975
|
}
|
|
899
976
|
/**
|
|
@@ -2581,14 +2658,56 @@ async function handleSAPTransport(client, args) {
|
|
|
2581
2658
|
summary,
|
|
2582
2659
|
}, null, 2));
|
|
2583
2660
|
}
|
|
2661
|
+
case 'history': {
|
|
2662
|
+
const objectType = String(args.type ?? '');
|
|
2663
|
+
const objectName = String(args.name ?? '');
|
|
2664
|
+
if (!objectType || !objectName) {
|
|
2665
|
+
return errorResult('"type" and "name" are required for "history" action.');
|
|
2666
|
+
}
|
|
2667
|
+
const objectUrl = objectUrlForType(objectType, objectName);
|
|
2668
|
+
const primary = await getObjectTransports(client.http, client.safety, objectUrl);
|
|
2669
|
+
let candidateTransports = primary.candidateTransports;
|
|
2670
|
+
// Fallback: if per-object transport lookup is empty, derive the package via
|
|
2671
|
+
// the object metadata endpoint and ask transportchecks for candidate transports.
|
|
2672
|
+
if (primary.relatedTransports.length === 0 && candidateTransports.length === 0) {
|
|
2673
|
+
try {
|
|
2674
|
+
const pkg = await client.resolveObjectPackage(objectUrl);
|
|
2675
|
+
if (pkg && pkg !== '$TMP') {
|
|
2676
|
+
const info = await getTransportInfo(client.http, client.safety, objectUrl, pkg, '');
|
|
2677
|
+
candidateTransports = info.existingTransports;
|
|
2678
|
+
}
|
|
2679
|
+
}
|
|
2680
|
+
catch {
|
|
2681
|
+
// best-effort-fallback
|
|
2682
|
+
}
|
|
2683
|
+
}
|
|
2684
|
+
const lockOwner = primary.relatedTransports[0]?.owner;
|
|
2685
|
+
const summary = primary.lockedTransport
|
|
2686
|
+
? `Object ${objectName} is locked in transport ${primary.lockedTransport}${lockOwner ? ` by ${lockOwner}` : ''}.`
|
|
2687
|
+
: candidateTransports.length > 0
|
|
2688
|
+
? `Object ${objectName} has no active lock; ${candidateTransports.length} transport(s) available for assignment.`
|
|
2689
|
+
: `Object ${objectName} has no related or candidate transports (likely $TMP / local object).`;
|
|
2690
|
+
const history = {
|
|
2691
|
+
object: { type: objectType, name: objectName, uri: objectUrl },
|
|
2692
|
+
...(primary.lockedTransport ? { lockedTransport: primary.lockedTransport } : {}),
|
|
2693
|
+
relatedTransports: primary.relatedTransports,
|
|
2694
|
+
candidateTransports,
|
|
2695
|
+
summary,
|
|
2696
|
+
};
|
|
2697
|
+
return textResult(JSON.stringify(history, null, 2));
|
|
2698
|
+
}
|
|
2584
2699
|
default:
|
|
2585
|
-
return errorResult(`Unknown SAPTransport action: ${action}. Supported: list, get, create, release, delete, reassign, release_recursive, check`);
|
|
2700
|
+
return errorResult(`Unknown SAPTransport action: ${action}. Supported: list, get, create, release, delete, reassign, release_recursive, check, history`);
|
|
2586
2701
|
}
|
|
2587
2702
|
}
|
|
2588
2703
|
// ─── SAPContext Handler ───────────────────────────────────────────────
|
|
2589
2704
|
async function handleSAPContext(client, args, cachingLayer) {
|
|
2590
2705
|
const action = String(args.action ?? '');
|
|
2591
|
-
|
|
2706
|
+
// action="impact" is DDLS-only on the server side — default the type so LLMs
|
|
2707
|
+
// don't have to supply it redundantly (and don't get a validation retry when
|
|
2708
|
+
// they don't). Any non-DDLS value still fails the guardrail below.
|
|
2709
|
+
const rawType = String(args.type ?? '');
|
|
2710
|
+
const type = normalizeObjectType(rawType || (action === 'impact' ? 'DDLS' : ''));
|
|
2592
2711
|
const name = String(args.name ?? '');
|
|
2593
2712
|
const maxDeps = Number(args.maxDeps ?? 20);
|
|
2594
2713
|
const depth = Math.min(Math.max(Number(args.depth ?? 1), 1), 3);
|
|
@@ -2624,6 +2743,42 @@ async function handleSAPContext(client, args, cachingLayer) {
|
|
|
2624
2743
|
const { source } = await cachingLayer.getSource(objType, objName, fetcher);
|
|
2625
2744
|
return source;
|
|
2626
2745
|
};
|
|
2746
|
+
if (action === 'impact') {
|
|
2747
|
+
if (type !== 'DDLS') {
|
|
2748
|
+
return errorResult('SAPContext(action="impact") supports DDLS only. For non-CDS objects, use SAPNavigate(action="references").');
|
|
2749
|
+
}
|
|
2750
|
+
const ddlSource = await cachedGet('DDLS', name, () => client.getDdls(name));
|
|
2751
|
+
const upstream = buildCdsUpstream(extractCdsDependencies(ddlSource));
|
|
2752
|
+
const includeIndirect = args.includeIndirect === true;
|
|
2753
|
+
let downstream = classifyCdsImpact([], { includeIndirect });
|
|
2754
|
+
const warnings = [];
|
|
2755
|
+
try {
|
|
2756
|
+
const whereUsed = await findWhereUsed(client.http, client.safety, objectUrlForType('DDLS', name));
|
|
2757
|
+
downstream = classifyCdsImpact(whereUsed, { includeIndirect });
|
|
2758
|
+
}
|
|
2759
|
+
catch (err) {
|
|
2760
|
+
if (err instanceof AdtApiError && [404, 405, 415, 501].includes(err.statusCode)) {
|
|
2761
|
+
warnings.push('Where-used endpoint not available on this system');
|
|
2762
|
+
}
|
|
2763
|
+
else {
|
|
2764
|
+
throw err;
|
|
2765
|
+
}
|
|
2766
|
+
}
|
|
2767
|
+
const upstreamCount = upstream.tables.length + upstream.views.length + upstream.associations.length + upstream.compositions.length;
|
|
2768
|
+
const response = {
|
|
2769
|
+
name,
|
|
2770
|
+
type: 'DDLS',
|
|
2771
|
+
upstream,
|
|
2772
|
+
downstream,
|
|
2773
|
+
summary: {
|
|
2774
|
+
upstreamCount,
|
|
2775
|
+
downstreamTotal: downstream.summary.total,
|
|
2776
|
+
downstreamDirect: downstream.summary.direct,
|
|
2777
|
+
},
|
|
2778
|
+
...(warnings.length > 0 ? { warnings } : {}),
|
|
2779
|
+
};
|
|
2780
|
+
return textResult(JSON.stringify(response, null, 2));
|
|
2781
|
+
}
|
|
2627
2782
|
// Get source — either provided or fetched from SAP
|
|
2628
2783
|
let source;
|
|
2629
2784
|
if (args.source) {
|
|
@@ -2692,6 +2847,45 @@ async function handleSAPContext(client, args, cachingLayer) {
|
|
|
2692
2847
|
const result = await compressContext(client, source, name, type, maxDeps, depth, abaplintVersion, cachingLayer);
|
|
2693
2848
|
return textResult(result.output);
|
|
2694
2849
|
}
|
|
2850
|
+
function buildCdsUpstream(deps) {
|
|
2851
|
+
const tableNames = new Set();
|
|
2852
|
+
const viewNames = new Set();
|
|
2853
|
+
const associationNames = new Set();
|
|
2854
|
+
const compositionNames = new Set();
|
|
2855
|
+
for (const dep of deps) {
|
|
2856
|
+
const upperName = dep.name.toUpperCase();
|
|
2857
|
+
if (dep.kind === 'association') {
|
|
2858
|
+
associationNames.add(upperName);
|
|
2859
|
+
continue;
|
|
2860
|
+
}
|
|
2861
|
+
if (dep.kind === 'composition') {
|
|
2862
|
+
compositionNames.add(upperName);
|
|
2863
|
+
continue;
|
|
2864
|
+
}
|
|
2865
|
+
if (dep.kind === 'projection_base') {
|
|
2866
|
+
viewNames.add(upperName);
|
|
2867
|
+
continue;
|
|
2868
|
+
}
|
|
2869
|
+
if (isLikelyCdsViewName(upperName)) {
|
|
2870
|
+
viewNames.add(upperName);
|
|
2871
|
+
}
|
|
2872
|
+
else {
|
|
2873
|
+
tableNames.add(upperName);
|
|
2874
|
+
}
|
|
2875
|
+
}
|
|
2876
|
+
return {
|
|
2877
|
+
tables: [...tableNames].sort().map((name) => ({ name })),
|
|
2878
|
+
views: [...viewNames].sort().map((name) => ({ name })),
|
|
2879
|
+
associations: [...associationNames].sort().map((name) => ({ name })),
|
|
2880
|
+
compositions: [...compositionNames].sort().map((name) => ({ name })),
|
|
2881
|
+
};
|
|
2882
|
+
}
|
|
2883
|
+
function isLikelyCdsViewName(name) {
|
|
2884
|
+
if (name.startsWith('/')) {
|
|
2885
|
+
return /\/[ICRPAZ][A-Z0-9_]*_/.test(name);
|
|
2886
|
+
}
|
|
2887
|
+
return /^(ZI_|ZC_|ZR_|ZP_|I_|C_|R_|P_)/.test(name);
|
|
2888
|
+
}
|
|
2695
2889
|
// ─── SAPManage Handler ────────────────────────────────────────────────
|
|
2696
2890
|
/** Cached feature status — populated on first probe */
|
|
2697
2891
|
let cachedFeatures;
|