arc-1 0.6.9 → 0.7.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 (157) hide show
  1. package/README.md +12 -9
  2. package/bin/arc1-cli.js +10 -0
  3. package/bin/arc1.js +1 -1
  4. package/dist/adt/abapgit.d.ts +39 -0
  5. package/dist/adt/abapgit.d.ts.map +1 -0
  6. package/dist/adt/abapgit.js +333 -0
  7. package/dist/adt/abapgit.js.map +1 -0
  8. package/dist/adt/cds-impact.d.ts +35 -0
  9. package/dist/adt/cds-impact.d.ts.map +1 -1
  10. package/dist/adt/cds-impact.js +71 -0
  11. package/dist/adt/cds-impact.js.map +1 -1
  12. package/dist/adt/client.d.ts +4 -1
  13. package/dist/adt/client.d.ts.map +1 -1
  14. package/dist/adt/client.js +18 -5
  15. package/dist/adt/client.js.map +1 -1
  16. package/dist/adt/config.d.ts +1 -0
  17. package/dist/adt/config.d.ts.map +1 -1
  18. package/dist/adt/config.js +1 -0
  19. package/dist/adt/config.js.map +1 -1
  20. package/dist/adt/crud.d.ts.map +1 -1
  21. package/dist/adt/crud.js +74 -8
  22. package/dist/adt/crud.js.map +1 -1
  23. package/dist/adt/devtools.d.ts +39 -3
  24. package/dist/adt/devtools.d.ts.map +1 -1
  25. package/dist/adt/devtools.js +237 -25
  26. package/dist/adt/devtools.js.map +1 -1
  27. package/dist/adt/diagnostics.d.ts +69 -7
  28. package/dist/adt/diagnostics.d.ts.map +1 -1
  29. package/dist/adt/diagnostics.js +694 -36
  30. package/dist/adt/diagnostics.js.map +1 -1
  31. package/dist/adt/errors.d.ts +36 -2
  32. package/dist/adt/errors.d.ts.map +1 -1
  33. package/dist/adt/errors.js +111 -11
  34. package/dist/adt/errors.js.map +1 -1
  35. package/dist/adt/features.d.ts.map +1 -1
  36. package/dist/adt/features.js +3 -0
  37. package/dist/adt/features.js.map +1 -1
  38. package/dist/adt/gcts.d.ts +68 -0
  39. package/dist/adt/gcts.d.ts.map +1 -0
  40. package/dist/adt/gcts.js +239 -0
  41. package/dist/adt/gcts.js.map +1 -0
  42. package/dist/adt/http.d.ts.map +1 -1
  43. package/dist/adt/http.js +86 -1
  44. package/dist/adt/http.js.map +1 -1
  45. package/dist/adt/rap-handlers.d.ts +165 -0
  46. package/dist/adt/rap-handlers.d.ts.map +1 -0
  47. package/dist/adt/rap-handlers.js +835 -0
  48. package/dist/adt/rap-handlers.js.map +1 -0
  49. package/dist/adt/rap-preflight.d.ts +43 -0
  50. package/dist/adt/rap-preflight.d.ts.map +1 -0
  51. package/dist/adt/rap-preflight.js +405 -0
  52. package/dist/adt/rap-preflight.js.map +1 -0
  53. package/dist/adt/safety.d.ts +60 -33
  54. package/dist/adt/safety.d.ts.map +1 -1
  55. package/dist/adt/safety.js +204 -113
  56. package/dist/adt/safety.js.map +1 -1
  57. package/dist/adt/transport.d.ts +1 -1
  58. package/dist/adt/transport.d.ts.map +1 -1
  59. package/dist/adt/transport.js +6 -3
  60. package/dist/adt/transport.js.map +1 -1
  61. package/dist/adt/types.d.ts +225 -0
  62. package/dist/adt/types.d.ts.map +1 -1
  63. package/dist/adt/xml-parser.d.ts +15 -1
  64. package/dist/adt/xml-parser.d.ts.map +1 -1
  65. package/dist/adt/xml-parser.js +28 -15
  66. package/dist/adt/xml-parser.js.map +1 -1
  67. package/dist/authz/policy.d.ts +53 -0
  68. package/dist/authz/policy.d.ts.map +1 -0
  69. package/dist/authz/policy.js +199 -0
  70. package/dist/authz/policy.js.map +1 -0
  71. package/dist/cli-args.d.ts +14 -0
  72. package/dist/cli-args.d.ts.map +1 -0
  73. package/dist/cli-args.js +62 -0
  74. package/dist/cli-args.js.map +1 -0
  75. package/dist/cli.d.ts +13 -7
  76. package/dist/cli.d.ts.map +1 -1
  77. package/dist/cli.js +252 -55
  78. package/dist/cli.js.map +1 -1
  79. package/dist/extract-sap-cookies.d.ts +24 -0
  80. package/dist/extract-sap-cookies.d.ts.map +1 -0
  81. package/dist/extract-sap-cookies.js +317 -0
  82. package/dist/extract-sap-cookies.js.map +1 -0
  83. package/dist/handlers/hyperfocused.d.ts +4 -3
  84. package/dist/handlers/hyperfocused.d.ts.map +1 -1
  85. package/dist/handlers/hyperfocused.js +25 -16
  86. package/dist/handlers/hyperfocused.js.map +1 -1
  87. package/dist/handlers/intent.d.ts +4 -12
  88. package/dist/handlers/intent.d.ts.map +1 -1
  89. package/dist/handlers/intent.js +1448 -89
  90. package/dist/handlers/intent.js.map +1 -1
  91. package/dist/handlers/schemas.d.ts +83 -11
  92. package/dist/handlers/schemas.d.ts.map +1 -1
  93. package/dist/handlers/schemas.js +115 -4
  94. package/dist/handlers/schemas.js.map +1 -1
  95. package/dist/handlers/tools.d.ts +4 -3
  96. package/dist/handlers/tools.d.ts.map +1 -1
  97. package/dist/handlers/tools.js +342 -143
  98. package/dist/handlers/tools.js.map +1 -1
  99. package/dist/index.d.ts +1 -1
  100. package/dist/index.js +7 -6
  101. package/dist/index.js.map +1 -1
  102. package/dist/probe/catalog.d.ts +30 -0
  103. package/dist/probe/catalog.d.ts.map +1 -0
  104. package/dist/probe/catalog.js +196 -0
  105. package/dist/probe/catalog.js.map +1 -0
  106. package/dist/probe/fixtures.d.ts +54 -0
  107. package/dist/probe/fixtures.d.ts.map +1 -0
  108. package/dist/probe/fixtures.js +94 -0
  109. package/dist/probe/fixtures.js.map +1 -0
  110. package/dist/probe/format.d.ts +10 -0
  111. package/dist/probe/format.d.ts.map +1 -0
  112. package/dist/probe/format.js +114 -0
  113. package/dist/probe/format.js.map +1 -0
  114. package/dist/probe/quality.d.ts +13 -0
  115. package/dist/probe/quality.d.ts.map +1 -0
  116. package/dist/probe/quality.js +50 -0
  117. package/dist/probe/quality.js.map +1 -0
  118. package/dist/probe/runner.d.ts +48 -0
  119. package/dist/probe/runner.d.ts.map +1 -0
  120. package/dist/probe/runner.js +211 -0
  121. package/dist/probe/runner.js.map +1 -0
  122. package/dist/probe/types.d.ts +159 -0
  123. package/dist/probe/types.d.ts.map +1 -0
  124. package/dist/probe/types.js +11 -0
  125. package/dist/probe/types.js.map +1 -0
  126. package/dist/server/audit.d.ts +26 -3
  127. package/dist/server/audit.d.ts.map +1 -1
  128. package/dist/server/audit.js +12 -1
  129. package/dist/server/audit.js.map +1 -1
  130. package/dist/server/config.d.ts +34 -19
  131. package/dist/server/config.d.ts.map +1 -1
  132. package/dist/server/config.js +327 -187
  133. package/dist/server/config.js.map +1 -1
  134. package/dist/server/deny-actions.d.ts +31 -0
  135. package/dist/server/deny-actions.d.ts.map +1 -0
  136. package/dist/server/deny-actions.js +156 -0
  137. package/dist/server/deny-actions.js.map +1 -0
  138. package/dist/server/effective-policy-log.d.ts +27 -0
  139. package/dist/server/effective-policy-log.d.ts.map +1 -0
  140. package/dist/server/effective-policy-log.js +103 -0
  141. package/dist/server/effective-policy-log.js.map +1 -0
  142. package/dist/server/http.d.ts.map +1 -1
  143. package/dist/server/http.js +15 -16
  144. package/dist/server/http.js.map +1 -1
  145. package/dist/server/server.d.ts +38 -4
  146. package/dist/server/server.d.ts.map +1 -1
  147. package/dist/server/server.js +234 -31
  148. package/dist/server/server.js.map +1 -1
  149. package/dist/server/types.d.ts +31 -13
  150. package/dist/server/types.d.ts.map +1 -1
  151. package/dist/server/types.js +11 -10
  152. package/dist/server/types.js.map +1 -1
  153. package/dist/server/xsuaa.d.ts +1 -2
  154. package/dist/server/xsuaa.d.ts.map +1 -1
  155. package/dist/server/xsuaa.js +13 -14
  156. package/dist/server/xsuaa.js.map +1 -1
  157. package/package.json +9 -3
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * MCP Server for ARC-1.
3
3
  *
4
- * Creates and starts the MCP server with 11 intent-based tools.
4
+ * Creates and starts the MCP server with 12 intent-based tools.
5
5
  * Supports two transports:
6
6
  * - stdio (default): for local MCP clients (Claude Desktop, Claude Code, Cursor)
7
7
  * - http-streamable: for remote/containerized deployments
@@ -10,9 +10,19 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
10
10
  import type { BTPConfig, BTPProxyConfig } from '../adt/btp.js';
11
11
  import type { AdtClientConfig } from '../adt/config.js';
12
12
  import { CachingLayer } from '../cache/caching-layer.js';
13
+ import { type ToolDefinition } from '../handlers/tools.js';
13
14
  import type { ServerConfig } from './types.js';
14
15
  /** ARC-1 version */
15
- export declare const VERSION = "0.6.9";
16
+ export declare const VERSION = "0.7.0";
17
+ /**
18
+ * Filter tools by user scope + server deny list.
19
+ *
20
+ * Tools are included when the user has the tool-level scope, OR when any action/type
21
+ * in the tool has a scope the user satisfies (in which case the enum is pruned to
22
+ * just those action/types). After pruning, tools with empty action/type enums are
23
+ * removed entirely.
24
+ */
25
+ export declare function filterToolsByAuthScope(tools: ToolDefinition[], scopes: string[], denyActions?: string[]): ToolDefinition[];
16
26
  export declare function logAuthSummary(config: ServerConfig): void;
17
27
  /** Build the base ADT client config (without per-user auth) */
18
28
  export declare function buildAdtConfig(config: ServerConfig, btpProxy?: BTPProxyConfig, bearerTokenProvider?: () => Promise<string>, opts?: {
@@ -27,6 +37,29 @@ export declare function buildAdtConfig(config: ServerConfig, btpProxy?: BTPProxy
27
37
  * create per-user clients, so shared-client auth failures are definitive.
28
38
  */
29
39
  export declare function runStartupProbe(config: ServerConfig, btpProxy?: BTPProxyConfig, bearerTokenProvider?: () => Promise<string>, btpConfig?: BTPConfig): Promise<void>;
40
+ export interface StartupAuthPreflightResult {
41
+ status: 'ok' | 'failed' | 'inconclusive' | 'skipped';
42
+ /** When true, shared-client SAP tool calls must be blocked to prevent repeated auth failures. */
43
+ blocking: boolean;
44
+ endpoint: string;
45
+ checkedAt: string;
46
+ statusCode?: number;
47
+ reason: string;
48
+ }
49
+ /**
50
+ * Run a startup auth preflight for shared-credential mode.
51
+ *
52
+ * Goal: detect invalid technical/shared credentials once at startup and avoid
53
+ * repeated failed SAP requests from the first LLM tool call onward.
54
+ *
55
+ * Behavior:
56
+ * - Never throws (server must stay up)
57
+ * - PP mode and no-URL mode are skipped (non-blocking)
58
+ * - 401/403 are blocking failures
59
+ * - Network/other failures are inconclusive (non-blocking)
60
+ */
61
+ export declare function runStartupAuthPreflight(config: ServerConfig, btpProxy?: BTPProxyConfig, bearerTokenProvider?: () => Promise<string>): Promise<StartupAuthPreflightResult>;
62
+ export declare function formatStartupAuthPreflightToolError(preflight: StartupAuthPreflightResult): string;
30
63
  /**
31
64
  * Create the MCP server with registered tool handlers.
32
65
  * @param config Server configuration
@@ -35,10 +68,11 @@ export declare function runStartupProbe(config: ServerConfig, btpProxy?: BTPProx
35
68
  * @param bearerTokenProvider Optional OAuth bearer token provider (BTP ABAP Environment)
36
69
  * @param cachingLayer Optional object cache layer
37
70
  * @param startupProbePromise Promise from runStartupProbe() — ListTools waits on this
71
+ * @param startupAuthPreflightPromise Promise from runStartupAuthPreflight() — CallTool blocks on auth failure in shared mode
38
72
  */
39
- export declare function createServer(config: ServerConfig, btpProxy?: BTPProxyConfig, btpConfig?: BTPConfig, bearerTokenProvider?: () => Promise<string>, cachingLayer?: CachingLayer, startupProbePromise?: Promise<void>): Server;
73
+ export declare function createServer(config: ServerConfig, btpProxy?: BTPProxyConfig, btpConfig?: BTPConfig, bearerTokenProvider?: () => Promise<string>, cachingLayer?: CachingLayer, startupProbePromise?: Promise<void>, startupAuthPreflightPromise?: Promise<StartupAuthPreflightResult>): Server;
40
74
  /**
41
75
  * Create and start the MCP server.
42
76
  */
43
- export declare function createAndStartServer(config: ServerConfig): Promise<Server>;
77
+ export declare function createAndStartServer(config: ServerConfig, sources?: Record<string, import('./types.js').ConfigSource>): Promise<Server>;
44
78
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAGnE,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIxD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAczD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,oBAAoB;AACpB,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAiCzD;AAED,+DAA+D;AAG/D,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,QAAQ,CAAC,EAAE,cAAc,EACzB,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC3C,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3B,OAAO,CAAC,eAAe,CAAC,CAkC1B;AAqFD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,YAAY,EACpB,QAAQ,CAAC,EAAE,cAAc,EACzB,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC3C,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,IAAI,CAAC,CA6Cf;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,YAAY,EACpB,QAAQ,CAAC,EAAE,cAAc,EACzB,SAAS,CAAC,EAAE,SAAS,EACrB,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC3C,YAAY,CAAC,EAAE,YAAY,EAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAClC,MAAM,CAsHR;AAoCD;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CA0OhF"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAGnE,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAMxD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AASzD,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAK/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,oBAAoB;AACpB,eAAO,MAAM,OAAO,UAAU,CAAC;AAuD/B;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,cAAc,EAAE,EACvB,MAAM,EAAE,MAAM,EAAE,EAChB,WAAW,GAAE,MAAM,EAAO,GACzB,cAAc,EAAE,CA0BlB;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAgCzD;AAED,+DAA+D;AAG/D,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,QAAQ,CAAC,EAAE,cAAc,EACzB,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC3C,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3B,OAAO,CAAC,eAAe,CAAC,CAgC1B;AAqFD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,YAAY,EACpB,QAAQ,CAAC,EAAE,cAAc,EACzB,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC3C,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,IAAI,CAAC,CA8Cf;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,IAAI,GAAG,QAAQ,GAAG,cAAc,GAAG,SAAS,CAAC;IACrD,iGAAiG;IACjG,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAqBD;;;;;;;;;;;GAWG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,YAAY,EACpB,QAAQ,CAAC,EAAE,cAAc,EACzB,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAC1C,OAAO,CAAC,0BAA0B,CAAC,CA2CrC;AAED,wBAAgB,mCAAmC,CAAC,SAAS,EAAE,0BAA0B,GAAG,MAAM,CASjG;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,YAAY,EACpB,QAAQ,CAAC,EAAE,cAAc,EACzB,SAAS,CAAC,EAAE,SAAS,EACrB,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC3C,YAAY,CAAC,EAAE,YAAY,EAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,EACnC,2BAA2B,CAAC,EAAE,OAAO,CAAC,0BAA0B,CAAC,GAChE,MAAM,CA4IR;AAoCD;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,YAAY,EAAE,YAAY,CAAC,GAC1D,OAAO,CAAC,MAAM,CAAC,CA4QjB"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * MCP Server for ARC-1.
3
3
  *
4
- * Creates and starts the MCP server with 11 intent-based tools.
4
+ * Creates and starts the MCP server with 12 intent-based tools.
5
5
  * Supports two transports:
6
6
  * - stdio (default): for local MCP clients (Claude Desktop, Claude Code, Cursor)
7
7
  * - http-streamable: for remote/containerized deployments
@@ -11,19 +11,111 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
11
11
  import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
12
12
  import { AdtClient } from '../adt/client.js';
13
13
  import { resolveCookies } from '../adt/cookies.js';
14
- import { deriveUserSafety } from '../adt/safety.js';
14
+ import { AdtApiError } from '../adt/errors.js';
15
+ import { deriveUserSafety, deriveUserSafetyFromProfile } from '../adt/safety.js';
16
+ import { getActionPolicy, hasRequiredScope } from '../authz/policy.js';
15
17
  import { CachingLayer } from '../cache/caching-layer.js';
16
18
  import { MemoryCache } from '../cache/memory.js';
17
- import { getCachedDiscovery, getCachedFeatures, handleToolCall, hasRequiredScope, setCachedDiscovery, setCachedFeatures, TOOL_SCOPES, } from '../handlers/intent.js';
19
+ import { getCachedDiscovery, getCachedFeatures, handleToolCall, setCachedDiscovery, setCachedFeatures, } from '../handlers/intent.js';
18
20
  import { getToolDefinitions } from '../handlers/tools.js';
21
+ import { API_KEY_PROFILES } from './config.js';
22
+ import { isActionDenied } from './deny-actions.js';
19
23
  import { initLogger, logger } from './logger.js';
20
24
  import { FileSink } from './sinks/file.js';
21
25
  /** ARC-1 version */
22
- export const VERSION = '0.6.9'; // x-release-please-version
26
+ export const VERSION = '0.7.0'; // x-release-please-version
27
+ /**
28
+ * Prune a tool's action OR type enum (or both) based on the user's scopes and
29
+ * the server's denyActions list. Uses ACTION_POLICY as the single source of truth.
30
+ *
31
+ * - For action-bearing tools (SAPWrite, SAPManage, SAPLint, SAPTransport, SAPGit, ...):
32
+ * filter the `action` enum to entries the user can actually invoke.
33
+ * - For SAPRead (which uses `type` not `action`): filter the `type` enum. The key one is
34
+ * TABLE_CONTENTS, which requires the `data` scope — a read-scoped user sees SAPRead
35
+ * without TABLE_CONTENTS in the type enum.
36
+ */
37
+ function pruneToolByPolicy(tool, scopes, denyActions) {
38
+ const schema = tool.inputSchema;
39
+ const properties = schema.properties ?? {};
40
+ // Determine which enum this tool uses: SAPRead uses `type`; others use `action`.
41
+ const enumField = tool.name === 'SAPRead' ? 'type' : 'action';
42
+ const enumDef = properties[enumField] ?? {};
43
+ const enumValues = Array.isArray(enumDef.enum) ? enumDef.enum.map(String) : null;
44
+ if (!enumValues)
45
+ return tool; // no pruning needed
46
+ const filtered = enumValues.filter((value) => {
47
+ const policy = getActionPolicy(tool.name, value);
48
+ if (!policy)
49
+ return true; // unknown action/type — let it through and fail at runtime
50
+ if (!hasRequiredScope(scopes, policy.scope))
51
+ return false;
52
+ if (isActionDenied(tool.name, value, denyActions))
53
+ return false;
54
+ return true;
55
+ });
56
+ return {
57
+ ...tool,
58
+ inputSchema: {
59
+ ...schema,
60
+ properties: {
61
+ ...properties,
62
+ [enumField]: {
63
+ ...enumDef,
64
+ enum: filtered,
65
+ },
66
+ },
67
+ },
68
+ };
69
+ }
70
+ function hasNonEmptyActionOrTypeEnum(tool) {
71
+ const schema = tool.inputSchema;
72
+ const properties = schema.properties ?? {};
73
+ const enumField = tool.name === 'SAPRead' ? 'type' : 'action';
74
+ const enumDef = properties[enumField] ?? {};
75
+ if (!Array.isArray(enumDef.enum))
76
+ return true;
77
+ return enumDef.enum.length > 0;
78
+ }
79
+ /**
80
+ * Filter tools by user scope + server deny list.
81
+ *
82
+ * Tools are included when the user has the tool-level scope, OR when any action/type
83
+ * in the tool has a scope the user satisfies (in which case the enum is pruned to
84
+ * just those action/types). After pruning, tools with empty action/type enums are
85
+ * removed entirely.
86
+ */
87
+ export function filterToolsByAuthScope(tools, scopes, denyActions = []) {
88
+ return tools
89
+ .filter((tool) => {
90
+ // Tool-level visibility: if the whole tool is tool-level-denied, hide it.
91
+ if (isActionDenied(tool.name, undefined, denyActions))
92
+ return false;
93
+ // Must have scope for at least the tool-level default — otherwise no chance any action succeeds.
94
+ const toolPolicy = getActionPolicy(tool.name);
95
+ if (toolPolicy && !hasRequiredScope(scopes, toolPolicy.scope)) {
96
+ // Still allow if any specific action has a scope the user HAS (e.g., SAPManage default='write'
97
+ // but flp_list_* have scope='read' — a read user should see SAPManage with pruned actions).
98
+ const schema = tool.inputSchema;
99
+ const properties = schema.properties ?? {};
100
+ const enumField = tool.name === 'SAPRead' ? 'type' : 'action';
101
+ const enumDef = properties[enumField] ?? {};
102
+ const enumValues = Array.isArray(enumDef.enum) ? enumDef.enum.map(String) : null;
103
+ if (!enumValues)
104
+ return false;
105
+ const anyAllowed = enumValues.some((v) => {
106
+ const p = getActionPolicy(tool.name, v);
107
+ return p && hasRequiredScope(scopes, p.scope) && !isActionDenied(tool.name, v, denyActions);
108
+ });
109
+ if (!anyAllowed)
110
+ return false;
111
+ }
112
+ return true;
113
+ })
114
+ .map((tool) => pruneToolByPolicy(tool, scopes, denyActions))
115
+ .filter(hasNonEmptyActionOrTypeEnum);
116
+ }
23
117
  export function logAuthSummary(config) {
24
118
  const mcpMethods = [];
25
- if (config.apiKey)
26
- mcpMethods.push('api-key');
27
119
  if (config.apiKeys?.length)
28
120
  mcpMethods.push('api-keys');
29
121
  if (config.oidcIssuer && config.oidcAudience)
@@ -78,16 +170,14 @@ export function buildAdtConfig(config, btpProxy, bearerTokenProvider, opts) {
78
170
  bearerTokenProvider,
79
171
  maxConcurrent: config.maxConcurrent,
80
172
  safety: {
81
- readOnly: config.readOnly,
82
- blockFreeSQL: config.blockFreeSQL,
83
- blockData: config.blockData,
84
- allowedOps: config.allowedOps,
85
- disallowedOps: config.disallowedOps,
173
+ allowWrites: config.allowWrites,
174
+ allowDataPreview: config.allowDataPreview,
175
+ allowFreeSQL: config.allowFreeSQL,
176
+ allowTransportWrites: config.allowTransportWrites,
177
+ allowGitWrites: config.allowGitWrites,
86
178
  allowedPackages: config.allowedPackages,
87
- dryRun: false,
88
- enableTransports: config.enableTransports,
89
- transportReadOnly: false,
90
- allowedTransports: [],
179
+ allowedTransports: config.allowedTransports,
180
+ denyActions: config.denyActions,
91
181
  },
92
182
  };
93
183
  if (!opts?.perUser) {
@@ -190,6 +280,7 @@ export function runStartupProbe(config, btpProxy, bearerTokenProvider, btpConfig
190
280
  const fc = defaultFeatureConfig();
191
281
  fc.hana = config.featureHana;
192
282
  fc.abapGit = config.featureAbapGit;
283
+ fc.gcts = config.featureGcts;
193
284
  fc.rap = config.featureRap;
194
285
  fc.amdp = config.featureAmdp;
195
286
  fc.ui5 = config.featureUi5;
@@ -228,6 +319,79 @@ export function runStartupProbe(config, btpProxy, bearerTokenProvider, btpConfig
228
319
  }
229
320
  })();
230
321
  }
322
+ const STARTUP_AUTH_ENDPOINT = '/sap/bc/adt/core/discovery';
323
+ function buildStartupAuthFailureReason(statusCode) {
324
+ if (statusCode === 401) {
325
+ return ('Authentication failed (401) during startup auth preflight. ' +
326
+ 'Check SAP_USER/SAP_PASSWORD/SAP_CLIENT (or destination/service-key credentials), then restart ARC-1.');
327
+ }
328
+ if (statusCode === 403) {
329
+ return ('Access forbidden (403) during startup auth preflight. ' +
330
+ 'The configured SAP user lacks ADT authorization (for example S_ADT_RES). ' +
331
+ 'Fix authorizations, then restart ARC-1.');
332
+ }
333
+ return `Startup auth preflight failed with HTTP ${statusCode}.`;
334
+ }
335
+ /**
336
+ * Run a startup auth preflight for shared-credential mode.
337
+ *
338
+ * Goal: detect invalid technical/shared credentials once at startup and avoid
339
+ * repeated failed SAP requests from the first LLM tool call onward.
340
+ *
341
+ * Behavior:
342
+ * - Never throws (server must stay up)
343
+ * - PP mode and no-URL mode are skipped (non-blocking)
344
+ * - 401/403 are blocking failures
345
+ * - Network/other failures are inconclusive (non-blocking)
346
+ */
347
+ export async function runStartupAuthPreflight(config, btpProxy, bearerTokenProvider) {
348
+ const checkedAt = new Date().toISOString();
349
+ const endpoint = STARTUP_AUTH_ENDPOINT;
350
+ if (config.ppEnabled) {
351
+ const reason = 'Skipped startup auth preflight: principal propagation mode is enabled (per-user auth at runtime).';
352
+ logger.info(reason);
353
+ return { status: 'skipped', blocking: false, endpoint, checkedAt, reason };
354
+ }
355
+ if (!config.url) {
356
+ const reason = 'Skipped startup auth preflight: SAP_URL is not configured.';
357
+ logger.info(reason);
358
+ return { status: 'skipped', blocking: false, endpoint, checkedAt, reason };
359
+ }
360
+ try {
361
+ const client = new AdtClient(buildAdtConfig(config, btpProxy, bearerTokenProvider));
362
+ await client.http.get(endpoint);
363
+ const reason = 'Startup auth preflight succeeded for shared SAP credentials.';
364
+ logger.info(reason, { endpoint });
365
+ return { status: 'ok', blocking: false, endpoint, checkedAt, reason };
366
+ }
367
+ catch (err) {
368
+ if (err instanceof AdtApiError && (err.statusCode === 401 || err.statusCode === 403)) {
369
+ const reason = buildStartupAuthFailureReason(err.statusCode);
370
+ logger.warn(reason, { endpoint, statusCode: err.statusCode });
371
+ return {
372
+ status: 'failed',
373
+ blocking: true,
374
+ endpoint,
375
+ checkedAt,
376
+ statusCode: err.statusCode,
377
+ reason,
378
+ };
379
+ }
380
+ const detail = err instanceof Error ? err.message : String(err);
381
+ const reason = 'Startup auth preflight was inconclusive (non-auth failure). ' +
382
+ 'Continuing and letting runtime requests handle connectivity diagnostics.';
383
+ logger.warn(reason, { endpoint, error: detail });
384
+ return { status: 'inconclusive', blocking: false, endpoint, checkedAt, reason };
385
+ }
386
+ }
387
+ export function formatStartupAuthPreflightToolError(preflight) {
388
+ const code = preflight.statusCode ? ` (HTTP ${preflight.statusCode})` : '';
389
+ return (`Startup authentication preflight failed${code}. ` +
390
+ 'ARC-1 is blocking shared SAP tool calls to avoid repeated failed logins and possible user lockout.\n\n' +
391
+ `${preflight.reason}\n` +
392
+ `Preflight endpoint: ${preflight.endpoint}\n` +
393
+ `Checked at: ${preflight.checkedAt}`);
394
+ }
231
395
  /**
232
396
  * Create the MCP server with registered tool handlers.
233
397
  * @param config Server configuration
@@ -236,8 +400,9 @@ export function runStartupProbe(config, btpProxy, bearerTokenProvider, btpConfig
236
400
  * @param bearerTokenProvider Optional OAuth bearer token provider (BTP ABAP Environment)
237
401
  * @param cachingLayer Optional object cache layer
238
402
  * @param startupProbePromise Promise from runStartupProbe() — ListTools waits on this
403
+ * @param startupAuthPreflightPromise Promise from runStartupAuthPreflight() — CallTool blocks on auth failure in shared mode
239
404
  */
240
- export function createServer(config, btpProxy, btpConfig, bearerTokenProvider, cachingLayer, startupProbePromise) {
405
+ export function createServer(config, btpProxy, btpConfig, bearerTokenProvider, cachingLayer, startupProbePromise, startupAuthPreflightPromise) {
241
406
  const server = new Server({ name: 'arc-1', version: VERSION }, { capabilities: { tools: {} } });
242
407
  // Create default ADT client (shared, uses startup-time credentials or OAuth bearer)
243
408
  const defaultClient = new AdtClient(buildAdtConfig(config, btpProxy, bearerTokenProvider));
@@ -250,13 +415,10 @@ export function createServer(config, btpProxy, btpConfig, bearerTokenProvider, c
250
415
  await Promise.race([startupProbePromise, new Promise((resolve) => setTimeout(resolve, 10_000))]);
251
416
  }
252
417
  const features = getCachedFeatures();
253
- let tools = getToolDefinitions(config, features?.textSearch?.available);
418
+ let tools = getToolDefinitions(config, features?.textSearch?.available, features);
254
419
  // When authenticated, only show tools the user has scopes for
255
420
  if (extra.authInfo) {
256
- tools = tools.filter((tool) => {
257
- const requiredScope = TOOL_SCOPES[tool.name];
258
- return !requiredScope || hasRequiredScope(extra.authInfo, requiredScope);
259
- });
421
+ tools = filterToolsByAuthScope(tools, extra.authInfo.scopes);
260
422
  }
261
423
  return { tools };
262
424
  });
@@ -264,6 +426,20 @@ export function createServer(config, btpProxy, btpConfig, bearerTokenProvider, c
264
426
  server.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
265
427
  const toolName = request.params.name;
266
428
  const args = (request.params.arguments ?? {});
429
+ if (startupAuthPreflightPromise) {
430
+ const startupAuth = await startupAuthPreflightPromise;
431
+ if (startupAuth.blocking) {
432
+ return {
433
+ content: [
434
+ {
435
+ type: 'text',
436
+ text: formatStartupAuthPreflightToolError(startupAuth),
437
+ },
438
+ ],
439
+ isError: true,
440
+ };
441
+ }
442
+ }
267
443
  // Principal propagation: create per-user ADT client if enabled and user JWT available.
268
444
  // Only attempt PP when the token is a JWT (3 dot-separated parts), not a plain API key.
269
445
  let client = defaultClient;
@@ -326,10 +502,21 @@ export function createServer(config, btpProxy, btpConfig, bearerTokenProvider, c
326
502
  }
327
503
  // Inject startup discovery MIME map (shared for default and per-user clients).
328
504
  client.http.setDiscoveryMap(getCachedDiscovery());
329
- // Per-request safety: merge server ceiling with JWT scopes.
330
- // Scopes can only restrict further, never expand beyond server config.
505
+ // Per-request safety: merge server ceiling with per-user policy.
506
+ // - API-key path: clientId starts with "api-key:<profile>" intersect server with profile's partial SafetyConfig.
507
+ // - XSUAA/OIDC path: derive from scopes only (server ceiling, scopes can only tighten).
508
+ // API-key intersection is stricter — profile can narrow allowedPackages / feature flags
509
+ // that scopes alone cannot (scopes don't encode allowedPackages, etc.).
331
510
  let effectiveClient = client;
332
- if (extra.authInfo?.scopes) {
511
+ if (extra.authInfo?.clientId?.startsWith('api-key:')) {
512
+ const profileName = extra.authInfo.clientId.slice('api-key:'.length);
513
+ const profile = API_KEY_PROFILES[profileName];
514
+ if (profile) {
515
+ const effectiveSafety = deriveUserSafetyFromProfile(client.safety, profile.safety);
516
+ effectiveClient = client.withSafety(effectiveSafety);
517
+ }
518
+ }
519
+ else if (extra.authInfo?.scopes) {
333
520
  const effectiveSafety = deriveUserSafety(client.safety, extra.authInfo.scopes);
334
521
  effectiveClient = client.withSafety(effectiveSafety);
335
522
  }
@@ -375,9 +562,15 @@ async function createCachingLayer(config) {
375
562
  /**
376
563
  * Create and start the MCP server.
377
564
  */
378
- export async function createAndStartServer(config) {
565
+ export async function createAndStartServer(config, sources) {
379
566
  initLogger(config.logFormat, config.verbose);
380
567
  logAuthSummary(config);
568
+ // Effective-policy log + contradiction warnings (Task 8 observability).
569
+ // Sources is optional for test callers — defaults to 'default' for all fields.
570
+ const effectiveSources = sources ?? {};
571
+ const { logEffectivePolicy, detectContradictions, logContradictions } = await import('./effective-policy-log.js');
572
+ logEffectivePolicy(config, effectiveSources, logger);
573
+ logContradictions(detectContradictions(config), logger);
381
574
  // Add file sink if configured
382
575
  if (config.logFile) {
383
576
  logger.addSink(new FileSink(config.logFile));
@@ -404,7 +597,7 @@ export async function createAndStartServer(config) {
404
597
  event: 'server_start',
405
598
  version: VERSION,
406
599
  transport: config.transport,
407
- readOnly: config.readOnly,
600
+ allowWrites: config.allowWrites,
408
601
  url: config.url || '(not configured)',
409
602
  pid: process.pid,
410
603
  });
@@ -412,7 +605,7 @@ export async function createAndStartServer(config) {
412
605
  version: VERSION,
413
606
  transport: config.transport,
414
607
  url: config.url || '(not configured)',
415
- readOnly: config.readOnly,
608
+ allowWrites: config.allowWrites,
416
609
  });
417
610
  // Pre-flight: warn clearly when no SAP connection is configured so users know
418
611
  // why all feature probes will fail (rather than seeing cryptic network errors).
@@ -508,9 +701,19 @@ export async function createAndStartServer(config) {
508
701
  }
509
702
  }
510
703
  // Run feature probe once at startup — shared across all requests (stdio and HTTP).
511
- // This must happen before createServer() so the HTTP factory can close over the same promise.
512
- const startupProbePromise = runStartupProbe(config, btpProxy, bearerTokenProvider, btpConfig);
513
- const server = createServer(config, btpProxy, btpConfig, bearerTokenProvider, cachingLayer, startupProbePromise);
704
+ // First run startup auth preflight in shared mode. If it blocks (401/403), skip feature probe
705
+ // to avoid firing many failing requests with invalid technical credentials.
706
+ const startupAuthPreflightPromise = runStartupAuthPreflight(config, btpProxy, bearerTokenProvider);
707
+ const startupProbePromise = (async () => {
708
+ const authPreflight = await startupAuthPreflightPromise;
709
+ if (authPreflight.blocking) {
710
+ setCachedFeatures(undefined);
711
+ setCachedDiscovery(new Map());
712
+ return;
713
+ }
714
+ await runStartupProbe(config, btpProxy, bearerTokenProvider, btpConfig);
715
+ })();
716
+ const server = createServer(config, btpProxy, btpConfig, bearerTokenProvider, cachingLayer, startupProbePromise, startupAuthPreflightPromise);
514
717
  // Shutdown hook for SQLite cache cleanup (guard against double-close from multiple signals).
515
718
  // IMPORTANT: registering a SIGINT/SIGTERM listener suppresses Node's default exit behavior,
516
719
  // so we must call process.exit() explicitly after cleanup — otherwise Ctrl+C hangs the process.
@@ -580,7 +783,7 @@ export async function createAndStartServer(config) {
580
783
  }
581
784
  }
582
785
  const { startHttpServer } = await import('./http.js');
583
- await startHttpServer(() => createServer(config, btpProxy, btpConfig, bearerTokenProvider, cachingLayer, startupProbePromise), config, xsuaaCredentials);
786
+ await startHttpServer(() => createServer(config, btpProxy, btpConfig, bearerTokenProvider, cachingLayer, startupProbePromise, startupAuthPreflightPromise), config, xsuaaCredentials);
584
787
  }
585
788
  return server;
586
789
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
@@ -5,14 +5,20 @@
5
5
  * 1. CLI flags (--url, --user, etc.)
6
6
  * 2. Environment variables (SAP_URL, SAP_USER, etc.)
7
7
  * 3. .env file
8
- * 4. Defaults
9
- *
10
- * This matches the Go version's configuration precedence.
8
+ * 4. Defaults (all `allow*` flags false — restrictive by default)
11
9
  */
12
10
  /** MCP transport type */
13
11
  export type TransportType = 'stdio' | 'http-streamable';
14
12
  /** Feature toggle: auto detects from SAP system, on/off forces */
15
13
  export type FeatureToggle = 'auto' | 'on' | 'off';
14
+ /** Per-field config source (used by resolveConfig + startup log + `config show`). */
15
+ export type ConfigSource = 'default' | {
16
+ env: string;
17
+ } | {
18
+ flag: string;
19
+ } | {
20
+ file: string;
21
+ };
16
22
  /** Server configuration — all fields needed to start ARC-1 */
17
23
  export interface ServerConfig {
18
24
  url: string;
@@ -25,14 +31,17 @@ export interface ServerConfig {
25
31
  cookieString?: string;
26
32
  transport: TransportType;
27
33
  httpAddr: string;
28
- readOnly: boolean;
29
- blockFreeSQL: boolean;
30
- blockData: boolean;
31
- allowedOps: string;
32
- disallowedOps: string;
34
+ allowWrites: boolean;
35
+ allowDataPreview: boolean;
36
+ allowFreeSQL: boolean;
37
+ allowTransportWrites: boolean;
38
+ allowGitWrites: boolean;
33
39
  allowedPackages: string[];
34
- enableTransports: boolean;
40
+ allowedTransports: string[];
41
+ /** Resolved deny-action patterns from SAP_DENY_ACTIONS (parsed + validated at startup). */
42
+ denyActions: string[];
35
43
  featureAbapGit: FeatureToggle;
44
+ featureGcts: FeatureToggle;
36
45
  featureRap: FeatureToggle;
37
46
  featureAmdp: FeatureToggle;
38
47
  featureUi5: FeatureToggle;
@@ -42,8 +51,7 @@ export interface ServerConfig {
42
51
  featureFlp: FeatureToggle;
43
52
  /** System type: 'auto' (detect from components), 'btp', or 'onprem' */
44
53
  systemType: 'auto' | 'btp' | 'onprem';
45
- apiKey?: string;
46
- /** Multiple API keys with per-key profile assignment (key:profile pairs) */
54
+ /** Multiple API keys with per-key profile assignment (key:profile pairs). Single ARC1_API_KEY was removed in v0.7. */
47
55
  apiKeys?: Array<{
48
56
  key: string;
49
57
  profile: string;
@@ -65,12 +73,22 @@ export interface ServerConfig {
65
73
  logFile?: string;
66
74
  logLevel: 'debug' | 'info' | 'warn' | 'error';
67
75
  logFormat: 'text' | 'json';
68
- /** Tool mode: 'standard' (11 intent tools) or 'hyperfocused' (1 universal SAP tool, ~200 tokens) */
76
+ /** Tool mode: 'standard' (12 intent tools, SAPGit feature-gated) or 'hyperfocused' (1 universal SAP tool, ~200 tokens) */
69
77
  toolMode: 'standard' | 'hyperfocused';
70
78
  /** Path to custom abaplint.jsonc config file for lint rules */
71
79
  abaplintConfig?: string;
72
80
  /** Enable pre-write lint validation (default: true) */
73
81
  lintBeforeWrite: boolean;
82
+ /** Enable pre-write server-side syntax check via ADT checkruns with inline content
83
+ * (default: false, opt-in). When true, SAPWrite sends the proposed source to SAP's
84
+ * compiler BEFORE writing and appends any error/warning messages to the write's
85
+ * success response. The write is NOT blocked — errors are informational, deferred to
86
+ * the eventual activation for real resolution. This keeps multi-file edits with
87
+ * cross-object dependencies from hitting false-positive blocks on intermediate
88
+ * writes (a referenced type/class/include is not yet updated). Useful for
89
+ * single-file edits where you want early visibility into compile errors without
90
+ * having to call SAPDiagnose separately. */
91
+ checkBeforeWrite: boolean;
74
92
  /** Cache mode: 'auto' (memory for stdio, sqlite for http-streamable), 'memory', 'sqlite', 'none' */
75
93
  cacheMode: 'auto' | 'memory' | 'sqlite' | 'none';
76
94
  /** Path to SQLite cache file (default: .arc1-cache.db in working directory) */
@@ -83,6 +101,6 @@ export interface ServerConfig {
83
101
  maxConcurrent: number;
84
102
  verbose: boolean;
85
103
  }
86
- /** Default configuration values */
104
+ /** Default configuration values — restrictive by default. */
87
105
  export declare const DEFAULT_CONFIG: ServerConfig;
88
106
  //# sourceMappingURL=types.d.ts.map