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.
- package/LICENSE +190 -0
- package/README.md +246 -19
- package/dist/acl-builder.d.ts +43 -0
- package/dist/acl-builder.d.ts.map +1 -0
- package/dist/acl-builder.js +115 -0
- package/dist/acl-builder.js.map +1 -0
- package/dist/adapters/annotations.d.ts.map +1 -1
- package/dist/adapters/annotations.js +23 -2
- package/dist/adapters/annotations.js.map +1 -1
- package/dist/adapters/errors.d.ts +37 -0
- package/dist/adapters/errors.d.ts.map +1 -1
- package/dist/adapters/errors.js +213 -17
- package/dist/adapters/errors.js.map +1 -1
- package/dist/adapters/id-normalizer.d.ts +41 -0
- package/dist/adapters/id-normalizer.d.ts.map +1 -0
- package/dist/adapters/id-normalizer.js +56 -0
- package/dist/adapters/id-normalizer.js.map +1 -0
- package/dist/adapters/index.d.ts +2 -2
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +2 -2
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/{mcpErrorFormatter.d.ts → mcp-error-formatter.d.ts} +1 -1
- package/dist/adapters/mcp-error-formatter.d.ts.map +1 -0
- package/dist/adapters/{mcpErrorFormatter.js → mcp-error-formatter.js} +1 -1
- package/dist/adapters/mcp-error-formatter.js.map +1 -0
- package/dist/adapters/schema.d.ts +32 -4
- package/dist/adapters/schema.d.ts.map +1 -1
- package/dist/adapters/schema.js +190 -14
- package/dist/adapters/schema.js.map +1 -1
- package/dist/apcore-mcp.d.ts +25 -3
- package/dist/apcore-mcp.d.ts.map +1 -1
- package/dist/apcore-mcp.js +8 -0
- package/dist/apcore-mcp.js.map +1 -1
- package/dist/auth/hooks.d.ts +1 -1
- package/dist/auth/hooks.d.ts.map +1 -1
- package/dist/auth/hooks.js +10 -3
- package/dist/auth/hooks.js.map +1 -1
- package/dist/auth/index.d.ts +7 -0
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +7 -0
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/jwt.d.ts +1 -2
- package/dist/auth/jwt.d.ts.map +1 -1
- package/dist/auth/jwt.js +22 -11
- package/dist/auth/jwt.js.map +1 -1
- package/dist/auth/types.d.ts +6 -3
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +21 -1
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +6 -0
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +37 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +43 -0
- package/dist/constants.js.map +1 -0
- package/dist/converters/openai.d.ts +22 -0
- package/dist/converters/openai.d.ts.map +1 -1
- package/dist/converters/openai.js +128 -8
- package/dist/converters/openai.js.map +1 -1
- package/dist/index.d.ts +62 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +329 -108
- package/dist/index.js.map +1 -1
- package/dist/markdown.d.ts +54 -0
- package/dist/markdown.d.ts.map +1 -0
- package/dist/markdown.js +125 -0
- package/dist/markdown.js.map +1 -0
- package/dist/middleware-builder.d.ts +41 -0
- package/dist/middleware-builder.d.ts.map +1 -0
- package/dist/middleware-builder.js +129 -0
- package/dist/middleware-builder.js.map +1 -0
- package/dist/server/async-task-bridge.d.ts +228 -0
- package/dist/server/async-task-bridge.d.ts.map +1 -0
- package/dist/server/async-task-bridge.js +579 -0
- package/dist/server/async-task-bridge.js.map +1 -0
- package/dist/server/context.d.ts +17 -2
- package/dist/server/context.d.ts.map +1 -1
- package/dist/server/context.js +29 -6
- package/dist/server/context.js.map +1 -1
- package/dist/server/factory.d.ts +57 -3
- package/dist/server/factory.d.ts.map +1 -1
- package/dist/server/factory.js +179 -9
- package/dist/server/factory.js.map +1 -1
- package/dist/server/listener.d.ts +3 -0
- package/dist/server/listener.d.ts.map +1 -1
- package/dist/server/listener.js +13 -2
- package/dist/server/listener.js.map +1 -1
- package/dist/server/observability.d.ts +51 -0
- package/dist/server/observability.d.ts.map +1 -0
- package/dist/server/observability.js +96 -0
- package/dist/server/observability.js.map +1 -0
- package/dist/server/router.d.ts +103 -3
- package/dist/server/router.d.ts.map +1 -1
- package/dist/server/router.js +289 -25
- package/dist/server/router.js.map +1 -1
- package/dist/server/trace-context.d.ts +40 -0
- package/dist/server/trace-context.d.ts.map +1 -0
- package/dist/server/trace-context.js +67 -0
- package/dist/server/trace-context.js.map +1 -0
- package/dist/server/transport.d.ts +47 -1
- package/dist/server/transport.d.ts.map +1 -1
- package/dist/server/transport.js +147 -4
- package/dist/server/transport.js.map +1 -1
- package/dist/types.d.ts +16 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +12 -0
- package/dist/types.js.map +1 -1
- package/package.json +11 -8
- package/dist/adapters/idNormalizer.d.ts +0 -22
- package/dist/adapters/idNormalizer.d.ts.map +0 -1
- package/dist/adapters/idNormalizer.js +0 -30
- package/dist/adapters/idNormalizer.js.map +0 -1
- package/dist/adapters/mcpErrorFormatter.d.ts.map +0 -1
- package/dist/adapters/mcpErrorFormatter.js.map +0 -1
- package/dist/server/index.d.ts +0 -11
- package/dist/server/index.d.ts.map +0 -1
- package/dist/server/index.js +0 -8
- package/dist/server/index.js.map +0 -1
package/dist/auth/hooks.d.ts
CHANGED
|
@@ -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
|
package/dist/auth/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/auth/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
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"}
|
package/dist/auth/hooks.js
CHANGED
|
@@ -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
|
-
|
|
24
|
-
|
|
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
|
}
|
package/dist/auth/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/auth/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
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"}
|
package/dist/auth/index.d.ts
CHANGED
|
@@ -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";
|
package/dist/auth/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA
|
|
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"}
|
package/dist/auth/index.js
CHANGED
|
@@ -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";
|
package/dist/auth/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA
|
|
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"}
|
package/dist/auth/jwt.d.ts
CHANGED
|
@@ -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(
|
|
60
|
+
authenticate(headers: Record<string, string>): Promise<Identity | null>;
|
|
62
61
|
}
|
|
63
62
|
//# sourceMappingURL=jwt.d.ts.map
|
package/dist/auth/jwt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../src/auth/jwt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,
|
|
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
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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(
|
|
47
|
-
const authHeader =
|
|
47
|
+
async authenticate(headers) {
|
|
48
|
+
const authHeader = headers["authorization"] ?? headers["Authorization"];
|
|
48
49
|
if (!authHeader)
|
|
49
50
|
return null;
|
|
50
|
-
//
|
|
51
|
-
|
|
52
|
-
|
|
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 =
|
|
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
|
-
|
|
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
|
package/dist/auth/jwt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../src/auth/jwt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../src/auth/jwt.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/types.d.ts
CHANGED
|
@@ -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
|
|
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(
|
|
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
|
}
|
package/dist/auth/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,
|
|
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;
|
|
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
|
-
--
|
|
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":";AAEA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAG1F,SAAS,UAAU;IACjB,OAAO,CAAC,GAAG,CAAC;cACA,OAAO
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts.map
CHANGED
|
@@ -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,
|
|
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() {
|
package/dist/config.js.map
CHANGED
|
@@ -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;
|
|
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;
|
|
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"}
|