arc-1 1.4.0 → 1.5.1
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 +1 -1
- package/dist/adt/abapgit.d.ts.map +1 -1
- package/dist/adt/abapgit.js +64 -7
- package/dist/adt/abapgit.js.map +1 -1
- package/dist/adt/aunit.js +4 -4
- package/dist/adt/aunit.js.map +1 -1
- package/dist/adt/class-structure.d.ts +4 -2
- package/dist/adt/class-structure.d.ts.map +1 -1
- package/dist/adt/class-structure.js +18 -9
- package/dist/adt/class-structure.js.map +1 -1
- package/dist/adt/client.d.ts +19 -53
- package/dist/adt/client.d.ts.map +1 -1
- package/dist/adt/client.js +72 -96
- package/dist/adt/client.js.map +1 -1
- package/dist/adt/codeintel.d.ts +1 -1
- package/dist/adt/codeintel.d.ts.map +1 -1
- package/dist/adt/codeintel.js +11 -4
- package/dist/adt/codeintel.js.map +1 -1
- package/dist/adt/config.d.ts +5 -0
- package/dist/adt/config.d.ts.map +1 -1
- package/dist/adt/config.js.map +1 -1
- package/dist/adt/crud.d.ts +3 -3
- package/dist/adt/crud.d.ts.map +1 -1
- package/dist/adt/crud.js +21 -6
- package/dist/adt/crud.js.map +1 -1
- package/dist/adt/data-source-policy.d.ts +21 -13
- package/dist/adt/data-source-policy.d.ts.map +1 -1
- package/dist/adt/data-source-policy.js +63 -114
- package/dist/adt/data-source-policy.js.map +1 -1
- package/dist/adt/ddic-xml.d.ts +9 -0
- package/dist/adt/ddic-xml.d.ts.map +1 -1
- package/dist/adt/ddic-xml.js +17 -3
- package/dist/adt/ddic-xml.js.map +1 -1
- package/dist/adt/devtools.js +3 -3
- package/dist/adt/devtools.js.map +1 -1
- package/dist/adt/diagnostics.js +4 -4
- package/dist/adt/diagnostics.js.map +1 -1
- package/dist/adt/enhancements.d.ts +7 -0
- package/dist/adt/enhancements.d.ts.map +1 -0
- package/dist/adt/enhancements.js +89 -0
- package/dist/adt/enhancements.js.map +1 -0
- package/dist/adt/errors.d.ts +19 -10
- package/dist/adt/errors.d.ts.map +1 -1
- package/dist/adt/errors.js +73 -53
- package/dist/adt/errors.js.map +1 -1
- package/dist/adt/fm-signature.d.ts +1 -1
- package/dist/adt/fm-signature.d.ts.map +1 -1
- package/dist/adt/fm-signature.js +9 -1
- package/dist/adt/fm-signature.js.map +1 -1
- package/dist/adt/http.d.ts +7 -27
- package/dist/adt/http.d.ts.map +1 -1
- package/dist/adt/http.js +34 -32
- package/dist/adt/http.js.map +1 -1
- package/dist/adt/internal-data-operations.d.ts +3 -2
- package/dist/adt/internal-data-operations.d.ts.map +1 -1
- package/dist/adt/internal-data-operations.js +8 -1
- package/dist/adt/internal-data-operations.js.map +1 -1
- package/dist/adt/legacy-content-handler.d.ts +3 -0
- package/dist/adt/legacy-content-handler.d.ts.map +1 -0
- package/dist/adt/legacy-content-handler.js +21 -0
- package/dist/adt/legacy-content-handler.js.map +1 -0
- package/dist/adt/lock-object.d.ts +92 -0
- package/dist/adt/lock-object.d.ts.map +1 -0
- package/dist/adt/lock-object.js +195 -0
- package/dist/adt/lock-object.js.map +1 -0
- package/dist/adt/rap-generate.d.ts +5 -1
- package/dist/adt/rap-generate.d.ts.map +1 -1
- package/dist/adt/rap-generate.js +112 -100
- package/dist/adt/rap-generate.js.map +1 -1
- package/dist/adt/server-driven.d.ts +42 -10
- package/dist/adt/server-driven.d.ts.map +1 -1
- package/dist/adt/server-driven.js +98 -18
- package/dist/adt/server-driven.js.map +1 -1
- package/dist/adt/source-precondition.d.ts +3 -0
- package/dist/adt/source-precondition.d.ts.map +1 -0
- package/dist/adt/source-precondition.js +12 -0
- package/dist/adt/source-precondition.js.map +1 -0
- package/dist/adt/text-search.js +5 -5
- package/dist/adt/text-search.js.map +1 -1
- package/dist/adt/transport.js +3 -3
- package/dist/adt/transport.js.map +1 -1
- package/dist/adt/types.d.ts +19 -1
- package/dist/adt/types.d.ts.map +1 -1
- package/dist/adt/user-agent.d.ts +4 -0
- package/dist/adt/user-agent.d.ts.map +1 -0
- package/dist/adt/user-agent.js +11 -0
- package/dist/adt/user-agent.js.map +1 -0
- package/dist/adt/xml-entities.d.ts +3 -0
- package/dist/adt/xml-entities.d.ts.map +1 -0
- package/dist/adt/xml-entities.js +19 -0
- package/dist/adt/xml-entities.js.map +1 -0
- package/dist/adt/xml-parser.d.ts +7 -30
- package/dist/adt/xml-parser.d.ts.map +1 -1
- package/dist/adt/xml-parser.js +25 -54
- package/dist/adt/xml-parser.js.map +1 -1
- package/dist/authz/policy.d.ts.map +1 -1
- package/dist/authz/policy.js +2 -0
- package/dist/authz/policy.js.map +1 -1
- package/dist/cache/caching-layer.d.ts.map +1 -1
- package/dist/cache/caching-layer.js +7 -11
- package/dist/cache/caching-layer.js.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/context/compressor.d.ts.map +1 -1
- package/dist/context/compressor.js +5 -25
- package/dist/context/compressor.js.map +1 -1
- package/dist/context/deps.d.ts.map +1 -1
- package/dist/context/deps.js +50 -4
- package/dist/context/deps.js.map +1 -1
- package/dist/context/grep.d.ts +14 -0
- package/dist/context/grep.d.ts.map +1 -1
- package/dist/context/grep.js +49 -0
- package/dist/context/grep.js.map +1 -1
- package/dist/context/unit-surgery.d.ts +3 -1
- package/dist/context/unit-surgery.d.ts.map +1 -1
- package/dist/context/unit-surgery.js +52 -5
- package/dist/context/unit-surgery.js.map +1 -1
- package/dist/handlers/activate.d.ts +1 -1
- package/dist/handlers/activate.d.ts.map +1 -1
- package/dist/handlers/activate.js +23 -35
- package/dist/handlers/activate.js.map +1 -1
- package/dist/handlers/diagnose.d.ts.map +1 -1
- package/dist/handlers/diagnose.js +8 -29
- package/dist/handlers/diagnose.js.map +1 -1
- package/dist/handlers/dispatch.d.ts.map +1 -1
- package/dist/handlers/dispatch.js +21 -5
- package/dist/handlers/dispatch.js.map +1 -1
- package/dist/handlers/editable-source.d.ts +6 -0
- package/dist/handlers/editable-source.d.ts.map +1 -0
- package/dist/handlers/editable-source.js +53 -0
- package/dist/handlers/editable-source.js.map +1 -0
- package/dist/handlers/feature-cache.d.ts +2 -0
- package/dist/handlers/feature-cache.d.ts.map +1 -1
- package/dist/handlers/feature-cache.js +8 -0
- package/dist/handlers/feature-cache.js.map +1 -1
- package/dist/handlers/hyperfocused.js +1 -1
- package/dist/handlers/hyperfocused.js.map +1 -1
- package/dist/handlers/lint.js +1 -1
- package/dist/handlers/lint.js.map +1 -1
- package/dist/handlers/navigate.d.ts.map +1 -1
- package/dist/handlers/navigate.js +12 -2
- package/dist/handlers/navigate.js.map +1 -1
- package/dist/handlers/object-types.d.ts +2 -3
- package/dist/handlers/object-types.d.ts.map +1 -1
- package/dist/handlers/object-types.js +13 -5
- package/dist/handlers/object-types.js.map +1 -1
- package/dist/handlers/read.d.ts.map +1 -1
- package/dist/handlers/read.js +38 -7
- package/dist/handlers/read.js.map +1 -1
- package/dist/handlers/schemas.d.ts +39 -0
- package/dist/handlers/schemas.d.ts.map +1 -1
- package/dist/handlers/schemas.js +50 -7
- package/dist/handlers/schemas.js.map +1 -1
- package/dist/handlers/syntax.d.ts +5 -0
- package/dist/handlers/syntax.d.ts.map +1 -0
- package/dist/handlers/syntax.js +35 -0
- package/dist/handlers/syntax.js.map +1 -0
- package/dist/handlers/tool-descriptions.d.ts.map +1 -1
- package/dist/handlers/tool-descriptions.js +8 -6
- package/dist/handlers/tool-descriptions.js.map +1 -1
- package/dist/handlers/tool-registry.d.ts +4 -4
- package/dist/handlers/tool-registry.d.ts.map +1 -1
- package/dist/handlers/tool-registry.js +4 -0
- package/dist/handlers/tool-registry.js.map +1 -1
- package/dist/handlers/tools.d.ts +1 -16
- package/dist/handlers/tools.d.ts.map +1 -1
- package/dist/handlers/tools.js +44 -55
- package/dist/handlers/tools.js.map +1 -1
- package/dist/handlers/transport.d.ts.map +1 -1
- package/dist/handlers/transport.js +17 -3
- package/dist/handlers/transport.js.map +1 -1
- package/dist/handlers/where-used.d.ts.map +1 -1
- package/dist/handlers/where-used.js +0 -5
- package/dist/handlers/where-used.js.map +1 -1
- package/dist/handlers/write/class-edit.d.ts +16 -0
- package/dist/handlers/write/class-edit.d.ts.map +1 -0
- package/dist/handlers/write/class-edit.js +55 -0
- package/dist/handlers/write/class-edit.js.map +1 -0
- package/dist/handlers/write/class-surgery.d.ts +2 -2
- package/dist/handlers/write/class-surgery.d.ts.map +1 -1
- package/dist/handlers/write/class-surgery.js +189 -220
- package/dist/handlers/write/class-surgery.js.map +1 -1
- package/dist/handlers/write/context.d.ts +1 -8
- package/dist/handlers/write/context.d.ts.map +1 -1
- package/dist/handlers/write/create.d.ts.map +1 -1
- package/dist/handlers/write/create.js +11 -4
- package/dist/handlers/write/create.js.map +1 -1
- package/dist/handlers/write/metadata-update.d.ts +4 -0
- package/dist/handlers/write/metadata-update.d.ts.map +1 -0
- package/dist/handlers/write/metadata-update.js +58 -0
- package/dist/handlers/write/metadata-update.js.map +1 -0
- package/dist/handlers/write/rap.d.ts.map +1 -1
- package/dist/handlers/write/rap.js +132 -155
- package/dist/handlers/write/rap.js.map +1 -1
- package/dist/handlers/write/unit-surgery.d.ts +2 -2
- package/dist/handlers/write/unit-surgery.d.ts.map +1 -1
- package/dist/handlers/write/unit-surgery.js +14 -8
- package/dist/handlers/write/unit-surgery.js.map +1 -1
- package/dist/handlers/write/update-delete.d.ts.map +1 -1
- package/dist/handlers/write/update-delete.js +34 -82
- package/dist/handlers/write/update-delete.js.map +1 -1
- package/dist/handlers/write-helpers.d.ts +3 -2
- package/dist/handlers/write-helpers.d.ts.map +1 -1
- package/dist/handlers/write-helpers.js +123 -18
- package/dist/handlers/write-helpers.js.map +1 -1
- package/dist/handlers/write.d.ts.map +1 -1
- package/dist/handlers/write.js +15 -29
- package/dist/handlers/write.js.map +1 -1
- package/dist/public/read-only-client.d.ts +6 -0
- package/dist/public/read-only-client.d.ts.map +1 -0
- package/dist/public/read-only-client.js +66 -0
- package/dist/public/read-only-client.js.map +1 -0
- package/dist/public/types.d.ts +2 -13
- package/dist/public/types.d.ts.map +1 -1
- package/dist/server/audit.d.ts +6 -1
- package/dist/server/audit.d.ts.map +1 -1
- package/dist/server/audit.js.map +1 -1
- package/dist/server/config.d.ts.map +1 -1
- package/dist/server/config.js +3 -0
- package/dist/server/config.js.map +1 -1
- package/dist/server/deny-actions.d.ts +2 -1
- package/dist/server/deny-actions.d.ts.map +1 -1
- package/dist/server/deny-actions.js +13 -2
- package/dist/server/deny-actions.js.map +1 -1
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +4 -0
- package/dist/server/http.js.map +1 -1
- package/dist/server/logger.d.ts +3 -3
- package/dist/server/logger.d.ts.map +1 -1
- package/dist/server/logger.js +7 -7
- package/dist/server/logger.js.map +1 -1
- package/dist/server/multi-target-basic-auth.d.ts.map +1 -1
- package/dist/server/multi-target-basic-auth.js +1 -0
- package/dist/server/multi-target-basic-auth.js.map +1 -1
- package/dist/server/multi-target-runtime.d.ts.map +1 -1
- package/dist/server/multi-target-runtime.js +1 -0
- package/dist/server/multi-target-runtime.js.map +1 -1
- package/dist/server/plugin-loader.d.ts.map +1 -1
- package/dist/server/plugin-loader.js +1 -3
- package/dist/server/plugin-loader.js.map +1 -1
- package/dist/server/safe-http-client.d.ts +6 -12
- package/dist/server/safe-http-client.d.ts.map +1 -1
- package/dist/server/safe-http-client.js +28 -63
- package/dist/server/safe-http-client.js.map +1 -1
- package/dist/server/server.d.ts +5 -4
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +58 -51
- package/dist/server/server.js.map +1 -1
- package/dist/server/types.d.ts +1 -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/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +3 -0
- package/dist/version.js.map +1 -0
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-target-runtime.js","sourceRoot":"","sources":["../../src/server/multi-target-runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"multi-target-runtime.js","sourceRoot":"","sources":["../../src/server/multi-target-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-loader.d.ts","sourceRoot":"","sources":["../../src/server/plugin-loader.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAU,oBAAoB,EAAe,MAAM,oBAAoB,CAAC;AACpF,OAAO,KAAK,EAAsC,YAAY,EAAc,MAAM,8BAA8B,CAAC;AAIjH,8FAA8F;AAC9F,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"plugin-loader.d.ts","sourceRoot":"","sources":["../../src/server/plugin-loader.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAU,oBAAoB,EAAe,MAAM,oBAAoB,CAAC;AACpF,OAAO,KAAK,EAAsC,YAAY,EAAc,MAAM,8BAA8B,CAAC;AAIjH,8FAA8F;AAC9F,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAuGD,wGAAwG;AACxG,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,GAAG,IAAI,CAY9G;AAuBD;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CA0BlG"}
|
|
@@ -80,9 +80,7 @@ function makePluginInvoke(def) {
|
|
|
80
80
|
};
|
|
81
81
|
}
|
|
82
82
|
const publicCtx = {
|
|
83
|
-
//
|
|
84
|
-
// not just type-hidden); `http` is the gated read-only surface — the only sanctioned low-level
|
|
85
|
-
// HTTP path. Both close review B1. See safe-http-client.ts.
|
|
83
|
+
// Explicit plain-read facade; the HTTP and execution surfaces have separate gates.
|
|
86
84
|
client: createReadOnlyAdtClient(dispatchCtx.client),
|
|
87
85
|
http: createSafeHttpClient(dispatchCtx.client.http, dispatchCtx.client.safety, def.name, def.policy.scope, dispatchCtx.config.allowPluginRawWrites),
|
|
88
86
|
run: createPluginRunOps(dispatchCtx.client.http, dispatchCtx.client.safety, dispatchCtx.config.allowPluginExecute, def.policy.scope, def.name),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-loader.js","sourceRoot":"","sources":["../../src/server/plugin-loader.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"plugin-loader.js","sourceRoot":"","sources":["../../src/server/plugin-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,8 @@ import type { AdtClient } from '../adt/client.js';
|
|
|
2
2
|
import type { AdtHttpClient, AdtResponse } from '../adt/http.js';
|
|
3
3
|
import { type SafetyConfig } from '../adt/safety.js';
|
|
4
4
|
import { type Scope } from '../authz/policy.js';
|
|
5
|
-
import
|
|
5
|
+
import { type ReadOnlyAdtClient } from '../public/read-only-client.js';
|
|
6
|
+
import type { PluginRunOps } from '../public/types.js';
|
|
6
7
|
/** The gated HTTP surface a plugin tool receives as `ctx.http`. GET/HEAD always; POST/PUT/DELETE to
|
|
7
8
|
* NON-ADT paths only when the server opts in — see {@link createSafeHttpClient}. */
|
|
8
9
|
export interface SafeHttpClient {
|
|
@@ -22,19 +23,12 @@ export interface SafeHttpClient {
|
|
|
22
23
|
* @param allowRawWrites the server opt-in (`SAP_ALLOW_PLUGIN_RAW_WRITES`) for non-ADT writes
|
|
23
24
|
*/
|
|
24
25
|
export declare function createSafeHttpClient(underlying: AdtHttpClient, safety: SafetyConfig, opLabel: string, toolScope: Scope, allowRawWrites: boolean): SafeHttpClient;
|
|
25
|
-
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* omission at runtime, so `(ctx.client as any).http.post(...)` resolves to `undefined` (review B1).
|
|
29
|
-
*
|
|
30
|
-
* Read methods keep working: each is returned bound to the REAL client, so a method's internal
|
|
31
|
-
* `this.http` / `this.safety` use hits the real instance directly (never the Proxy) — only
|
|
32
|
-
* EXTERNAL access to a blocked key is denied. Mutating traps are closed so a plugin can't repair
|
|
33
|
-
* the object either.
|
|
34
|
-
*/
|
|
26
|
+
/** Plain reads only: new client methods are private to ARC-1 until explicitly reviewed here.
|
|
27
|
+
* Bind readers to the real per-request client so internal identity and safety checks still work.
|
|
28
|
+
* This facade limits supported capabilities; plugins remain trusted in-process code, not a sandbox. */
|
|
35
29
|
export declare function createReadOnlyAdtClient(client: AdtClient): ReadOnlyAdtClient;
|
|
36
30
|
/**
|
|
37
|
-
* Build the `ctx.run` named-operation surface.
|
|
31
|
+
* Build the `ctx.run` named-operation surface. These operations EXECUTE arbitrary ABAP, so the
|
|
38
32
|
* gate is the strictest in the framework. Classes and reports can mutate anything, so they require
|
|
39
33
|
* ALL of: the dedicated opt-in
|
|
40
34
|
* `SAP_ALLOW_PLUGIN_EXECUTE`; `allowWrites` (via `checkOperation`, since execution is a mutation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe-http-client.d.ts","sourceRoot":"","sources":["../../src/server/safe-http-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"safe-http-client.d.ts","sourceRoot":"","sources":["../../src/server/safe-http-client.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAyD,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC5G,OAAO,EAAoB,KAAK,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAyB,KAAK,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAC9F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;qFACqF;AACrF,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1E,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3E,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAChH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9G,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CAC9E;AAyDD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,aAAa,EACzB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,KAAK,EAChB,cAAc,EAAE,OAAO,GACtB,cAAc,CAiDhB;AAED;;uGAEuG;AACvG,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,iBAAiB,CAS5E;AAOD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,aAAa,EACzB,MAAM,EAAE,YAAY,EACpB,kBAAkB,EAAE,OAAO,EAC3B,SAAS,EAAE,KAAK,EAChB,OAAO,EAAE,MAAM,GACd,YAAY,CAyCd"}
|
|
@@ -11,15 +11,15 @@
|
|
|
11
11
|
// us — those wait for the v2 package-aware `ctx.write` vocabulary. (`SAP_ALLOWED_PACKAGES` does
|
|
12
12
|
// not apply to OData/ICF paths — there is no ABAP package in them.)
|
|
13
13
|
//
|
|
14
|
-
// 2. `ctx.client` —
|
|
15
|
-
//
|
|
16
|
-
// enforces the same omission at RUNTIME via a Proxy, so the cast yields `undefined`.
|
|
14
|
+
// 2. `ctx.client` — a frozen facade of explicitly reviewed plain reads. The same key list
|
|
15
|
+
// defines its runtime surface and public type; new AdtClient methods do not appear implicitly.
|
|
17
16
|
//
|
|
18
17
|
// CSRF, cookies, PP auth, sessions, the semaphore all ride the underlying client unchanged.
|
|
19
18
|
// See docs/research/2026-06-17-extension-framework-spec.md §5.
|
|
20
|
-
import { AdtSafetyError } from '../adt/errors.js';
|
|
19
|
+
import { AdtApiError, AdtNetworkError, AdtSafetyError } from '../adt/errors.js';
|
|
21
20
|
import { checkOperation, OperationType } from '../adt/safety.js';
|
|
22
21
|
import { hasRequiredScope } from '../authz/policy.js';
|
|
22
|
+
import { READ_ONLY_CLIENT_KEYS } from '../public/read-only-client.js';
|
|
23
23
|
/**
|
|
24
24
|
* True for any path SAP would route to the ADT namespace. Must check the path SAP *actually* routes,
|
|
25
25
|
* not the raw argument — so it is computed exactly the way `AdtHttpClient.buildUrl` builds the request
|
|
@@ -56,6 +56,19 @@ function isAdtPath(path) {
|
|
|
56
56
|
.replace(/\/{2,}/g, '/')
|
|
57
57
|
.startsWith('/sap/bc/adt/');
|
|
58
58
|
}
|
|
59
|
+
/** Services and ABAP execution may commit before an error response; callers must apply their gates first. */
|
|
60
|
+
async function postWithoutTransientReplay(underlying, path, body, contentType, headers) {
|
|
61
|
+
try {
|
|
62
|
+
return await underlying.post(path, body, contentType, headers, { retryTransientErrors: false });
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
if (error instanceof AdtNetworkError ||
|
|
66
|
+
(error instanceof AdtApiError && (error.statusCode === 429 || error.isServerError))) {
|
|
67
|
+
error.pluginPostOutcome = 'unknown';
|
|
68
|
+
}
|
|
69
|
+
throw error;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
59
72
|
/**
|
|
60
73
|
* Wrap a per-user `AdtHttpClient` in the gated surface for one tool call.
|
|
61
74
|
*
|
|
@@ -97,7 +110,7 @@ export function createSafeHttpClient(underlying, safety, opLabel, toolScope, all
|
|
|
97
110
|
},
|
|
98
111
|
async post(path, body, contentType, headers) {
|
|
99
112
|
gateWrite(OperationType.Create, path);
|
|
100
|
-
return underlying
|
|
113
|
+
return postWithoutTransientReplay(underlying, path, body, contentType, headers);
|
|
101
114
|
},
|
|
102
115
|
async put(path, body, contentType, headers) {
|
|
103
116
|
gateWrite(OperationType.Update, path);
|
|
@@ -109,69 +122,21 @@ export function createSafeHttpClient(underlying, safety, opLabel, toolScope, all
|
|
|
109
122
|
},
|
|
110
123
|
};
|
|
111
124
|
}
|
|
112
|
-
/**
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
'safety', // the effective safety ref
|
|
116
|
-
'withSafety', // the safety-escalation clone hatch
|
|
117
|
-
'getPackageHierarchyResolver',
|
|
118
|
-
'invalidatePackageHierarchy',
|
|
119
|
-
// Scope-escalating reads: these `checkOperation` against `data`/`sql`, not `read`. A plugin
|
|
120
|
-
// declaring only `scope: 'read'` must not reach them via `ctx.client` (the Omit was a type-only
|
|
121
|
-
// narrowing — without these a read tool could call data/SQL whenever the effective safety allowed
|
|
122
|
-
// it). v1 plugins have no data/SQL surface at all (ctx.http is GET-only too); a scoped ctx.data /
|
|
123
|
-
// ctx.sql facade is a v2 item.
|
|
124
|
-
'getTableContents', // OperationType.Query → `data`
|
|
125
|
-
'runQuery', // OperationType.FreeSQL → `sql`
|
|
126
|
-
'runTableQuery', // OperationType.Query → `data`
|
|
127
|
-
]);
|
|
128
|
-
/**
|
|
129
|
-
* Runtime read-only view of an `AdtClient`, handed to plugins as `ctx.client`. The static type
|
|
130
|
-
* `ReadOnlyAdtClient` hides the escape hatches at compile time; this Proxy enforces the SAME
|
|
131
|
-
* omission at runtime, so `(ctx.client as any).http.post(...)` resolves to `undefined` (review B1).
|
|
132
|
-
*
|
|
133
|
-
* Read methods keep working: each is returned bound to the REAL client, so a method's internal
|
|
134
|
-
* `this.http` / `this.safety` use hits the real instance directly (never the Proxy) — only
|
|
135
|
-
* EXTERNAL access to a blocked key is denied. Mutating traps are closed so a plugin can't repair
|
|
136
|
-
* the object either.
|
|
137
|
-
*/
|
|
125
|
+
/** Plain reads only: new client methods are private to ARC-1 until explicitly reviewed here.
|
|
126
|
+
* Bind readers to the real per-request client so internal identity and safety checks still work.
|
|
127
|
+
* This facade limits supported capabilities; plugins remain trusted in-process code, not a sandbox. */
|
|
138
128
|
export function createReadOnlyAdtClient(client) {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
return undefined;
|
|
144
|
-
const value = Reflect.get(target, prop, target);
|
|
145
|
-
return typeof value === 'function' ? value.bind(target) : value;
|
|
146
|
-
},
|
|
147
|
-
has(target, prop) {
|
|
148
|
-
if (isBlocked(prop))
|
|
149
|
-
return false;
|
|
150
|
-
return Reflect.has(target, prop);
|
|
151
|
-
},
|
|
152
|
-
// `http`/`safety` are own data properties, so without these two traps a plugin could read the
|
|
153
|
-
// raw client back via `Object.getOwnPropertyDescriptor(ctx.client, 'http').value` (the `get`
|
|
154
|
-
// trap alone does NOT cover the descriptor path) or enumerate it. They are configurable on the
|
|
155
|
-
// target (TS `readonly` is compile-time only), so hiding them violates no Proxy invariant.
|
|
156
|
-
getOwnPropertyDescriptor(target, prop) {
|
|
157
|
-
if (isBlocked(prop))
|
|
158
|
-
return undefined;
|
|
159
|
-
return Reflect.getOwnPropertyDescriptor(target, prop);
|
|
160
|
-
},
|
|
161
|
-
ownKeys(target) {
|
|
162
|
-
return Reflect.ownKeys(target).filter((k) => !isBlocked(k));
|
|
163
|
-
},
|
|
164
|
-
set: () => false,
|
|
165
|
-
defineProperty: () => false,
|
|
166
|
-
deleteProperty: () => false,
|
|
167
|
-
});
|
|
129
|
+
return Object.freeze(Object.fromEntries(READ_ONLY_CLIENT_KEYS.map((key) => {
|
|
130
|
+
const value = client[key];
|
|
131
|
+
return [key, typeof value === 'function' ? value.bind(client) : value];
|
|
132
|
+
})));
|
|
168
133
|
}
|
|
169
134
|
/** ABAP object name (class): letters/digits/underscore/slash, ≤ 40 chars. Blocks path injection. */
|
|
170
135
|
const ABAP_CLASS_NAME = /^[A-Za-z_/][A-Za-z0-9_/]{0,39}$/;
|
|
171
136
|
/** ABAP report name: optional namespace plus a 1–40 character repository name. */
|
|
172
137
|
const ABAP_PROGRAM_NAME = /^(?=.{1,40}$)(?:\/[A-Za-z0-9_]+\/)?[A-Za-z0-9_$]+$/;
|
|
173
138
|
/**
|
|
174
|
-
* Build the `ctx.run` named-operation surface.
|
|
139
|
+
* Build the `ctx.run` named-operation surface. These operations EXECUTE arbitrary ABAP, so the
|
|
175
140
|
* gate is the strictest in the framework. Classes and reports can mutate anything, so they require
|
|
176
141
|
* ALL of: the dedicated opt-in
|
|
177
142
|
* `SAP_ALLOW_PLUGIN_EXECUTE`; `allowWrites` (via `checkOperation`, since execution is a mutation
|
|
@@ -195,7 +160,7 @@ export function createPluginRunOps(underlying, safety, allowPluginExecute, toolS
|
|
|
195
160
|
if (typeof className !== 'string' || !ABAP_CLASS_NAME.test(className)) {
|
|
196
161
|
throw new AdtSafetyError(`Extension tool '${opLabel}': invalid ABAP class name '${className}'.`);
|
|
197
162
|
}
|
|
198
|
-
const res = await underlying
|
|
163
|
+
const res = await postWithoutTransientReplay(underlying, `/sap/bc/adt/oo/classrun/${encodeURIComponent(className.toLowerCase())}`);
|
|
199
164
|
return res.body;
|
|
200
165
|
},
|
|
201
166
|
async programRun(programName) {
|
|
@@ -203,7 +168,7 @@ export function createPluginRunOps(underlying, safety, allowPluginExecute, toolS
|
|
|
203
168
|
if (typeof programName !== 'string' || !ABAP_PROGRAM_NAME.test(programName)) {
|
|
204
169
|
throw new AdtSafetyError(`Extension tool '${opLabel}': invalid ABAP program name '${programName}'.`);
|
|
205
170
|
}
|
|
206
|
-
const res = await underlying
|
|
171
|
+
const res = await postWithoutTransientReplay(underlying, `/sap/bc/adt/programs/programrun/${encodeURIComponent(programName.toLowerCase())}`);
|
|
207
172
|
return res.body;
|
|
208
173
|
},
|
|
209
174
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe-http-client.js","sourceRoot":"","sources":["../../src/server/safe-http-client.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,EAAE;AACF,iGAAiG;AACjG,yEAAyE;AACzE,EAAE;AACF,kGAAkG;AAClG,mGAAmG;AACnG,+FAA+F;AAC/F,sGAAsG;AACtG,sGAAsG;AACtG,qGAAqG;AACrG,yEAAyE;AACzE,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"safe-http-client.js","sourceRoot":"","sources":["../../src/server/safe-http-client.ts"],"names":[],"mappings":"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"}
|
package/dist/server/server.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* MCP Server for ARC-1.
|
|
3
|
-
*
|
|
4
2
|
* Creates and starts the MCP server with 12 intent-based tools.
|
|
5
3
|
* Supports two transports:
|
|
6
4
|
* - stdio (default): for local MCP clients (Claude Desktop, Claude Code, Cursor)
|
|
@@ -17,8 +15,7 @@ import { getToolDefinitions, type ToolDefinition, type ToolDefinitionOptions } f
|
|
|
17
15
|
import { type McpRateLimiter } from './mcp-rate-limit.js';
|
|
18
16
|
import { type MultiTargetServerOptions } from './multi-target-server.js';
|
|
19
17
|
import type { ServerConfig } from './types.js';
|
|
20
|
-
|
|
21
|
-
export declare const VERSION = "1.4.0";
|
|
18
|
+
export { VERSION } from '../version.js';
|
|
22
19
|
export declare function resolveNullableOptionals(config: ServerConfig, client?: Implementation): boolean;
|
|
23
20
|
export declare function getToolDefinitionOptions(config: ServerConfig, client?: Implementation): ToolDefinitionOptions;
|
|
24
21
|
export declare function getConfiguredToolDefinitions(config: ServerConfig, textSearchAvailable?: boolean, resolvedFeatures?: Parameters<typeof getToolDefinitions>[2], client?: Implementation): ToolDefinition[];
|
|
@@ -123,7 +120,11 @@ export interface CreateServerOptions {
|
|
|
123
120
|
dataResultSemaphore?: Semaphore;
|
|
124
121
|
mcpRateLimiter?: McpRateLimiter;
|
|
125
122
|
multiTarget?: MultiTargetServerOptions;
|
|
123
|
+
/** Shared SAP transport (cookies, CSRF token); each request still gets its own AdtClient and caches. */
|
|
124
|
+
defaultHttp?: AdtClient['http'];
|
|
126
125
|
}
|
|
126
|
+
/** Maximum age when selecting a shared transport for a new HTTP request; not a ticket lifetime (R21). */
|
|
127
|
+
export declare const SHARED_TRANSPORT_MAX_AGE_MS: number;
|
|
127
128
|
export declare function createServer(config: ServerConfig, options?: CreateServerOptions): Server;
|
|
128
129
|
/**
|
|
129
130
|
* Create a CachingLayer based on config.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
|
package/dist/server/server.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* MCP Server for ARC-1.
|
|
3
|
-
*
|
|
4
2
|
* Creates and starts the MCP server with 12 intent-based tools.
|
|
5
3
|
* Supports two transports:
|
|
6
4
|
* - stdio (default): for local MCP clients (Claude Desktop, Claude Code, Cursor)
|
|
@@ -22,6 +20,7 @@ import { MemoryCache } from '../cache/memory.js';
|
|
|
22
20
|
import { getToolRegistry, handleToolCall } from '../handlers/dispatch.js';
|
|
23
21
|
import { getCachedDiscovery, getCachedFeatures, setCachedDiscovery, setCachedFeatures, } from '../handlers/feature-cache.js';
|
|
24
22
|
import { getToolDefinitions } from '../handlers/tools.js';
|
|
23
|
+
import { VERSION } from '../version.js';
|
|
25
24
|
import { logAuthSummary } from './auth-summary.js';
|
|
26
25
|
import { API_KEY_PROFILES } from './config.js';
|
|
27
26
|
import { generateRequestId } from './context.js';
|
|
@@ -45,8 +44,7 @@ import { FileSink } from './sinks/file.js';
|
|
|
45
44
|
import { filterToolsByAuthScope } from './tool-auth.js';
|
|
46
45
|
import { startLocalUiServer } from './ui.js';
|
|
47
46
|
import { UiLogBufferSink } from './ui-log-buffer.js';
|
|
48
|
-
|
|
49
|
-
export const VERSION = '1.4.0'; // x-release-please-version
|
|
47
|
+
export { VERSION } from '../version.js';
|
|
50
48
|
// Soft warning for an unusually large served tools/list. It is re-sent on every conversation (a
|
|
51
49
|
// recurring token + latency cost), and some MCP clients cap tool-list size. CI's
|
|
52
50
|
// check-tool-schema-budget guards the built-in surface, but plugin (Custom_*) tools are added at
|
|
@@ -151,6 +149,7 @@ export function buildAdtConfig(config, btpProxy, bearerTokenProvider, opts, adtS
|
|
|
151
149
|
baseUrl: config.url,
|
|
152
150
|
client: config.client,
|
|
153
151
|
language: config.language,
|
|
152
|
+
userAgent: config.userAgent,
|
|
154
153
|
insecure: config.insecure,
|
|
155
154
|
gzipDataPreviewBody: config.gzipDataPreviewBody,
|
|
156
155
|
disableSaml: config.disableSaml2,
|
|
@@ -324,6 +323,7 @@ export function applyPerUserAuthTokens(adtConfig, authTokens, displayUsername, d
|
|
|
324
323
|
}
|
|
325
324
|
adtConfig.username = displayUsername;
|
|
326
325
|
adtConfig.password = undefined;
|
|
326
|
+
adtConfig.http = undefined; // An existing transport can carry another identity's login cookies.
|
|
327
327
|
return adtConfig;
|
|
328
328
|
}
|
|
329
329
|
/**
|
|
@@ -509,6 +509,10 @@ export function formatStartupAuthPreflightToolError(preflight) {
|
|
|
509
509
|
`Preflight endpoint: ${preflight.endpoint}\n` +
|
|
510
510
|
`Checked at: ${preflight.checkedAt}`);
|
|
511
511
|
}
|
|
512
|
+
// Mark startup-401 cookies stale once per transport, preserving cookies refreshed by earlier HTTP calls.
|
|
513
|
+
const staleCookieTransports = new WeakSet();
|
|
514
|
+
/** Maximum age when selecting a shared transport for a new HTTP request; not a ticket lifetime (R21). */
|
|
515
|
+
export const SHARED_TRANSPORT_MAX_AGE_MS = 10 * 60_000;
|
|
512
516
|
export function createServer(config, options = {}) {
|
|
513
517
|
const { btpProxy, btpConfig, bearerTokenProvider, cachingLayer, startupProbePromise, startupAuthPreflightPromise, adtSemaphore, dataResultSemaphore, mcpRateLimiter, multiTarget, } = options;
|
|
514
518
|
const server = new Server({ name: config.serverName, version: VERSION }, {
|
|
@@ -518,20 +522,13 @@ export function createServer(config, options = {}) {
|
|
|
518
522
|
: buildServerInstructions(config.systemLabel),
|
|
519
523
|
});
|
|
520
524
|
const apiKeyProvenanceVerifier = createConfiguredApiKeyVerifier(config);
|
|
521
|
-
//
|
|
522
|
-
// Passes the shared server-wide semaphore so per-user PP clients (created at request
|
|
523
|
-
// time) share the same Layer 3 concurrency cap.
|
|
525
|
+
// Default ADT client (startup-time credentials or OAuth bearer); per-user PP clients share its semaphore.
|
|
524
526
|
const defaultClient = multiTarget
|
|
525
527
|
? undefined
|
|
526
|
-
: new AdtClient(
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
// startup and is unaware. Without explicit propagation, the first real tool call would
|
|
531
|
-
// re-emit the same stale cookies and hit 401 again before the lazy reload triggers,
|
|
532
|
-
// wasting one round-trip per startup-stale-cookie cycle. We propagate the stale state
|
|
533
|
-
// once on first tool call — idempotent flag keeps later calls O(1).
|
|
534
|
-
let preflightStalePropagated = false;
|
|
528
|
+
: new AdtClient({
|
|
529
|
+
...buildAdtConfig(config, btpProxy, bearerTokenProvider, undefined, adtSemaphore, dataResultSemaphore),
|
|
530
|
+
http: options.defaultHttp,
|
|
531
|
+
});
|
|
535
532
|
let schemaNullableAutoClientInfoLogged = false;
|
|
536
533
|
// Register tool listing — filtered by user's scopes when auth is active
|
|
537
534
|
server.setRequestHandler(ListToolsRequestSchema, async (_request, extra) => {
|
|
@@ -637,12 +634,10 @@ export function createServer(config, options = {}) {
|
|
|
637
634
|
isError: true,
|
|
638
635
|
};
|
|
639
636
|
}
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
defaultClient?.http.markCookiesStale();
|
|
645
|
-
preflightStalePropagated = true;
|
|
637
|
+
const staleStartupCookies = startupAuth.status === 'inconclusive' && startupAuth.statusCode === 401;
|
|
638
|
+
if (staleStartupCookies && defaultClient && !staleCookieTransports.has(defaultClient.http)) {
|
|
639
|
+
defaultClient.http.markCookiesStale();
|
|
640
|
+
staleCookieTransports.add(defaultClient.http);
|
|
646
641
|
}
|
|
647
642
|
}
|
|
648
643
|
// Principal propagation: create per-user ADT client if enabled and user JWT available.
|
|
@@ -847,13 +842,41 @@ export async function createCachingLayer(config) {
|
|
|
847
842
|
* Create and start the MCP server.
|
|
848
843
|
*/
|
|
849
844
|
export async function createAndStartServer(config, sources) {
|
|
850
|
-
initLogger(config.logFormat, config.
|
|
845
|
+
initLogger(config.logFormat, config.logLevel);
|
|
851
846
|
const startedAt = new Date().toISOString();
|
|
852
847
|
const uiLogBuffer = config.uiMode !== 'off' ? new UiLogBufferSink() : undefined;
|
|
853
848
|
if (uiLogBuffer) {
|
|
854
849
|
logger.addSink(uiLogBuffer);
|
|
855
850
|
}
|
|
856
851
|
logAuthSummary(config);
|
|
852
|
+
// Load the XSUAA binding before plugins, UI listeners or SAP traffic so a failure stops startup cleanly.
|
|
853
|
+
let xsuaaCredentials;
|
|
854
|
+
if (config.transport === 'http-streamable' && config.xsuaaAuth) {
|
|
855
|
+
try {
|
|
856
|
+
const xsenv = await import('@sap/xsenv');
|
|
857
|
+
const services = xsenv.getServices({ uaa: { tag: 'xsuaa' } });
|
|
858
|
+
const uaa = services.uaa;
|
|
859
|
+
xsuaaCredentials = {
|
|
860
|
+
url: uaa.url,
|
|
861
|
+
clientid: uaa.clientid,
|
|
862
|
+
clientsecret: uaa.clientsecret,
|
|
863
|
+
xsappname: uaa.xsappname,
|
|
864
|
+
uaadomain: uaa.uaadomain,
|
|
865
|
+
};
|
|
866
|
+
logger.info('XSUAA credentials loaded', {
|
|
867
|
+
xsappname: xsuaaCredentials.xsappname,
|
|
868
|
+
url: xsuaaCredentials.url,
|
|
869
|
+
});
|
|
870
|
+
}
|
|
871
|
+
catch (err) {
|
|
872
|
+
// Fail closed: continuing without credentials would serve /mcp unauthenticated.
|
|
873
|
+
logger.error('Failed to load XSUAA credentials — refusing to start', {
|
|
874
|
+
error: err instanceof Error ? err.message : String(err),
|
|
875
|
+
});
|
|
876
|
+
const flag = config.multiTargetEndpoints ? 'ARC1_MULTI_TARGET_ENDPOINTS' : 'SAP_XSUAA_AUTH';
|
|
877
|
+
throw new Error(`${flag}=true requires a valid bound XSUAA service.`);
|
|
878
|
+
}
|
|
879
|
+
}
|
|
857
880
|
logger.info('Runtime memory envelope', runtimeMemoryEnvelope());
|
|
858
881
|
// Effective-policy log + contradiction warnings (Task 8 observability).
|
|
859
882
|
// Sources is optional for test callers — defaults to 'default' for all fields.
|
|
@@ -1069,6 +1092,17 @@ export async function createAndStartServer(config, sources) {
|
|
|
1069
1092
|
await runStartupProbe(config, btpProxy, bearerTokenProvider, btpConfig, adtSemaphore);
|
|
1070
1093
|
})()
|
|
1071
1094
|
: Promise.resolve();
|
|
1095
|
+
// Retire transport state for new HTTP requests, preserving older requests and their late responses.
|
|
1096
|
+
// Configured cookies are reloaded, not revoked; see R21. Stdio builds its server only once.
|
|
1097
|
+
const newDefaultHttp = () => new AdtClient(buildAdtConfig(config, btpProxy, bearerTokenProvider, undefined, adtSemaphore, dataResultSemaphore))
|
|
1098
|
+
.http;
|
|
1099
|
+
let shared = { http: newDefaultHttp(), since: performance.now() };
|
|
1100
|
+
const defaultHttp = () => {
|
|
1101
|
+
if (performance.now() - shared.since >= SHARED_TRANSPORT_MAX_AGE_MS) {
|
|
1102
|
+
shared = { http: newDefaultHttp(), since: performance.now() };
|
|
1103
|
+
}
|
|
1104
|
+
return shared.http;
|
|
1105
|
+
};
|
|
1072
1106
|
const buildDefaultServer = () => createServer(config, {
|
|
1073
1107
|
btpProxy,
|
|
1074
1108
|
btpConfig,
|
|
@@ -1079,6 +1113,7 @@ export async function createAndStartServer(config, sources) {
|
|
|
1079
1113
|
adtSemaphore,
|
|
1080
1114
|
dataResultSemaphore,
|
|
1081
1115
|
mcpRateLimiter,
|
|
1116
|
+
defaultHttp: defaultHttp(),
|
|
1082
1117
|
});
|
|
1083
1118
|
const aggregateConfig = registry ? buildAggregateToolSurfaceConfig(config, registry.targets) : undefined;
|
|
1084
1119
|
const buildAggregateServer = registry && aggregateConfig && btpConfig
|
|
@@ -1118,34 +1153,6 @@ export async function createAndStartServer(config, sources) {
|
|
|
1118
1153
|
// per request. This is required because MCP SDK's Server can only connect
|
|
1119
1154
|
// to one transport at a time, and clients like Copilot Studio send
|
|
1120
1155
|
// concurrent requests.
|
|
1121
|
-
// Load XSUAA credentials if XSUAA auth is enabled
|
|
1122
|
-
let xsuaaCredentials;
|
|
1123
|
-
if (config.xsuaaAuth) {
|
|
1124
|
-
try {
|
|
1125
|
-
const xsenv = await import('@sap/xsenv');
|
|
1126
|
-
const services = xsenv.getServices({ uaa: { tag: 'xsuaa' } });
|
|
1127
|
-
const uaa = services.uaa;
|
|
1128
|
-
xsuaaCredentials = {
|
|
1129
|
-
url: uaa.url,
|
|
1130
|
-
clientid: uaa.clientid,
|
|
1131
|
-
clientsecret: uaa.clientsecret,
|
|
1132
|
-
xsappname: uaa.xsappname,
|
|
1133
|
-
uaadomain: uaa.uaadomain,
|
|
1134
|
-
};
|
|
1135
|
-
logger.info('XSUAA credentials loaded', {
|
|
1136
|
-
xsappname: xsuaaCredentials.xsappname,
|
|
1137
|
-
url: xsuaaCredentials.url,
|
|
1138
|
-
});
|
|
1139
|
-
}
|
|
1140
|
-
catch (err) {
|
|
1141
|
-
logger.error('Failed to load XSUAA credentials — XSUAA auth will not work', {
|
|
1142
|
-
error: err instanceof Error ? err.message : String(err),
|
|
1143
|
-
});
|
|
1144
|
-
if (config.multiTargetEndpoints) {
|
|
1145
|
-
throw new Error('ARC1_MULTI_TARGET_ENDPOINTS=true requires a valid bound XSUAA service.');
|
|
1146
|
-
}
|
|
1147
|
-
}
|
|
1148
|
-
}
|
|
1149
1156
|
const { startHttpServer } = await import('./http.js');
|
|
1150
1157
|
const multiTargets = registry && btpConfig && buildAggregateServer
|
|
1151
1158
|
? {
|