apcore-mcp 0.13.0 → 0.15.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 (120) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +246 -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 +23 -2
  9. package/dist/adapters/annotations.js.map +1 -1
  10. package/dist/adapters/errors.d.ts +37 -0
  11. package/dist/adapters/errors.d.ts.map +1 -1
  12. package/dist/adapters/errors.js +213 -17
  13. package/dist/adapters/errors.js.map +1 -1
  14. package/dist/adapters/id-normalizer.d.ts +41 -0
  15. package/dist/adapters/id-normalizer.d.ts.map +1 -0
  16. package/dist/adapters/id-normalizer.js +56 -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} +1 -1
  23. package/dist/adapters/mcp-error-formatter.d.ts.map +1 -0
  24. package/dist/adapters/{mcpErrorFormatter.js → mcp-error-formatter.js} +1 -1
  25. package/dist/adapters/mcp-error-formatter.js.map +1 -0
  26. package/dist/adapters/schema.d.ts +32 -4
  27. package/dist/adapters/schema.d.ts.map +1 -1
  28. package/dist/adapters/schema.js +190 -14
  29. package/dist/adapters/schema.js.map +1 -1
  30. package/dist/apcore-mcp.d.ts +25 -3
  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/index.d.ts +7 -0
  39. package/dist/auth/index.d.ts.map +1 -1
  40. package/dist/auth/index.js +7 -0
  41. package/dist/auth/index.js.map +1 -1
  42. package/dist/auth/jwt.d.ts +1 -2
  43. package/dist/auth/jwt.d.ts.map +1 -1
  44. package/dist/auth/jwt.js +22 -11
  45. package/dist/auth/jwt.js.map +1 -1
  46. package/dist/auth/types.d.ts +6 -3
  47. package/dist/auth/types.d.ts.map +1 -1
  48. package/dist/cli.d.ts.map +1 -1
  49. package/dist/cli.js +21 -1
  50. package/dist/cli.js.map +1 -1
  51. package/dist/config.d.ts.map +1 -1
  52. package/dist/config.js +6 -0
  53. package/dist/config.js.map +1 -1
  54. package/dist/constants.d.ts +37 -0
  55. package/dist/constants.d.ts.map +1 -0
  56. package/dist/constants.js +43 -0
  57. package/dist/constants.js.map +1 -0
  58. package/dist/converters/openai.d.ts +22 -0
  59. package/dist/converters/openai.d.ts.map +1 -1
  60. package/dist/converters/openai.js +128 -8
  61. package/dist/converters/openai.js.map +1 -1
  62. package/dist/index.d.ts +62 -7
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +329 -108
  65. package/dist/index.js.map +1 -1
  66. package/dist/markdown.d.ts +54 -0
  67. package/dist/markdown.d.ts.map +1 -0
  68. package/dist/markdown.js +125 -0
  69. package/dist/markdown.js.map +1 -0
  70. package/dist/middleware-builder.d.ts +41 -0
  71. package/dist/middleware-builder.d.ts.map +1 -0
  72. package/dist/middleware-builder.js +129 -0
  73. package/dist/middleware-builder.js.map +1 -0
  74. package/dist/server/async-task-bridge.d.ts +228 -0
  75. package/dist/server/async-task-bridge.d.ts.map +1 -0
  76. package/dist/server/async-task-bridge.js +579 -0
  77. package/dist/server/async-task-bridge.js.map +1 -0
  78. package/dist/server/context.d.ts +17 -2
  79. package/dist/server/context.d.ts.map +1 -1
  80. package/dist/server/context.js +29 -6
  81. package/dist/server/context.js.map +1 -1
  82. package/dist/server/factory.d.ts +57 -3
  83. package/dist/server/factory.d.ts.map +1 -1
  84. package/dist/server/factory.js +179 -9
  85. package/dist/server/factory.js.map +1 -1
  86. package/dist/server/listener.d.ts +3 -0
  87. package/dist/server/listener.d.ts.map +1 -1
  88. package/dist/server/listener.js +13 -2
  89. package/dist/server/listener.js.map +1 -1
  90. package/dist/server/observability.d.ts +51 -0
  91. package/dist/server/observability.d.ts.map +1 -0
  92. package/dist/server/observability.js +96 -0
  93. package/dist/server/observability.js.map +1 -0
  94. package/dist/server/router.d.ts +103 -3
  95. package/dist/server/router.d.ts.map +1 -1
  96. package/dist/server/router.js +289 -25
  97. package/dist/server/router.js.map +1 -1
  98. package/dist/server/trace-context.d.ts +40 -0
  99. package/dist/server/trace-context.d.ts.map +1 -0
  100. package/dist/server/trace-context.js +67 -0
  101. package/dist/server/trace-context.js.map +1 -0
  102. package/dist/server/transport.d.ts +47 -1
  103. package/dist/server/transport.d.ts.map +1 -1
  104. package/dist/server/transport.js +147 -4
  105. package/dist/server/transport.js.map +1 -1
  106. package/dist/types.d.ts +16 -5
  107. package/dist/types.d.ts.map +1 -1
  108. package/dist/types.js +12 -0
  109. package/dist/types.js.map +1 -1
  110. package/package.json +11 -8
  111. package/dist/adapters/idNormalizer.d.ts +0 -22
  112. package/dist/adapters/idNormalizer.d.ts.map +0 -1
  113. package/dist/adapters/idNormalizer.js +0 -30
  114. package/dist/adapters/idNormalizer.js.map +0 -1
  115. package/dist/adapters/mcpErrorFormatter.d.ts.map +0 -1
  116. package/dist/adapters/mcpErrorFormatter.js.map +0 -1
  117. package/dist/server/index.d.ts +0 -11
  118. package/dist/server/index.d.ts.map +0 -1
  119. package/dist/server/index.js +0 -8
  120. package/dist/server/index.js.map +0 -1
@@ -17,7 +17,7 @@ interface IncomingRequest {
17
17
  * Build an auth hook for mcp-embedded-ui that bridges to an Authenticator.
18
18
  *
19
19
  * The hook:
20
- * 1. Extracts headers from the incoming request
20
+ * 1. Extracts headers from the incoming request and converts to a flat map
21
21
  * 2. Delegates to `authenticator.authenticate()` for token validation
22
22
  * 3. Throws on auth failure (mcp-embedded-ui catches this and returns 401)
23
23
  * 4. Wraps `next()` in `identityStorage.run()` so `getCurrentIdentity()` works
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/auth/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD;;;GAGG;AACH,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;CACxD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,aAAa,GAC3B,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,CAS5E"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/auth/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD;;;GAGG;AACH,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;CACxD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,aAAa,GAC3B,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,CAe5E"}
@@ -10,7 +10,7 @@ import { identityStorage } from "./storage.js";
10
10
  * Build an auth hook for mcp-embedded-ui that bridges to an Authenticator.
11
11
  *
12
12
  * The hook:
13
- * 1. Extracts headers from the incoming request
13
+ * 1. Extracts headers from the incoming request and converts to a flat map
14
14
  * 2. Delegates to `authenticator.authenticate()` for token validation
15
15
  * 3. Throws on auth failure (mcp-embedded-ui catches this and returns 401)
16
16
  * 4. Wraps `next()` in `identityStorage.run()` so `getCurrentIdentity()` works
@@ -20,8 +20,15 @@ import { identityStorage } from "./storage.js";
20
20
  */
21
21
  export function buildExplorerAuthHook(authenticator) {
22
22
  return async (req, next) => {
23
- const shimReq = { headers: req.headers };
24
- const identity = await authenticator.authenticate(shimReq);
23
+ // Flatten headers to Record<string, string> for the Authenticator interface.
24
+ // Multi-value headers are joined with ", " per HTTP/1.1 convention.
25
+ const headersMap = {};
26
+ for (const [key, value] of Object.entries(req.headers)) {
27
+ if (value === undefined)
28
+ continue;
29
+ headersMap[key.toLowerCase()] = Array.isArray(value) ? value.join(", ") : value;
30
+ }
31
+ const identity = await authenticator.authenticate(headersMap);
25
32
  if (!identity) {
26
33
  throw new Error("Unauthorized");
27
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/auth/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAU/C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CACnC,aAA4B;IAE5B,OAAO,KAAK,EAAE,GAAoB,EAAE,IAA6B,EAAE,EAAE;QACnE,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAgC,CAAC;QACvE,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/auth/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAU/C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CACnC,aAA4B;IAE5B,OAAO,KAAK,EAAE,GAAoB,EAAE,IAA6B,EAAE,EAAE;QACnE,6EAA6E;QAC7E,oEAAoE;QACpE,MAAM,UAAU,GAA2B,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACvD,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAS;YAClC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAClF,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC;AACJ,CAAC"}
@@ -1,5 +1,12 @@
1
1
  /**
2
2
  * Auth module barrel exports.
3
+ *
4
+ * NOTE [A-D-230 / D9-003]: `createAuthMiddleware` (and `./middleware.ts`)
5
+ * have been removed. The factory was orphan code with no production caller
6
+ * inside the bridge, and asyncServe never wired it into the HTTP transport.
7
+ * A future PR landing the asyncServe wiring should reintroduce a fresh
8
+ * middleware module that integrates with the live transport stack rather
9
+ * than resurrect a stale stub.
3
10
  */
4
11
  export type { Authenticator, Identity } from "./types.js";
5
12
  export { JWTAuthenticator } from "./jwt.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC"}
@@ -1,5 +1,12 @@
1
1
  /**
2
2
  * Auth module barrel exports.
3
+ *
4
+ * NOTE [A-D-230 / D9-003]: `createAuthMiddleware` (and `./middleware.ts`)
5
+ * have been removed. The factory was orphan code with no production caller
6
+ * inside the bridge, and asyncServe never wired it into the HTTP transport.
7
+ * A future PR landing the asyncServe wiring should reintroduce a fresh
8
+ * middleware module that integrates with the live transport stack rather
9
+ * than resurrect a stale stub.
3
10
  */
4
11
  export { JWTAuthenticator } from "./jwt.js";
5
12
  export { identityStorage, getCurrentIdentity } from "./storage.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC"}
@@ -3,7 +3,6 @@
3
3
  *
4
4
  * Mirrors the Python `JWTAuthenticator` from apcore-mcp-python.
5
5
  */
6
- import type { IncomingMessage } from "node:http";
7
6
  import jwt from "jsonwebtoken";
8
7
  import { type Identity } from "apcore-js";
9
8
  import type { Authenticator } from "./types.js";
@@ -58,6 +57,6 @@ export declare class JWTAuthenticator implements Authenticator {
58
57
  constructor(options: JWTAuthenticatorOptions);
59
58
  /** Whether unauthenticated requests should be rejected. */
60
59
  get requireAuth(): boolean;
61
- authenticate(req: IncomingMessage): Promise<Identity | null>;
60
+ authenticate(headers: Record<string, string>): Promise<Identity | null>;
62
61
  }
63
62
  //# sourceMappingURL=jwt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../src/auth/jwt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,gDAAgD;IAChD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,mDAAmD;AACnD,MAAM,WAAW,uBAAuB;IACtC,gFAAgF;IAChF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC;IAC7B,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,yGAAyG;IACzG,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,qBAAa,gBAAiB,YAAW,aAAa;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+D;IAC7F,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAW;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;gBAE3B,OAAO,EAAE,uBAAuB;IAmB5C,2DAA2D;IAC3D,IAAI,WAAW,IAAI,OAAO,CAEzB;IAEK,YAAY,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAsDnE"}
1
+ {"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../src/auth/jwt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,gDAAgD;IAChD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,mDAAmD;AACnD,MAAM,WAAW,uBAAuB;IACtC,gFAAgF;IAChF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC;IAC7B,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,yGAAyG;IACzG,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,qBAAa,gBAAiB,YAAW,aAAa;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+D;IAC7F,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAW;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;gBAE3B,OAAO,EAAE,uBAAuB;IAoB5C,2DAA2D;IAC3D,IAAI,WAAW,IAAI,OAAO,CAEzB;IAEK,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAgE9E"}
package/dist/auth/jwt.js CHANGED
@@ -23,10 +23,11 @@ export class JWTAuthenticator {
23
23
  _requireAuth;
24
24
  constructor(options) {
25
25
  const keyValue = options.key ?? options.secret;
26
- if (!keyValue) {
27
- throw new Error("JWTAuthenticator requires a 'key' (or deprecated 'secret') option");
28
- }
29
- this._secret = keyValue;
26
+ // [D10-008] Do NOT throw at construction time for missing key.
27
+ // Python + Rust don't validate the key at construction; they fail
28
+ // gracefully (return null) when authenticate() is called without a valid key.
29
+ // requireAuth belongs on AuthMiddleware, not on the authenticator itself.
30
+ this._secret = keyValue ?? "";
30
31
  this._algorithms = options.algorithms ?? ["HS256"];
31
32
  this._audience = options.audience;
32
33
  this._issuer = options.issuer;
@@ -43,20 +44,27 @@ export class JWTAuthenticator {
43
44
  get requireAuth() {
44
45
  return this._requireAuth;
45
46
  }
46
- async authenticate(req) {
47
- const authHeader = req.headers.authorization;
47
+ async authenticate(headers) {
48
+ const authHeader = headers["authorization"] ?? headers["Authorization"];
48
49
  if (!authHeader)
49
50
  return null;
50
- // Must be "Bearer <token>"
51
- const parts = authHeader.split(" ");
52
- if (parts.length !== 2 || parts[0].toLowerCase() !== "bearer")
51
+ // Case-insensitive "Bearer " prefix; tolerate extra whitespace between the
52
+ // prefix and the token (real-world reverse proxies and auth headers can
53
+ // emit double spaces). Matches apcore-mcp-python (auth_header[7:].strip())
54
+ // and apcore-mcp-rust (auth_header[7..].trim()) behaviour. See D10-004.
55
+ if (!authHeader.toLowerCase().startsWith("bearer "))
53
56
  return null;
54
- const token = parts[1];
57
+ const token = authHeader.slice(7).trim();
55
58
  if (!token)
56
59
  return null;
57
60
  try {
58
61
  const verifyOptions = {
59
62
  algorithms: this._algorithms,
63
+ // [JWT-3] Spec mandates ~30s clock-skew leeway. jsonwebtoken's
64
+ // default clockTolerance is 0; without this, NTP drift between
65
+ // issuer and server produces spurious 401s on tokens valid
66
+ // within ±30s of expiry/nbf.
67
+ clockTolerance: 30,
60
68
  };
61
69
  if (this._audience)
62
70
  verifyOptions.audience = this._audience;
@@ -76,7 +84,10 @@ export class JWTAuthenticator {
76
84
  if (rawId === undefined || rawId === null)
77
85
  return null;
78
86
  const id = String(rawId);
79
- const type = String(claims[this._claimMapping.type] ?? "user");
87
+ // [D11-107] Match Python's `claims.get(...) or "user"` semantics —
88
+ // empty string, null, undefined, or non-string all fall back to "user".
89
+ const rawType = claims[this._claimMapping.type];
90
+ const type = typeof rawType === "string" && rawType.length > 0 ? rawType : "user";
80
91
  const rawRoles = claims[this._claimMapping.roles];
81
92
  const roles = Array.isArray(rawRoles) ? rawRoles.map(String) : [];
82
93
  // Extract attrs from payload
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../src/auth/jwt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../src/auth/jwt.ts"],"names":[],"mappings":"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"}
@@ -4,17 +4,20 @@
4
4
  * Re-exports the Identity type from apcore-js and defines the
5
5
  * Authenticator interface that transport-level auth implementations must satisfy.
6
6
  */
7
- import type { IncomingMessage } from "node:http";
8
7
  import type { Identity } from "apcore-js";
9
8
  export type { Identity };
10
9
  /**
11
10
  * Authenticator interface — implemented by auth strategies (e.g. JWT).
12
11
  *
13
- * `authenticate()` inspects incoming HTTP headers and returns an Identity
12
+ * `authenticate()` inspects a flat headers map and returns an Identity
14
13
  * for authenticated requests, or `null` for unauthenticated/invalid requests.
14
+ *
15
+ * The transport layer extracts headers from IncomingMessage before calling
16
+ * this method, keeping auth logic decoupled from the HTTP stack (matching
17
+ * Python `authenticate(headers: dict)` and Rust `authenticate(&HashMap)`).
15
18
  */
16
19
  export interface Authenticator {
17
- authenticate(req: IncomingMessage): Promise<Identity | null>;
20
+ authenticate(headers: Record<string, string>): Promise<Identity | null>;
18
21
  /** Whether unauthenticated requests should be rejected. Default true. */
19
22
  readonly requireAuth?: boolean;
20
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAG1C,YAAY,EAAE,QAAQ,EAAE,CAAC;AAEzB;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAC7D,yEAAyE;IACzE,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAG1C,YAAY,EAAE,QAAQ,EAAE,CAAC;AAEzB;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IACxE,yEAAyE;IACzE,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC"}
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG;AA8CH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAgN1C"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;GAOG;AAkDH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAoO1C"}
package/dist/cli.js CHANGED
@@ -39,7 +39,11 @@ Options:
39
39
  --jwt-permissive Permissive mode: allow unauthenticated requests (overrides --jwt-require-auth)
40
40
  --strategy <name> Execution strategy: standard, internal, testing, performance, minimal
41
41
  --approval <mode> Approval mode: elicit, auto-approve, always-deny, off (default: off)
42
- --exempt-paths <paths> Comma-separated paths exempt from auth (default: /health,/metrics)
42
+ --output-format <type> Built-in output format: json, csv, jsonl (default: json)
43
+ --exempt-paths <paths> Comma-separated paths exempt from auth (default: /health,/metrics; /usage requires auth per D11-2 contract)
44
+ --observability Enable metrics + usage middleware and expose /metrics and /usage endpoints
45
+ --async Enable the Async Task Bridge (default: on; use --no-async to disable)
46
+ --no-async Disable the Async Task Bridge
43
47
  --help Show this help message
44
48
  `);
45
49
  }
@@ -71,7 +75,11 @@ export async function main() {
71
75
  "jwt-permissive": { type: "boolean", default: false },
72
76
  approval: { type: "string", default: "off" },
73
77
  strategy: { type: "string" },
78
+ "output-format": { type: "string", default: "json" },
74
79
  "exempt-paths": { type: "string" },
80
+ observability: { type: "boolean", default: false },
81
+ async: { type: "boolean", default: true },
82
+ "no-async": { type: "boolean", default: false },
75
83
  help: { type: "boolean", default: false },
76
84
  },
77
85
  strict: true,
@@ -153,6 +161,12 @@ export async function main() {
153
161
  fail(`--strategy must be one of: ${validStrategies.join(", ")}. Got '${strategy}'.`);
154
162
  }
155
163
  }
164
+ // Validate output-format
165
+ const outputFormat = values["output-format"];
166
+ const validOutputFormats = ["json", "csv", "jsonl"];
167
+ if (outputFormat && !validOutputFormats.includes(outputFormat)) {
168
+ fail(`--output-format must be one of: ${validOutputFormats.join(", ")}. Got '${outputFormat}'.`);
169
+ }
156
170
  let approvalHandler;
157
171
  if (approvalMode === "elicit") {
158
172
  approvalHandler = new ElicitationApprovalHandler();
@@ -217,6 +231,9 @@ export async function main() {
217
231
  const exemptPaths = exemptPathsRaw
218
232
  ? exemptPathsRaw.split(",").map((p) => p.trim())
219
233
  : undefined;
234
+ const observabilityEnabled = values.observability;
235
+ const asyncDisabled = values["no-async"];
236
+ const asyncEnabled = asyncDisabled ? false : values.async;
220
237
  // Launch the MCP server
221
238
  try {
222
239
  await serve(registry, {
@@ -233,6 +250,9 @@ export async function main() {
233
250
  exemptPaths,
234
251
  approvalHandler,
235
252
  strategy,
253
+ outputFormat: outputFormat,
254
+ observability: observabilityEnabled,
255
+ async: asyncEnabled,
236
256
  });
237
257
  }
238
258
  catch (error) {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,aAAa,QAAQ,CAAC;AACnC,eAAO,MAAM,cAAc,eAAe,CAAC;AAE3C,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAUhD,CAAC;AAEF,wEAAwE;AACxE,wBAAgB,oBAAoB,IAAI,IAAI,CAe3C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,aAAa,QAAQ,CAAC;AACnC,eAAO,MAAM,cAAc,eAAe,CAAC;AAE3C,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAgBhD,CAAC;AAEF,wEAAwE;AACxE,wBAAgB,oBAAoB,IAAI,IAAI,CAe3C"}
package/dist/config.js CHANGED
@@ -17,6 +17,12 @@ export const MCP_DEFAULTS = {
17
17
  explorer: false,
18
18
  explorer_prefix: "/explorer",
19
19
  require_auth: true,
20
+ // Declarative middleware list — each entry is { type: string, ...kwargs }.
21
+ // See middleware-builder.ts for supported types.
22
+ middleware: [],
23
+ // Declarative ACL — { default_effect: "deny"|"allow", rules: [ACLRule...] }.
24
+ // null / empty means "no ACL" (allow all). See acl-builder.ts.
25
+ acl: null,
20
26
  };
21
27
  /** Register the 'mcp' config namespace. Safe to call multiple times. */
22
28
  export function registerMcpNamespace() {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC;AACnC,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC;AAE3C,MAAM,CAAC,MAAM,YAAY,GAA4B;IACnD,SAAS,EAAE,OAAO;IAClB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,YAAY;IAClB,SAAS,EAAE,IAAI;IACf,eAAe,EAAE,KAAK;IACtB,QAAQ,EAAE,KAAK;IACf,eAAe,EAAE,WAAW;IAC5B,YAAY,EAAE,IAAI;CACnB,CAAC;AAEF,wEAAwE;AACxE,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC;QACH,MAAM,GAAG,GAAI,MAA6C,CAAC,mBAAmB,CAEjE,CAAC;QACd,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC;gBACF,IAAI,EAAE,aAAa;gBACnB,SAAS,EAAE,cAAc;gBACzB,QAAQ,EAAE,YAAY;aACvB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,kFAAkF;IACpF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC;AACnC,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC;AAE3C,MAAM,CAAC,MAAM,YAAY,GAA4B;IACnD,SAAS,EAAE,OAAO;IAClB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,YAAY;IAClB,SAAS,EAAE,IAAI;IACf,eAAe,EAAE,KAAK;IACtB,QAAQ,EAAE,KAAK;IACf,eAAe,EAAE,WAAW;IAC5B,YAAY,EAAE,IAAI;IAClB,2EAA2E;IAC3E,iDAAiD;IACjD,UAAU,EAAE,EAAE;IACd,6EAA6E;IAC7E,+DAA+D;IAC/D,GAAG,EAAE,IAAI;CACV,CAAC;AAEF,wEAAwE;AACxE,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC;QACH,MAAM,GAAG,GAAI,MAA6C,CAAC,mBAAmB,CAEjE,CAAC;QACd,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC;gBACF,IAAI,EAAE,aAAa;gBACnB,SAAS,EAAE,cAAc;gBACzB,QAAQ,EAAE,YAAY;aACvB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,kFAAkF;IACpF,CAAC;AACH,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * apcore-mcp bridge — centralized constants module.
3
+ *
4
+ * Mirrors:
5
+ * - Python: `src/apcore_mcp/constants.py`
6
+ * - Rust: `src/constants.rs`
7
+ *
8
+ * [D8-005] Structural-parity addition: the TypeScript SDK historically
9
+ * distributed its constants across `src/types.ts` (ErrorCodes,
10
+ * REGISTRY_EVENTS, APCORE_EVENTS, MODULE_ID_PATTERN), `src/config.ts`
11
+ * (MCP_NAMESPACE, MCP_ENV_PREFIX, MCP_DEFAULTS), and `src/helpers.ts`
12
+ * (MCP_PROGRESS_KEY, MCP_ELICIT_KEY). Each of those modules remains the
13
+ * canonical source so the existing imports stay green, but this file
14
+ * re-exports them through a single barrel for cross-language structural
15
+ * parity with the python/rust SDKs and for new code that wants one
16
+ * import line. Add new shared constants here directly.
17
+ */
18
+ export { REGISTRY_EVENTS, ErrorCodes, APCORE_EVENTS, MODULE_ID_PATTERN, } from "./types.js";
19
+ export { MCP_NAMESPACE, MCP_ENV_PREFIX, MCP_DEFAULTS, } from "./config.js";
20
+ export { MCP_PROGRESS_KEY, MCP_ELICIT_KEY, } from "./helpers.js";
21
+ /** Default TCP host for HTTP-based MCP transports. */
22
+ export declare const DEFAULT_HOST = "127.0.0.1";
23
+ /** Default TCP port for HTTP-based MCP transports. */
24
+ export declare const DEFAULT_PORT = 8000;
25
+ /** Default MCP server name. */
26
+ export declare const DEFAULT_SERVER_NAME = "apcore-mcp";
27
+ /** Default explorer URL prefix. */
28
+ export declare const DEFAULT_EXPLORER_PREFIX = "/explorer";
29
+ /** Canonical MCP transport identifiers accepted by `serve()`. */
30
+ export declare const TRANSPORTS: Readonly<{
31
+ readonly STDIO: "stdio";
32
+ readonly STREAMABLE_HTTP: "streamable-http";
33
+ readonly SSE: "sse";
34
+ }>;
35
+ /** Union type of valid transport names. */
36
+ export type TransportName = (typeof TRANSPORTS)[keyof typeof TRANSPORTS];
37
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,eAAe,EACf,UAAU,EACV,aAAa,EACb,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,cAAc,EACd,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,EAChB,cAAc,GACf,MAAM,cAAc,CAAC;AAUtB,sDAAsD;AACtD,eAAO,MAAM,YAAY,cAAc,CAAC;AAExC,sDAAsD;AACtD,eAAO,MAAM,YAAY,OAAO,CAAC;AAEjC,+BAA+B;AAC/B,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD,mCAAmC;AACnC,eAAO,MAAM,uBAAuB,cAAc,CAAC;AAInD,iEAAiE;AACjE,eAAO,MAAM,UAAU;;;;EAIZ,CAAC;AAEZ,2CAA2C;AAC3C,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * apcore-mcp bridge — centralized constants module.
3
+ *
4
+ * Mirrors:
5
+ * - Python: `src/apcore_mcp/constants.py`
6
+ * - Rust: `src/constants.rs`
7
+ *
8
+ * [D8-005] Structural-parity addition: the TypeScript SDK historically
9
+ * distributed its constants across `src/types.ts` (ErrorCodes,
10
+ * REGISTRY_EVENTS, APCORE_EVENTS, MODULE_ID_PATTERN), `src/config.ts`
11
+ * (MCP_NAMESPACE, MCP_ENV_PREFIX, MCP_DEFAULTS), and `src/helpers.ts`
12
+ * (MCP_PROGRESS_KEY, MCP_ELICIT_KEY). Each of those modules remains the
13
+ * canonical source so the existing imports stay green, but this file
14
+ * re-exports them through a single barrel for cross-language structural
15
+ * parity with the python/rust SDKs and for new code that wants one
16
+ * import line. Add new shared constants here directly.
17
+ */
18
+ export { REGISTRY_EVENTS, ErrorCodes, APCORE_EVENTS, MODULE_ID_PATTERN, } from "./types.js";
19
+ export { MCP_NAMESPACE, MCP_ENV_PREFIX, MCP_DEFAULTS, } from "./config.js";
20
+ export { MCP_PROGRESS_KEY, MCP_ELICIT_KEY, } from "./helpers.js";
21
+ // ─── Transport / server defaults ─────────────────────────────────────────────
22
+ //
23
+ // These mirror the values hardcoded in `serve()` and `MCP_DEFAULTS` so
24
+ // consumers (and downstream apcore-toolkit integrations) can reference one
25
+ // canonical name instead of duplicating literals. The values must stay in
26
+ // lock-step with `src/config.ts:MCP_DEFAULTS` and the `?? ...` fallbacks in
27
+ // `src/index.ts::serve`.
28
+ /** Default TCP host for HTTP-based MCP transports. */
29
+ export const DEFAULT_HOST = "127.0.0.1";
30
+ /** Default TCP port for HTTP-based MCP transports. */
31
+ export const DEFAULT_PORT = 8000;
32
+ /** Default MCP server name. */
33
+ export const DEFAULT_SERVER_NAME = "apcore-mcp";
34
+ /** Default explorer URL prefix. */
35
+ export const DEFAULT_EXPLORER_PREFIX = "/explorer";
36
+ // ─── Transport names ─────────────────────────────────────────────────────────
37
+ /** Canonical MCP transport identifiers accepted by `serve()`. */
38
+ export const TRANSPORTS = Object.freeze({
39
+ STDIO: "stdio",
40
+ STREAMABLE_HTTP: "streamable-http",
41
+ SSE: "sse",
42
+ });
43
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,eAAe,EACf,UAAU,EACV,aAAa,EACb,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,cAAc,EACd,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,EAChB,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,gFAAgF;AAChF,EAAE;AACF,uEAAuE;AACvE,2EAA2E;AAC3E,0EAA0E;AAC1E,4EAA4E;AAC5E,yBAAyB;AAEzB,sDAAsD;AACtD,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC;AAExC,sDAAsD;AACtD,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AAEjC,+BAA+B;AAC/B,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC;AAEhD,mCAAmC;AACnC,MAAM,CAAC,MAAM,uBAAuB,GAAG,WAAW,CAAC;AAEnD,gFAAgF;AAEhF,iEAAiE;AACjE,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,KAAK,EAAE,OAAO;IACd,eAAe,EAAE,iBAAiB;IAClC,GAAG,EAAE,KAAK;CACF,CAAC,CAAC"}
@@ -12,6 +12,17 @@ export interface ConvertOptions {
12
12
  embedAnnotations?: boolean;
13
13
  /** If true, apply OpenAI strict-mode transformations to the schema. */
14
14
  strict?: boolean;
15
+ /**
16
+ * If true, replace the plain `description` with apcore-toolkit
17
+ * Markdown rendering (`formatModule({ style: "markdown" })`). LLMs
18
+ * select tools primarily from this field — Markdown packs more
19
+ * decision-relevant signal per token. Requires apcore-toolkit;
20
+ * the caller must `await primeMarkdownToolkit()` (or
21
+ * `MCPServerFactory.prepare()`) before this synchronous path can
22
+ * find the toolkit. Falls back to plain description when toolkit
23
+ * is unavailable.
24
+ */
25
+ richDescription?: boolean;
15
26
  }
16
27
  /** Extended options accepted by convertRegistry (adds filtering). */
17
28
  export interface ConvertRegistryOptions extends ConvertOptions {
@@ -40,6 +51,7 @@ export declare class OpenAIConverter {
40
51
  private readonly _schemaConverter;
41
52
  private readonly _annotationMapper;
42
53
  private readonly _idNormalizer;
54
+ private _warnedToolkitMissing;
43
55
  constructor();
44
56
  /**
45
57
  * Convert all modules in a Registry to OpenAI tool definitions.
@@ -82,6 +94,16 @@ export declare class OpenAIConverter {
82
94
  * @returns New schema with strict mode applied.
83
95
  */
84
96
  _applyStrictMode(schema: JsonSchema): JsonSchema;
97
+ /**
98
+ * Recursively promote `x-llm-description` → `description` when present.
99
+ * Mirrors Rust's `apply_strict_mode` step 1. [D11-003]
100
+ */
101
+ private _applyLlmDescriptions;
102
+ /**
103
+ * Recursively strip all keys starting with `x-` from every schema node.
104
+ * Mirrors Rust's `apply_strict_mode` step 2. [D11-003]
105
+ */
106
+ private _stripExtensions;
85
107
  /**
86
108
  * Recursively apply strict mode transformations to a schema node (in place).
87
109
  *
@@ -1 +1 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/converters/openai.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzF,+DAA+D;AAC/D,MAAM,WAAW,cAAc;IAC7B,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,qEAAqE;AACrE,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IACnD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IACrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;;IAQnD;;;;;;;;;;OAUG;IACH,eAAe,CACb,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,aAAa,EAAE;IA0BlB;;;;;;;;;;;;OAYG;IACH,iBAAiB,CACf,UAAU,EAAE,gBAAgB,EAC5B,OAAO,CAAC,EAAE,cAAc,GACvB,aAAa;IAsChB;;;;;;;;;;;;;OAaG;IACH,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;IAKhD;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;CAwD9B"}
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/converters/openai.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzF,+DAA+D;AAC/D,MAAM,WAAW,cAAc;IAC7B,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,qEAAqE;AACrE,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;IACnD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IACrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IAGnD,OAAO,CAAC,qBAAqB,CAAS;;IAQtC;;;;;;;;;;OAUG;IACH,eAAe,CACb,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,aAAa,EAAE;IA+ClB;;;;;;;;;;;;OAYG;IACH,iBAAiB,CACf,UAAU,EAAE,gBAAgB,EAC5B,OAAO,CAAC,EAAE,cAAc,GACvB,aAAa;IAyDhB;;;;;;;;;;;;;OAaG;IACH,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;IAahD;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAmB7B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAqBxB;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;CA6E9B"}