apcore-mcp 0.12.0 → 0.14.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 (113) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +165 -19
  3. package/dist/acl-builder.d.ts +43 -0
  4. package/dist/acl-builder.d.ts.map +1 -0
  5. package/dist/acl-builder.js +115 -0
  6. package/dist/acl-builder.js.map +1 -0
  7. package/dist/adapters/annotations.d.ts.map +1 -1
  8. package/dist/adapters/annotations.js +37 -2
  9. package/dist/adapters/annotations.js.map +1 -1
  10. package/dist/adapters/errors.d.ts +17 -0
  11. package/dist/adapters/errors.d.ts.map +1 -1
  12. package/dist/adapters/errors.js +192 -2
  13. package/dist/adapters/errors.js.map +1 -1
  14. package/dist/adapters/id-normalizer.d.ts +40 -0
  15. package/dist/adapters/id-normalizer.d.ts.map +1 -0
  16. package/dist/adapters/id-normalizer.js +59 -0
  17. package/dist/adapters/id-normalizer.js.map +1 -0
  18. package/dist/adapters/index.d.ts +2 -2
  19. package/dist/adapters/index.d.ts.map +1 -1
  20. package/dist/adapters/index.js +2 -2
  21. package/dist/adapters/index.js.map +1 -1
  22. package/dist/adapters/{mcpErrorFormatter.d.ts → mcp-error-formatter.d.ts} +5 -7
  23. package/dist/adapters/mcp-error-formatter.d.ts.map +1 -0
  24. package/dist/adapters/mcp-error-formatter.js +30 -0
  25. package/dist/adapters/mcp-error-formatter.js.map +1 -0
  26. package/dist/adapters/schema.d.ts +21 -4
  27. package/dist/adapters/schema.d.ts.map +1 -1
  28. package/dist/adapters/schema.js +147 -13
  29. package/dist/adapters/schema.js.map +1 -1
  30. package/dist/apcore-mcp.d.ts +24 -2
  31. package/dist/apcore-mcp.d.ts.map +1 -1
  32. package/dist/apcore-mcp.js +8 -0
  33. package/dist/apcore-mcp.js.map +1 -1
  34. package/dist/auth/hooks.d.ts +1 -1
  35. package/dist/auth/hooks.d.ts.map +1 -1
  36. package/dist/auth/hooks.js +10 -3
  37. package/dist/auth/hooks.js.map +1 -1
  38. package/dist/auth/jwt.d.ts +1 -2
  39. package/dist/auth/jwt.d.ts.map +1 -1
  40. package/dist/auth/jwt.js +18 -10
  41. package/dist/auth/jwt.js.map +1 -1
  42. package/dist/auth/types.d.ts +6 -3
  43. package/dist/auth/types.d.ts.map +1 -1
  44. package/dist/cli.d.ts.map +1 -1
  45. package/dist/cli.js +23 -1
  46. package/dist/cli.js.map +1 -1
  47. package/dist/config.d.ts.map +1 -1
  48. package/dist/config.js +15 -6
  49. package/dist/config.js.map +1 -1
  50. package/dist/converters/openai.d.ts +10 -0
  51. package/dist/converters/openai.d.ts.map +1 -1
  52. package/dist/converters/openai.js +100 -5
  53. package/dist/converters/openai.js.map +1 -1
  54. package/dist/explorer/index.d.ts +2 -0
  55. package/dist/explorer/index.d.ts.map +1 -0
  56. package/dist/explorer/index.js +2 -0
  57. package/dist/explorer/index.js.map +1 -0
  58. package/dist/index.d.ts +68 -5
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +346 -60
  61. package/dist/index.js.map +1 -1
  62. package/dist/inspector/index.d.ts +2 -0
  63. package/dist/inspector/index.d.ts.map +1 -0
  64. package/dist/inspector/index.js +2 -0
  65. package/dist/inspector/index.js.map +1 -0
  66. package/dist/middleware-builder.d.ts +41 -0
  67. package/dist/middleware-builder.d.ts.map +1 -0
  68. package/dist/middleware-builder.js +129 -0
  69. package/dist/middleware-builder.js.map +1 -0
  70. package/dist/server/async-task-bridge.d.ts +190 -0
  71. package/dist/server/async-task-bridge.d.ts.map +1 -0
  72. package/dist/server/async-task-bridge.js +393 -0
  73. package/dist/server/async-task-bridge.js.map +1 -0
  74. package/dist/server/context.d.ts +9 -2
  75. package/dist/server/context.d.ts.map +1 -1
  76. package/dist/server/context.js +14 -6
  77. package/dist/server/context.js.map +1 -1
  78. package/dist/server/factory.d.ts +25 -2
  79. package/dist/server/factory.d.ts.map +1 -1
  80. package/dist/server/factory.js +127 -7
  81. package/dist/server/factory.js.map +1 -1
  82. package/dist/server/listener.d.ts +3 -0
  83. package/dist/server/listener.d.ts.map +1 -1
  84. package/dist/server/listener.js +13 -2
  85. package/dist/server/listener.js.map +1 -1
  86. package/dist/server/observability.d.ts +51 -0
  87. package/dist/server/observability.d.ts.map +1 -0
  88. package/dist/server/observability.js +96 -0
  89. package/dist/server/observability.js.map +1 -0
  90. package/dist/server/router.d.ts +114 -0
  91. package/dist/server/router.d.ts.map +1 -1
  92. package/dist/server/router.js +360 -18
  93. package/dist/server/router.js.map +1 -1
  94. package/dist/server/trace-context.d.ts +40 -0
  95. package/dist/server/trace-context.d.ts.map +1 -0
  96. package/dist/server/trace-context.js +67 -0
  97. package/dist/server/trace-context.js.map +1 -0
  98. package/dist/server/transport.d.ts +39 -0
  99. package/dist/server/transport.d.ts.map +1 -1
  100. package/dist/server/transport.js +134 -4
  101. package/dist/server/transport.js.map +1 -1
  102. package/dist/types.d.ts +18 -4
  103. package/dist/types.d.ts.map +1 -1
  104. package/dist/types.js +11 -0
  105. package/dist/types.js.map +1 -1
  106. package/package.json +12 -6
  107. package/dist/adapters/idNormalizer.d.ts +0 -22
  108. package/dist/adapters/idNormalizer.d.ts.map +0 -1
  109. package/dist/adapters/idNormalizer.js +0 -30
  110. package/dist/adapters/idNormalizer.js.map +0 -1
  111. package/dist/adapters/mcpErrorFormatter.d.ts.map +0 -1
  112. package/dist/adapters/mcpErrorFormatter.js +0 -24
  113. package/dist/adapters/mcpErrorFormatter.js.map +0 -1
package/dist/index.js CHANGED
@@ -10,9 +10,12 @@ import { createNodeHandler } from "mcp-embedded-ui";
10
10
  import { OpenAIConverter } from "./converters/openai.js";
11
11
  import { MCPServerFactory } from "./server/factory.js";
12
12
  import { ExecutionRouter } from "./server/router.js";
13
+ import { RegistryListener } from "./server/listener.js";
13
14
  import { TransportManager } from "./server/transport.js";
14
15
  import { registerMcpNamespace } from "./config.js";
15
- import { registerMcpFormatter } from "./adapters/mcpErrorFormatter.js";
16
+ import { registerMcpFormatter } from "./adapters/mcp-error-formatter.js";
17
+ import { installObservability } from "./server/observability.js";
18
+ import { createAsyncTaskBridge } from "./server/async-task-bridge.js";
16
19
  import { buildExplorerAuthHook } from "./auth/hooks.js";
17
20
  import pkg from "../package.json" with { type: "json" };
18
21
  export const VERSION = pkg.version;
@@ -28,15 +31,20 @@ export { buildExplorerAuthHook } from "./auth/hooks.js";
28
31
  export { APCoreMCP } from "./apcore-mcp.js";
29
32
  // ─── Building Block Exports ──────────────────────────────────────────────────
30
33
  export { MCPServerFactory } from "./server/factory.js";
34
+ // MCPServer is an alias for MCPServerFactory, matching Python/Rust top-level export parity.
35
+ export { MCPServerFactory as MCPServer } from "./server/factory.js";
31
36
  export { ExecutionRouter } from "./server/router.js";
32
37
  export { RegistryListener } from "./server/listener.js";
33
38
  export { TransportManager } from "./server/transport.js";
39
+ export { AsyncTaskBridge, createAsyncTaskBridge, META_TOOL_NAMES, APCORE_META_TOOL_PREFIX } from "./server/async-task-bridge.js";
40
+ export { installObservability } from "./server/observability.js";
41
+ export { parseTraceparent, buildTraceparent } from "./server/trace-context.js";
34
42
  export { AnnotationMapper } from "./adapters/annotations.js";
35
43
  export { SchemaConverter } from "./adapters/schema.js";
36
44
  export { ErrorMapper } from "./adapters/errors.js";
37
- export { ModuleIDNormalizer } from "./adapters/idNormalizer.js";
45
+ export { ModuleIDNormalizer } from "./adapters/id-normalizer.js";
38
46
  export { ElicitationApprovalHandler } from "./adapters/approval.js";
39
- export { McpErrorFormatter, registerMcpFormatter } from "./adapters/mcpErrorFormatter.js";
47
+ export { McpErrorFormatter, registerMcpFormatter } from "./adapters/mcp-error-formatter.js";
40
48
  export { registerMcpNamespace, MCP_NAMESPACE, MCP_ENV_PREFIX, MCP_DEFAULTS } from "./config.js";
41
49
  export { OpenAIConverter } from "./converters/openai.js";
42
50
  /**
@@ -63,62 +71,236 @@ export function resolveRegistry(registryOrExecutor) {
63
71
  * @throws {Error} If the argument is a Registry and apcore-js is not installed.
64
72
  */
65
73
  export async function resolveExecutor(registryOrExecutor, options) {
74
+ let executor;
66
75
  if ("call" in registryOrExecutor || "callAsync" in registryOrExecutor) {
67
76
  // Already an Executor
68
- return registryOrExecutor;
77
+ if (options?.strategy) {
78
+ console.warn(`strategy='${options.strategy}' ignored: input is already an Executor instance.`);
79
+ }
80
+ executor = registryOrExecutor;
81
+ }
82
+ else {
83
+ // It's a bare Registry — create a default Executor
84
+ try {
85
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
86
+ const apcore = (await import("apcore-js"));
87
+ const ExecutorClass = apcore.Executor ?? apcore.default?.Executor;
88
+ if (ExecutorClass) {
89
+ const executorOpts = {
90
+ registry: registryOrExecutor,
91
+ };
92
+ if (options?.approvalHandler) {
93
+ executorOpts.approvalHandler = options.approvalHandler;
94
+ }
95
+ if (options?.strategy) {
96
+ executorOpts.strategy = options.strategy;
97
+ }
98
+ executor = new ExecutorClass(executorOpts);
99
+ }
100
+ }
101
+ catch {
102
+ // apcore-js not installed — fall through to error
103
+ }
104
+ if (!executor) {
105
+ throw new Error("serve() requires an Executor instance, or apcore-js must be installed to auto-create one from a Registry.");
106
+ }
107
+ }
108
+ // Apply middleware via executor.use() per instance. Mirrors the Python
109
+ // bridge's resolve_executor contract.
110
+ const middleware = options?.middleware ?? [];
111
+ if (middleware.length > 0) {
112
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
113
+ const useFn = executor.use;
114
+ if (typeof useFn !== "function") {
115
+ throw new Error("Executor does not support .use() — 'middleware' option requires apcore-js>=0.18");
116
+ }
117
+ for (const mw of middleware) {
118
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
119
+ executor.use(mw);
120
+ }
121
+ }
122
+ // Install ACL via executor.setAcl() if provided.
123
+ if (options?.acl !== undefined && options.acl !== null) {
124
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
125
+ const setAcl = executor.setAcl;
126
+ if (typeof setAcl !== "function") {
127
+ throw new Error("Executor does not support .setAcl() — 'acl' option requires apcore-js>=0.18");
128
+ }
129
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
130
+ executor.setAcl(options.acl);
131
+ }
132
+ return executor;
133
+ }
134
+ /**
135
+ * Build a map of module_id → output_schema from the registry.
136
+ *
137
+ * Only includes modules whose output_schema is a non-empty object.
138
+ */
139
+ function buildOutputSchemaMap(registry) {
140
+ const map = {};
141
+ for (const moduleId of registry.list()) {
142
+ const def = registry.getDefinition(moduleId);
143
+ if (def?.outputSchema && Object.keys(def.outputSchema).length > 0) {
144
+ map[moduleId] = def.outputSchema;
145
+ }
69
146
  }
70
- // It's a bare Registry — create a default Executor
147
+ return map;
148
+ }
149
+ /**
150
+ * Load Config Bus overrides for strategy, middleware, ACL, and the scalar
151
+ * `mcp.*` keys consumed by serve()/asyncServe().
152
+ *
153
+ * F-040: YAML Pipeline Config via Config Bus. Extracted to eliminate the
154
+ * byte-for-byte duplicate block that previously appeared in both serve() and
155
+ * asyncServe(). Both functions call this helper and merge the results with
156
+ * their caller-supplied values.
157
+ *
158
+ * D9-002: Also reads the 9 scalar `mcp.*` keys (transport, host, port, name,
159
+ * log_level, validate_inputs, explorer, explorer_prefix, require_auth) so
160
+ * users setting `APCORE_MCP_PORT=9000` (or `mcp.port: 9000` in YAML) actually
161
+ * see the change take effect. Caller options still win over Config Bus.
162
+ */
163
+ async function loadConfigBusOverrides(strategy, callerMiddleware, callerAcl) {
164
+ let resolvedStrategy = strategy;
165
+ let configMiddleware = [];
166
+ let configAcl = null;
167
+ const configBusDefaults = {};
71
168
  try {
72
169
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
73
- const apcore = await import("apcore-js");
74
- const ExecutorClass = apcore.Executor ?? apcore.default?.Executor;
75
- if (ExecutorClass) {
76
- const executorOpts = { registry: registryOrExecutor };
77
- if (options?.approvalHandler) {
78
- executorOpts.approvalHandler = options.approvalHandler;
170
+ const apcoreConfig = await import("apcore-js");
171
+ const Config = apcoreConfig.Config ?? apcoreConfig.default?.Config;
172
+ const buildStrategyFromConfig = apcoreConfig.buildStrategyFromConfig ?? apcoreConfig.default?.buildStrategyFromConfig;
173
+ if (Config && buildStrategyFromConfig) {
174
+ const config = typeof Config.getInstance === 'function' ? Config.getInstance() : new Config();
175
+ const pipelineCfg = config.get?.("mcp.pipeline");
176
+ if (pipelineCfg && typeof pipelineCfg === 'object' && Object.keys(pipelineCfg).length > 0) {
177
+ if (resolvedStrategy) {
178
+ console.warn(`YAML pipeline config found in Config Bus — overriding strategy='${resolvedStrategy}' with config-driven strategy.`);
179
+ }
180
+ resolvedStrategy = buildStrategyFromConfig(pipelineCfg);
181
+ }
182
+ // Load declarative middleware from Config Bus (`mcp.middleware`).
183
+ const mwCfg = config.get?.("mcp.middleware");
184
+ if (Array.isArray(mwCfg) && mwCfg.length > 0) {
185
+ const { buildMiddlewareFromConfig } = await import("./middleware-builder.js");
186
+ configMiddleware = await buildMiddlewareFromConfig(mwCfg);
79
187
  }
80
- return new ExecutorClass(executorOpts);
188
+ // Load declarative ACL from Config Bus (`mcp.acl`).
189
+ const aclCfg = config.get?.("mcp.acl");
190
+ if (aclCfg) {
191
+ const { buildAclFromConfig } = await import("./acl-builder.js");
192
+ configAcl = await buildAclFromConfig(aclCfg);
193
+ }
194
+ // [D9-002] Load 9 scalar mcp.* keys. Snake-case → camelCase.
195
+ const readStr = (k) => {
196
+ const v = config.get?.(k);
197
+ return typeof v === "string" ? v : undefined;
198
+ };
199
+ const readNum = (k) => {
200
+ const v = config.get?.(k);
201
+ if (typeof v === "number")
202
+ return v;
203
+ if (typeof v === "string" && v !== "") {
204
+ const n = Number(v);
205
+ if (!Number.isNaN(n))
206
+ return n;
207
+ }
208
+ return undefined;
209
+ };
210
+ const readBool = (k) => {
211
+ const v = config.get?.(k);
212
+ if (typeof v === "boolean")
213
+ return v;
214
+ if (typeof v === "string") {
215
+ if (v === "true")
216
+ return true;
217
+ if (v === "false")
218
+ return false;
219
+ }
220
+ return undefined;
221
+ };
222
+ configBusDefaults.transport = readStr("mcp.transport");
223
+ configBusDefaults.host = readStr("mcp.host");
224
+ configBusDefaults.port = readNum("mcp.port");
225
+ configBusDefaults.name = readStr("mcp.name");
226
+ configBusDefaults.logLevel = readStr("mcp.log_level");
227
+ configBusDefaults.validateInputs = readBool("mcp.validate_inputs");
228
+ configBusDefaults.explorer = readBool("mcp.explorer");
229
+ configBusDefaults.explorerPrefix = readStr("mcp.explorer_prefix");
230
+ configBusDefaults.requireAuth = readBool("mcp.require_auth");
81
231
  }
82
232
  }
83
233
  catch {
84
- // apcore-js not installed — fall through to error
234
+ // apcore-js not installed or Config Bus not available use strategy param as-is
235
+ }
236
+ const combinedMiddleware = [...configMiddleware];
237
+ if (callerMiddleware && callerMiddleware.length > 0) {
238
+ combinedMiddleware.push(...callerMiddleware);
85
239
  }
86
- throw new Error("serve() requires an Executor instance, or apcore-js must be installed to auto-create one from a Registry.");
240
+ // Caller-supplied ACL wins over Config Bus.
241
+ const effectiveAcl = callerAcl !== undefined ? callerAcl : configAcl;
242
+ return { resolvedStrategy, combinedMiddleware, effectiveAcl, configBusDefaults };
87
243
  }
88
244
  /**
89
- * Launch an MCP Server that exposes all apcore modules as tools.
90
- *
91
- * @param registryOrExecutor - An apcore Registry or Executor instance.
92
- * @param options - Server configuration options.
245
+ * Validate common serve/asyncServe options. Throws on invalid input.
93
246
  */
94
- export async function serve(registryOrExecutor, options = {}) {
95
- const { transport = "stdio", host = "127.0.0.1", port = 8000, name = "apcore-mcp", version = VERSION, validateInputs, tags, prefix, logLevel, onStartup, onShutdown, metricsCollector, explorer = false, explorerPrefix = "/explorer", allowExecute = false, explorerTitle = "APCore MCP Explorer", explorerProjectName = "apcore-mcp", explorerProjectUrl = "https://github.com/aiperceivable/apcore-mcp-typescript", authenticator, requireAuth, exemptPaths, approvalHandler, outputFormatter, } = options;
96
- // Input validation (matching Python's checks)
247
+ function validateServeOptions(options) {
248
+ const name = options.name ?? "apcore-mcp";
97
249
  if (!name || name.length === 0) {
98
250
  throw new Error("name must not be empty");
99
251
  }
100
252
  if (name.length > 255) {
101
253
  throw new Error("name must not exceed 255 characters");
102
254
  }
103
- if (tags) {
104
- for (const tag of tags) {
255
+ if (options.tags) {
256
+ for (const tag of options.tags) {
105
257
  if (!tag || tag.length === 0) {
106
258
  throw new Error("tags must not contain empty strings");
107
259
  }
108
260
  }
109
261
  }
110
- if (prefix !== undefined && prefix !== null && prefix.length === 0) {
262
+ if (options.prefix !== undefined && options.prefix !== null && options.prefix.length === 0) {
111
263
  throw new Error("prefix must not be empty if provided");
112
264
  }
113
- if (explorer && !explorerPrefix.startsWith("/")) {
265
+ if (options.explorer && !(options.explorerPrefix ?? "/explorer").startsWith("/")) {
114
266
  throw new Error("explorerPrefix must start with '/'");
115
267
  }
116
- // Save original console methods before suppression
268
+ }
269
+ /**
270
+ * Launch an MCP Server that exposes all apcore modules as tools.
271
+ *
272
+ * @param registryOrExecutor - An apcore Registry or Executor instance.
273
+ * @param options - Server configuration options.
274
+ */
275
+ export async function serve(registryOrExecutor, options = {}) {
276
+ // [D9-002] Apply caller-wins precedence: caller option → Config Bus → hardcoded
277
+ // default. We can't tell at the destructure step whether a value came from the
278
+ // caller or from a hardcoded default, so for the 9 scalar keys we destructure
279
+ // raw (no inline default) and resolve below, after loadConfigBusOverrides runs.
280
+ const { transport: optTransport, host: optHost, port: optPort, name: optName, version = VERSION, validateInputs: optValidateInputs, tags, prefix, logLevel: optLogLevel, onStartup, onShutdown, metricsCollector, explorer: optExplorer, explorerPrefix: optExplorerPrefix, allowExecute = false, explorerTitle = "APCore MCP Explorer", explorerProjectName = "apcore-mcp", explorerProjectUrl = "https://github.com/aiperceivable/apcore-mcp-typescript", authenticator, requireAuth: optRequireAuth, exemptPaths, approvalHandler, outputFormatter, redactOutput, strategy, trace, middleware: callerMiddleware, acl: callerAcl, observability: observabilityFlag, async: asyncFlag, } = options;
281
+ // Save original console methods before suppression. Suppression itself
282
+ // happens AFTER Config Bus resolution so that `mcp.log_level` from YAML or
283
+ // `APCORE_MCP_LOG_LEVEL` from env can drive it. [D9-002]
117
284
  const origDebug = console.debug;
118
285
  const origInfo = console.info;
119
286
  const origWarn = console.warn;
120
287
  const origError = console.error;
121
- // Apply log-level suppression
288
+ // ── F-040: YAML Pipeline Config via Config Bus ─────────────────────
289
+ const { resolvedStrategy, combinedMiddleware, effectiveAcl, configBusDefaults } = await loadConfigBusOverrides(strategy, callerMiddleware, callerAcl);
290
+ // [D9-002] Resolve scalar config values: caller → Config Bus → hardcoded default.
291
+ const transport = optTransport ?? configBusDefaults.transport ?? "stdio";
292
+ const host = optHost ?? configBusDefaults.host ?? "127.0.0.1";
293
+ const port = optPort ?? configBusDefaults.port ?? 8000;
294
+ const name = optName ?? configBusDefaults.name ?? "apcore-mcp";
295
+ const validateInputs = optValidateInputs ?? configBusDefaults.validateInputs;
296
+ const logLevel = optLogLevel ?? configBusDefaults.logLevel;
297
+ const explorer = optExplorer ?? configBusDefaults.explorer ?? false;
298
+ const explorerPrefix = optExplorerPrefix ?? configBusDefaults.explorerPrefix ?? "/explorer";
299
+ const requireAuth = optRequireAuth ?? configBusDefaults.requireAuth;
300
+ // Input validation (matching Python's checks) — moved here so it sees
301
+ // Config-Bus-resolved values.
302
+ validateServeOptions({ name, tags, prefix, explorer, explorerPrefix });
303
+ // Apply log-level suppression (post-resolution so Config Bus values apply).
122
304
  if (logLevel) {
123
305
  const levels = ["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"];
124
306
  const minLevel = levels.indexOf(logLevel);
@@ -132,25 +314,74 @@ export async function serve(registryOrExecutor, options = {}) {
132
314
  console.error = () => { };
133
315
  }
134
316
  const registry = resolveRegistry(registryOrExecutor);
135
- const executor = await resolveExecutor(registryOrExecutor, { approvalHandler });
317
+ const executor = await resolveExecutor(registryOrExecutor, {
318
+ approvalHandler,
319
+ strategy: resolvedStrategy,
320
+ middleware: combinedMiddleware,
321
+ acl: effectiveAcl,
322
+ });
323
+ // ── F-044: observability auto-wire (metrics + usage middleware) ──────
324
+ const obsStack = await installObservability(executor, metricsCollector, observabilityFlag);
325
+ const resolvedMetricsCollector = obsStack.metricsCollector;
136
326
  // Register MCP config namespace and error formatter (idempotent)
137
327
  registerMcpNamespace();
138
328
  await registerMcpFormatter();
329
+ // Build output schema map for redaction
330
+ const outputSchemaMap = buildOutputSchemaMap(registry);
331
+ // ── F-043: AsyncTaskBridge ───────────────────────────────────────────
332
+ const asyncOpt = typeof asyncFlag === "object" ? asyncFlag : null;
333
+ const asyncEnabled = asyncFlag === undefined ? true : asyncFlag !== false;
334
+ const asyncBridge = asyncEnabled
335
+ ? await createAsyncTaskBridge(executor, {
336
+ enabled: true,
337
+ maxConcurrent: asyncOpt?.maxConcurrent,
338
+ maxTasks: asyncOpt?.maxTasks,
339
+ outputSchemaMap,
340
+ // [A-D-008]: enable ASYNC_MODULE_NOT_ASYNC enforcement on
341
+ // __apcore_task_submit by giving the bridge a way to fetch the
342
+ // descriptor for a module id.
343
+ descriptorLookup: (moduleId) => registry
344
+ .getDefinition?.(moduleId) ?? null,
345
+ })
346
+ : null;
139
347
  // Build MCP server components
140
348
  const factory = new MCPServerFactory();
141
349
  const server = factory.createServer(name, version);
142
- const tools = factory.buildTools(registry, { tags, prefix });
143
- const router = new ExecutionRouter(executor, { validateInputs, outputFormatter });
350
+ let tools = factory.buildTools(registry, { tags, prefix });
351
+ tools = factory.attachAsyncMetaTools(tools, asyncBridge ?? undefined);
352
+ const router = new ExecutionRouter(executor, {
353
+ validateInputs,
354
+ outputFormatter,
355
+ redactOutput,
356
+ outputSchemaMap,
357
+ trace,
358
+ asyncTaskBridge: asyncBridge ?? undefined,
359
+ });
144
360
  factory.registerHandlers(server, tools, router);
145
361
  factory.registerResourceHandlers(server, registry);
362
+ // Start dynamic tool registration listener if enabled
363
+ if (options.dynamic) {
364
+ const listener = new RegistryListener(registry, factory);
365
+ listener.start();
366
+ origInfo("Dynamic tool registration enabled via RegistryListener");
367
+ }
146
368
  origInfo(`Starting MCP server '${name}' v${version} with ${tools.length} tools via ${transport}`);
147
369
  // Invoke startup callback
148
370
  await onStartup?.();
149
371
  // Select and run transport
150
372
  const transportManager = new TransportManager();
151
373
  transportManager.setModuleCount(tools.length);
152
- if (metricsCollector) {
153
- transportManager.setMetricsCollector(metricsCollector);
374
+ if (resolvedMetricsCollector) {
375
+ transportManager.setMetricsCollector(resolvedMetricsCollector);
376
+ }
377
+ if (obsStack.usageCollector) {
378
+ transportManager.setUsageCollector(obsStack.usageCollector);
379
+ }
380
+ // [A-D-018] Wire the bridge so transport-level disconnect events
381
+ // trigger cancelSessionTasks(sessionId) for cooperative cancellation.
382
+ // Defensive call — older mocks/test doubles may lack the setter.
383
+ if (asyncBridge && typeof transportManager.setAsyncTaskBridge === "function") {
384
+ transportManager.setAsyncTaskBridge(asyncBridge);
154
385
  }
155
386
  if (authenticator) {
156
387
  transportManager.setAuthenticator(authenticator);
@@ -198,6 +429,14 @@ export async function serve(registryOrExecutor, options = {}) {
198
429
  console.info = origInfo;
199
430
  console.warn = origWarn;
200
431
  console.error = origError;
432
+ if (asyncBridge?.manager.shutdown) {
433
+ try {
434
+ await asyncBridge.manager.shutdown();
435
+ }
436
+ catch (err) {
437
+ origWarn("[apcore-mcp] AsyncTaskManager shutdown failed:", err);
438
+ }
439
+ }
201
440
  await onShutdown?.();
202
441
  }
203
442
  }
@@ -229,33 +468,30 @@ export async function serve(registryOrExecutor, options = {}) {
229
468
  * ```
230
469
  */
231
470
  export async function asyncServe(registryOrExecutor, options = {}) {
232
- const { name = "apcore-mcp", version = VERSION, validateInputs, tags, prefix, logLevel, metricsCollector, explorer = false, explorerPrefix = "/explorer", allowExecute = false, explorerTitle = "APCore MCP Explorer", explorerProjectName = "apcore-mcp", explorerProjectUrl = "https://github.com/aiperceivable/apcore-mcp-typescript", authenticator, requireAuth, exemptPaths, approvalHandler, endpoint, outputFormatter, } = options;
233
- // Input validation (same as serve())
234
- if (!name || name.length === 0) {
235
- throw new Error("name must not be empty");
236
- }
237
- if (name.length > 255) {
238
- throw new Error("name must not exceed 255 characters");
239
- }
240
- if (tags) {
241
- for (const tag of tags) {
242
- if (!tag || tag.length === 0) {
243
- throw new Error("tags must not contain empty strings");
244
- }
245
- }
246
- }
247
- if (prefix !== undefined && prefix !== null && prefix.length === 0) {
248
- throw new Error("prefix must not be empty if provided");
249
- }
250
- if (explorer && !explorerPrefix.startsWith("/")) {
251
- throw new Error("explorerPrefix must start with '/'");
252
- }
253
- // Save original console methods before suppression
471
+ // [D9-002] See serve() for the rationale on the optX naming and post-load resolution.
472
+ const { name: optName, version = VERSION, validateInputs: optValidateInputs, tags, prefix, logLevel: optLogLevel, metricsCollector, explorer: optExplorer, explorerPrefix: optExplorerPrefix, allowExecute = false, explorerTitle = "APCore MCP Explorer", explorerProjectName = "apcore-mcp", explorerProjectUrl = "https://github.com/aiperceivable/apcore-mcp-typescript", authenticator, requireAuth: optRequireAuth, exemptPaths, approvalHandler, endpoint, outputFormatter, redactOutput, strategy, trace, middleware: callerMiddleware, acl: callerAcl, observability: observabilityFlag, async: asyncFlag, } = options;
473
+ // Save original console methods before suppression. Suppression itself
474
+ // happens AFTER Config Bus resolution so that `mcp.log_level` from YAML or
475
+ // `APCORE_MCP_LOG_LEVEL` from env can drive it. [D9-002]
254
476
  const origDebug = console.debug;
255
477
  const origInfo = console.info;
256
478
  const origWarn = console.warn;
257
479
  const origError = console.error;
258
- // Apply log-level suppression
480
+ // ── F-040: YAML Pipeline Config via Config Bus ─────────────────────
481
+ const { resolvedStrategy, combinedMiddleware, effectiveAcl, configBusDefaults } = await loadConfigBusOverrides(strategy, callerMiddleware, callerAcl);
482
+ // [D9-002] Resolve scalar config values: caller → Config Bus → hardcoded default.
483
+ // asyncServe does not bind a transport (returns an ASGI-style app); transport,
484
+ // host, and port are not part of AsyncServeOptions.
485
+ const name = optName ?? configBusDefaults.name ?? "apcore-mcp";
486
+ const validateInputs = optValidateInputs ?? configBusDefaults.validateInputs;
487
+ const logLevel = optLogLevel ?? configBusDefaults.logLevel;
488
+ const explorer = optExplorer ?? configBusDefaults.explorer ?? false;
489
+ const explorerPrefix = optExplorerPrefix ?? configBusDefaults.explorerPrefix ?? "/explorer";
490
+ const requireAuth = optRequireAuth ?? configBusDefaults.requireAuth;
491
+ // Input validation (matching Python's checks) — moved here so it sees
492
+ // Config-Bus-resolved values.
493
+ validateServeOptions({ name, tags, prefix, explorer, explorerPrefix });
494
+ // Apply log-level suppression (post-resolution so Config Bus values apply).
259
495
  if (logLevel) {
260
496
  const levels = ["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"];
261
497
  const minLevel = levels.indexOf(logLevel);
@@ -269,23 +505,65 @@ export async function asyncServe(registryOrExecutor, options = {}) {
269
505
  console.error = () => { };
270
506
  }
271
507
  const registry = resolveRegistry(registryOrExecutor);
272
- const executor = await resolveExecutor(registryOrExecutor, { approvalHandler });
508
+ const executor = await resolveExecutor(registryOrExecutor, {
509
+ approvalHandler,
510
+ strategy: resolvedStrategy,
511
+ middleware: combinedMiddleware,
512
+ acl: effectiveAcl,
513
+ });
514
+ // ── F-044: observability auto-wire ───────────────────────────────────
515
+ const obsStack = await installObservability(executor, metricsCollector, observabilityFlag);
516
+ const resolvedMetricsCollector = obsStack.metricsCollector;
273
517
  // Register MCP config namespace and error formatter (idempotent)
274
518
  registerMcpNamespace();
275
519
  await registerMcpFormatter();
520
+ // Build output schema map for redaction
521
+ const outputSchemaMap = buildOutputSchemaMap(registry);
522
+ // ── F-043: AsyncTaskBridge ───────────────────────────────────────────
523
+ const asyncOpt = typeof asyncFlag === "object" ? asyncFlag : null;
524
+ const asyncEnabled = asyncFlag === undefined ? true : asyncFlag !== false;
525
+ const asyncBridge = asyncEnabled
526
+ ? await createAsyncTaskBridge(executor, {
527
+ enabled: true,
528
+ maxConcurrent: asyncOpt?.maxConcurrent,
529
+ maxTasks: asyncOpt?.maxTasks,
530
+ outputSchemaMap,
531
+ // [A-D-008]: enable ASYNC_MODULE_NOT_ASYNC enforcement on
532
+ // __apcore_task_submit by giving the bridge a way to fetch the
533
+ // descriptor for a module id.
534
+ descriptorLookup: (moduleId) => registry
535
+ .getDefinition?.(moduleId) ?? null,
536
+ })
537
+ : null;
276
538
  // Build MCP server components
277
539
  const factory = new MCPServerFactory();
278
540
  const server = factory.createServer(name, version);
279
- const tools = factory.buildTools(registry, { tags, prefix });
280
- const router = new ExecutionRouter(executor, { validateInputs, outputFormatter });
541
+ let tools = factory.buildTools(registry, { tags, prefix });
542
+ tools = factory.attachAsyncMetaTools(tools, asyncBridge ?? undefined);
543
+ const router = new ExecutionRouter(executor, {
544
+ validateInputs,
545
+ outputFormatter,
546
+ redactOutput,
547
+ outputSchemaMap,
548
+ trace,
549
+ asyncTaskBridge: asyncBridge ?? undefined,
550
+ });
281
551
  factory.registerHandlers(server, tools, router);
282
552
  factory.registerResourceHandlers(server, registry);
283
553
  console.info(`Building MCP app '${name}' v${version} with ${tools.length} tools`);
284
554
  // Configure transport manager
285
555
  const transportManager = new TransportManager();
286
556
  transportManager.setModuleCount(tools.length);
287
- if (metricsCollector) {
288
- transportManager.setMetricsCollector(metricsCollector);
557
+ if (resolvedMetricsCollector) {
558
+ transportManager.setMetricsCollector(resolvedMetricsCollector);
559
+ }
560
+ if (obsStack.usageCollector) {
561
+ transportManager.setUsageCollector(obsStack.usageCollector);
562
+ }
563
+ // [A-D-018] Same wiring as serve() — transport-level disconnect
564
+ // triggers cooperative cancellation of session-bound async tasks.
565
+ if (asyncBridge && typeof transportManager.setAsyncTaskBridge === "function") {
566
+ transportManager.setAsyncTaskBridge(asyncBridge);
289
567
  }
290
568
  if (authenticator) {
291
569
  transportManager.setAuthenticator(authenticator);
@@ -317,6 +595,14 @@ export async function asyncServe(registryOrExecutor, options = {}) {
317
595
  const originalClose = app.close;
318
596
  app.close = async () => {
319
597
  await originalClose();
598
+ if (asyncBridge?.manager.shutdown) {
599
+ try {
600
+ await asyncBridge.manager.shutdown();
601
+ }
602
+ catch (err) {
603
+ origWarn("[apcore-mcp] AsyncTaskManager shutdown failed:", err);
604
+ }
605
+ }
320
606
  console.debug = origDebug;
321
607
  console.info = origInfo;
322
608
  console.warn = origWarn;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/inspector/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/inspector/index.ts"],"names":[],"mappings":""}