@frontmcp/sdk 0.1.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/README.md +11 -0
- package/package.json +29 -0
- package/src/constants.d.ts +30 -0
- package/src/constants.js +36 -0
- package/src/constants.js.map +1 -0
- package/src/decorators/adapter.decorator.d.ts +7 -0
- package/src/decorators/adapter.decorator.js +20 -0
- package/src/decorators/adapter.decorator.js.map +1 -0
- package/src/decorators/app.decorator.d.ts +7 -0
- package/src/decorators/app.decorator.js +44 -0
- package/src/decorators/app.decorator.js.map +1 -0
- package/src/decorators/auth-provider.decorator.d.ts +7 -0
- package/src/decorators/auth-provider.decorator.js +20 -0
- package/src/decorators/auth-provider.decorator.js.map +1 -0
- package/src/decorators/flow-hooks.decorator.d.ts +12 -0
- package/src/decorators/flow-hooks.decorator.js +63 -0
- package/src/decorators/flow-hooks.decorator.js.map +1 -0
- package/src/decorators/flow.decorator.d.ts +6 -0
- package/src/decorators/flow.decorator.js +19 -0
- package/src/decorators/flow.decorator.js.map +1 -0
- package/src/decorators/front-mcp.decorator.d.ts +6 -0
- package/src/decorators/front-mcp.decorator.js +40 -0
- package/src/decorators/front-mcp.decorator.js.map +1 -0
- package/src/decorators/index.d.ts +12 -0
- package/src/decorators/index.js +16 -0
- package/src/decorators/index.js.map +1 -0
- package/src/decorators/logger.decorator.d.ts +7 -0
- package/src/decorators/logger.decorator.js +20 -0
- package/src/decorators/logger.decorator.js.map +1 -0
- package/src/decorators/plugin.decorator.d.ts +7 -0
- package/src/decorators/plugin.decorator.js +38 -0
- package/src/decorators/plugin.decorator.js.map +1 -0
- package/src/decorators/prompt.decorator.d.ts +13 -0
- package/src/decorators/prompt.decorator.js +38 -0
- package/src/decorators/prompt.decorator.js.map +1 -0
- package/src/decorators/provider.decorator.d.ts +7 -0
- package/src/decorators/provider.decorator.js +20 -0
- package/src/decorators/provider.decorator.js.map +1 -0
- package/src/decorators/resource.decorator.d.ts +17 -0
- package/src/decorators/resource.decorator.js +52 -0
- package/src/decorators/resource.decorator.js.map +1 -0
- package/src/decorators/tool.decorator.d.ts +14 -0
- package/src/decorators/tool.decorator.js +38 -0
- package/src/decorators/tool.decorator.js.map +1 -0
- package/src/decorators-old/async-with.decorator.d.ts +9 -0
- package/src/decorators-old/async-with.decorator.js +23 -0
- package/src/decorators-old/async-with.decorator.js.map +1 -0
- package/src/decorators-old/auth-hook.decorator.d.ts +14 -0
- package/src/decorators-old/auth-hook.decorator.js +27 -0
- package/src/decorators-old/auth-hook.decorator.js.map +1 -0
- package/src/decorators-old/session-hook.decorator.d.ts +14 -0
- package/src/decorators-old/session-hook.decorator.js +27 -0
- package/src/decorators-old/session-hook.decorator.js.map +1 -0
- package/src/decorators-old/tool-hook.decorator.d.ts +14 -0
- package/src/decorators-old/tool-hook.decorator.js +27 -0
- package/src/decorators-old/tool-hook.decorator.js.map +1 -0
- package/src/dynamic/dynamic.adapter.d.ts +42 -0
- package/src/dynamic/dynamic.adapter.js +28 -0
- package/src/dynamic/dynamic.adapter.js.map +1 -0
- package/src/dynamic/dynamic.plugin.d.ts +52 -0
- package/src/dynamic/dynamic.plugin.js +33 -0
- package/src/dynamic/dynamic.plugin.js.map +1 -0
- package/src/dynamic/dynamic.utils.d.ts +3 -0
- package/src/dynamic/dynamic.utils.js +27 -0
- package/src/dynamic/dynamic.utils.js.map +1 -0
- package/src/dynamic/index.d.ts +2 -0
- package/src/dynamic/index.js +6 -0
- package/src/dynamic/index.js.map +1 -0
- package/src/entries/adapter.entry.d.ts +6 -0
- package/src/entries/adapter.entry.js +8 -0
- package/src/entries/adapter.entry.js.map +1 -0
- package/src/entries/app.entry.d.ts +13 -0
- package/src/entries/app.entry.js +9 -0
- package/src/entries/app.entry.js.map +1 -0
- package/src/entries/auth-provider.entry.d.ts +6 -0
- package/src/entries/auth-provider.entry.js +8 -0
- package/src/entries/auth-provider.entry.js.map +1 -0
- package/src/entries/base.entry.d.ts +20 -0
- package/src/entries/base.entry.js +17 -0
- package/src/entries/base.entry.js.map +1 -0
- package/src/entries/flow.entry.d.ts +15 -0
- package/src/entries/flow.entry.js +21 -0
- package/src/entries/flow.entry.js.map +1 -0
- package/src/entries/index.d.ts +12 -0
- package/src/entries/index.js +16 -0
- package/src/entries/index.js.map +1 -0
- package/src/entries/logger.entry.d.ts +6 -0
- package/src/entries/logger.entry.js +8 -0
- package/src/entries/logger.entry.js.map +1 -0
- package/src/entries/plugin.entry.d.ts +6 -0
- package/src/entries/plugin.entry.js +8 -0
- package/src/entries/plugin.entry.js.map +1 -0
- package/src/entries/prompt.entry.d.ts +6 -0
- package/src/entries/prompt.entry.js +8 -0
- package/src/entries/prompt.entry.js.map +1 -0
- package/src/entries/provider.entry.d.ts +7 -0
- package/src/entries/provider.entry.js +8 -0
- package/src/entries/provider.entry.js.map +1 -0
- package/src/entries/resource.entry.d.ts +7 -0
- package/src/entries/resource.entry.js +11 -0
- package/src/entries/resource.entry.js.map +1 -0
- package/src/entries/scope.entry.d.ts +17 -0
- package/src/entries/scope.entry.js +8 -0
- package/src/entries/scope.entry.js.map +1 -0
- package/src/entries/tool.entry.d.ts +15 -0
- package/src/entries/tool.entry.js +11 -0
- package/src/entries/tool.entry.js.map +1 -0
- package/src/index.d.ts +18 -0
- package/src/index.js +22 -0
- package/src/index.js.map +1 -0
- package/src/interfaces/adapter.interface.d.ts +20 -0
- package/src/interfaces/adapter.interface.js +3 -0
- package/src/interfaces/adapter.interface.js.map +1 -0
- package/src/interfaces/app.interface.d.ts +6 -0
- package/src/interfaces/app.interface.js +3 -0
- package/src/interfaces/app.interface.js.map +1 -0
- package/src/interfaces/auth-hook.interface.d.ts +126 -0
- package/src/interfaces/auth-hook.interface.js +135 -0
- package/src/interfaces/auth-hook.interface.js.map +1 -0
- package/src/interfaces/auth-provider.interface.d.ts +22 -0
- package/src/interfaces/auth-provider.interface.js +18 -0
- package/src/interfaces/auth-provider.interface.js.map +1 -0
- package/src/interfaces/base.interface.d.ts +77 -0
- package/src/interfaces/base.interface.js +3 -0
- package/src/interfaces/base.interface.js.map +1 -0
- package/src/interfaces/flow.interface.d.ts +38 -0
- package/src/interfaces/flow.interface.js +69 -0
- package/src/interfaces/flow.interface.js.map +1 -0
- package/src/interfaces/front-mcp.interface.d.ts +5 -0
- package/src/interfaces/front-mcp.interface.js +3 -0
- package/src/interfaces/front-mcp.interface.js.map +1 -0
- package/src/interfaces/index.d.ts +15 -0
- package/src/interfaces/index.js +19 -0
- package/src/interfaces/index.js.map +1 -0
- package/src/interfaces/internal/flow.utils.d.ts +24 -0
- package/src/interfaces/internal/flow.utils.js +83 -0
- package/src/interfaces/internal/flow.utils.js.map +1 -0
- package/src/interfaces/internal/index.d.ts +2 -0
- package/src/interfaces/internal/index.js +7 -0
- package/src/interfaces/internal/index.js.map +1 -0
- package/src/interfaces/internal/primary-auth-provider.interface.d.ts +24 -0
- package/src/interfaces/internal/primary-auth-provider.interface.js +33 -0
- package/src/interfaces/internal/primary-auth-provider.interface.js.map +1 -0
- package/src/interfaces/internal/registry.interface.d.ts +71 -0
- package/src/interfaces/internal/registry.interface.js +3 -0
- package/src/interfaces/internal/registry.interface.js.map +1 -0
- package/src/interfaces/logger.interface.d.ts +42 -0
- package/src/interfaces/logger.interface.js +10 -0
- package/src/interfaces/logger.interface.js.map +1 -0
- package/src/interfaces/plugin.interface.d.ts +8 -0
- package/src/interfaces/plugin.interface.js +3 -0
- package/src/interfaces/plugin.interface.js.map +1 -0
- package/src/interfaces/prompt.interface.d.ts +5 -0
- package/src/interfaces/prompt.interface.js +3 -0
- package/src/interfaces/prompt.interface.js.map +1 -0
- package/src/interfaces/provider.interface.d.ts +20 -0
- package/src/interfaces/provider.interface.js +18 -0
- package/src/interfaces/provider.interface.js.map +1 -0
- package/src/interfaces/resource.interface.d.ts +21 -0
- package/src/interfaces/resource.interface.js +3 -0
- package/src/interfaces/resource.interface.js.map +1 -0
- package/src/interfaces/scope.interface.d.ts +5 -0
- package/src/interfaces/scope.interface.js +3 -0
- package/src/interfaces/scope.interface.js.map +1 -0
- package/src/interfaces/server.interface.d.ts +46 -0
- package/src/interfaces/server.interface.js +18 -0
- package/src/interfaces/server.interface.js.map +1 -0
- package/src/interfaces/session-hook.interface.d.ts +131 -0
- package/src/interfaces/session-hook.interface.js +140 -0
- package/src/interfaces/session-hook.interface.js.map +1 -0
- package/src/interfaces/tool-hook.interface.d.ts +80 -0
- package/src/interfaces/tool-hook.interface.js +92 -0
- package/src/interfaces/tool-hook.interface.js.map +1 -0
- package/src/interfaces/tool.interface.d.ts +45 -0
- package/src/interfaces/tool.interface.js +89 -0
- package/src/interfaces/tool.interface.js.map +1 -0
- package/src/metadata/adapter.metadata.d.ts +22 -0
- package/src/metadata/adapter.metadata.js +10 -0
- package/src/metadata/adapter.metadata.js.map +1 -0
- package/src/metadata/app.metadata.d.ts +872 -0
- package/src/metadata/app.metadata.js +30 -0
- package/src/metadata/app.metadata.js.map +1 -0
- package/src/metadata/auth-provider.metadata.d.ts +33 -0
- package/src/metadata/auth-provider.metadata.js +19 -0
- package/src/metadata/auth-provider.metadata.js.map +1 -0
- package/src/metadata/flow-hooks.metadata.d.ts +20 -0
- package/src/metadata/flow-hooks.metadata.js +3 -0
- package/src/metadata/flow-hooks.metadata.js.map +1 -0
- package/src/metadata/flow.metadata.d.ts +75 -0
- package/src/metadata/flow.metadata.js +15 -0
- package/src/metadata/flow.metadata.js.map +1 -0
- package/src/metadata/front-mcp.metadata.d.ts +1144 -0
- package/src/metadata/front-mcp.metadata.js +25 -0
- package/src/metadata/front-mcp.metadata.js.map +1 -0
- package/src/metadata/index.d.ts +12 -0
- package/src/metadata/index.js +16 -0
- package/src/metadata/index.js.map +1 -0
- package/src/metadata/logger.metadata.d.ts +39 -0
- package/src/metadata/logger.metadata.js +10 -0
- package/src/metadata/logger.metadata.js.map +1 -0
- package/src/metadata/plugin.metadata.d.ts +93 -0
- package/src/metadata/plugin.metadata.js +18 -0
- package/src/metadata/plugin.metadata.js.map +1 -0
- package/src/metadata/prompt.metadata.d.ts +226 -0
- package/src/metadata/prompt.metadata.js +27 -0
- package/src/metadata/prompt.metadata.js.map +1 -0
- package/src/metadata/provider.metadata.d.ts +34 -0
- package/src/metadata/provider.metadata.js +20 -0
- package/src/metadata/provider.metadata.js.map +1 -0
- package/src/metadata/resource.metadata.d.ts +199 -0
- package/src/metadata/resource.metadata.js +22 -0
- package/src/metadata/resource.metadata.js.map +1 -0
- package/src/metadata/tool.metadata.d.ts +278 -0
- package/src/metadata/tool.metadata.js +28 -0
- package/src/metadata/tool.metadata.js.map +1 -0
- package/src/providers/session.provider.d.ts +13 -0
- package/src/providers/session.provider.js +27 -0
- package/src/providers/session.provider.js.map +1 -0
- package/src/records/adapter.record.d.ts +26 -0
- package/src/records/adapter.record.js +11 -0
- package/src/records/adapter.record.js.map +1 -0
- package/src/records/app.record.d.ts +19 -0
- package/src/records/app.record.js +9 -0
- package/src/records/app.record.js.map +1 -0
- package/src/records/auth-provider.record.d.ts +37 -0
- package/src/records/auth-provider.record.js +12 -0
- package/src/records/auth-provider.record.js.map +1 -0
- package/src/records/flow.record.d.ts +11 -0
- package/src/records/flow.record.js +8 -0
- package/src/records/flow.record.js.map +1 -0
- package/src/records/index.d.ts +11 -0
- package/src/records/index.js +15 -0
- package/src/records/index.js.map +1 -0
- package/src/records/logger.record.d.ts +11 -0
- package/src/records/logger.record.js +8 -0
- package/src/records/logger.record.js.map +1 -0
- package/src/records/plugin.record.d.ts +21 -0
- package/src/records/plugin.record.js +11 -0
- package/src/records/plugin.record.js.map +1 -0
- package/src/records/prompt.record.d.ts +18 -0
- package/src/records/prompt.record.js +9 -0
- package/src/records/prompt.record.js.map +1 -0
- package/src/records/provider.record.d.ts +36 -0
- package/src/records/provider.record.js +14 -0
- package/src/records/provider.record.js.map +1 -0
- package/src/records/resource.record.d.ts +18 -0
- package/src/records/resource.record.js +14 -0
- package/src/records/resource.record.js.map +1 -0
- package/src/records/scope.record.d.ts +18 -0
- package/src/records/scope.record.js +9 -0
- package/src/records/scope.record.js.map +1 -0
- package/src/records/tool.record.d.ts +17 -0
- package/src/records/tool.record.js +9 -0
- package/src/records/tool.record.js.map +1 -0
- package/src/schemas/annotated-class.schema.d.ts +11 -0
- package/src/schemas/annotated-class.schema.js +40 -0
- package/src/schemas/annotated-class.schema.js.map +1 -0
- package/src/schemas/http-input.schema.d.ts +33 -0
- package/src/schemas/http-input.schema.js +13 -0
- package/src/schemas/http-input.schema.js.map +1 -0
- package/src/schemas/http-output.schema.d.ts +2011 -0
- package/src/schemas/http-output.schema.js +283 -0
- package/src/schemas/http-output.schema.js.map +1 -0
- package/src/schemas/index.d.ts +3 -0
- package/src/schemas/index.js +7 -0
- package/src/schemas/index.js.map +1 -0
- package/src/tokens/adapter.tokens.d.ts +3 -0
- package/src/tokens/adapter.tokens.js +11 -0
- package/src/tokens/adapter.tokens.js.map +1 -0
- package/src/tokens/app.tokens.d.ts +4 -0
- package/src/tokens/app.tokens.js +30 -0
- package/src/tokens/app.tokens.js.map +1 -0
- package/src/tokens/auth-provider.tokens.d.ts +3 -0
- package/src/tokens/auth-provider.tokens.js +12 -0
- package/src/tokens/auth-provider.tokens.js.map +1 -0
- package/src/tokens/base.tokens.d.ts +5 -0
- package/src/tokens/base.tokens.js +9 -0
- package/src/tokens/base.tokens.js.map +1 -0
- package/src/tokens/flow-hook.tokens.d.ts +4 -0
- package/src/tokens/flow-hook.tokens.js +9 -0
- package/src/tokens/flow-hook.tokens.js.map +1 -0
- package/src/tokens/flow.tokens.d.ts +11 -0
- package/src/tokens/flow.tokens.js +16 -0
- package/src/tokens/flow.tokens.js.map +1 -0
- package/src/tokens/front-mcp.tokens.d.ts +3 -0
- package/src/tokens/front-mcp.tokens.js +19 -0
- package/src/tokens/front-mcp.tokens.js.map +1 -0
- package/src/tokens/index.d.ts +13 -0
- package/src/tokens/index.js +17 -0
- package/src/tokens/index.js.map +1 -0
- package/src/tokens/logger.tokens.d.ts +3 -0
- package/src/tokens/logger.tokens.js +11 -0
- package/src/tokens/logger.tokens.js.map +1 -0
- package/src/tokens/plugin.tokens.d.ts +13 -0
- package/src/tokens/plugin.tokens.js +18 -0
- package/src/tokens/plugin.tokens.js.map +1 -0
- package/src/tokens/prompt.tokens.d.ts +9 -0
- package/src/tokens/prompt.tokens.js +14 -0
- package/src/tokens/prompt.tokens.js.map +1 -0
- package/src/tokens/provider.tokens.d.ts +3 -0
- package/src/tokens/provider.tokens.js +12 -0
- package/src/tokens/provider.tokens.js.map +1 -0
- package/src/tokens/resource.tokens.d.ts +20 -0
- package/src/tokens/resource.tokens.js +25 -0
- package/src/tokens/resource.tokens.js.map +1 -0
- package/src/tokens/server.tokens.d.ts +6 -0
- package/src/tokens/server.tokens.js +11 -0
- package/src/tokens/server.tokens.js.map +1 -0
- package/src/tokens/tool.tokens.d.ts +13 -0
- package/src/tokens/tool.tokens.js +18 -0
- package/src/tokens/tool.tokens.js.map +1 -0
- package/src/types/auth/index.d.ts +2 -0
- package/src/types/auth/index.js +6 -0
- package/src/types/auth/index.js.map +1 -0
- package/src/types/auth/jwt.types.d.ts +112 -0
- package/src/types/auth/jwt.types.js +36 -0
- package/src/types/auth/jwt.types.js.map +1 -0
- package/src/types/auth/session.types.d.ts +263 -0
- package/src/types/auth/session.types.js +40 -0
- package/src/types/auth/session.types.js.map +1 -0
- package/src/types/common.types.d.ts +11 -0
- package/src/types/common.types.js +3 -0
- package/src/types/common.types.js.map +1 -0
- package/src/types/index.d.ts +3 -0
- package/src/types/index.js +7 -0
- package/src/types/index.js.map +1 -0
- package/src/types/options/auth.options.d.ts +513 -0
- package/src/types/options/auth.options.js +53 -0
- package/src/types/options/auth.options.js.map +1 -0
- package/src/types/options/http.options.d.ts +22 -0
- package/src/types/options/http.options.js +10 -0
- package/src/types/options/http.options.js.map +1 -0
- package/src/types/options/index.d.ts +5 -0
- package/src/types/options/index.js +9 -0
- package/src/types/options/index.js.map +1 -0
- package/src/types/options/logging.options.d.ts +39 -0
- package/src/types/options/logging.options.js +37 -0
- package/src/types/options/logging.options.js.map +1 -0
- package/src/types/options/server-info.options.d.ts +48 -0
- package/src/types/options/server-info.options.js +13 -0
- package/src/types/options/server-info.options.js.map +1 -0
- package/src/types/options/session.options.d.ts +67 -0
- package/src/types/options/session.options.js +9 -0
- package/src/types/options/session.options.js.map +1 -0
- package/src/utils/decide-request-intent.utils.d.ts +79 -0
- package/src/utils/decide-request-intent.utils.js +326 -0
- package/src/utils/decide-request-intent.utils.js.map +1 -0
- package/src/utils/index.d.ts +2 -0
- package/src/utils/index.js +6 -0
- package/src/utils/index.js.map +1 -0
- package/src/utils/path.utils.d.ts +20 -0
- package/src/utils/path.utils.js +66 -0
- package/src/utils/path.utils.js.map +1 -0
package/README.md
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@frontmcp/sdk",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "commonjs",
|
|
5
|
+
"main": "./dist/src/index.js",
|
|
6
|
+
"types": "./dist/src/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
"./package.json": "./package.json",
|
|
9
|
+
".": {
|
|
10
|
+
"development": "./src/index.ts",
|
|
11
|
+
"types": "./dist/src/index.d.ts",
|
|
12
|
+
"import": "./dist/src/index.js",
|
|
13
|
+
"default": "./dist/src/index.js"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"typescript": "^5.9.3",
|
|
18
|
+
"@modelcontextprotocol/sdk": "^1.19.1",
|
|
19
|
+
"axios": "^1.6.0",
|
|
20
|
+
"ioredis": "^5.8.0",
|
|
21
|
+
"jose": "^6.1.0",
|
|
22
|
+
"openapi-mcp-generator": "^3.2.0",
|
|
23
|
+
"reflect-metadata": "^0.2.2",
|
|
24
|
+
"rxjs": "^7.8.0",
|
|
25
|
+
"zod-from-json-schema": "^0.5.1",
|
|
26
|
+
"zod-to-json-schema": "^3.24.6",
|
|
27
|
+
"tslib": "^2.3.0"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export declare const MCP_BASE_METADATA: {
|
|
2
|
+
NAME: string;
|
|
3
|
+
DESCRIPTION: string;
|
|
4
|
+
};
|
|
5
|
+
export declare const MCP_APP_METADATA: {
|
|
6
|
+
PROVIDERS: string;
|
|
7
|
+
ADAPTERS: string;
|
|
8
|
+
PLUGINS: string;
|
|
9
|
+
TOOLS: string;
|
|
10
|
+
NAME: string;
|
|
11
|
+
DESCRIPTION: string;
|
|
12
|
+
};
|
|
13
|
+
export declare const MCP_PROVIDER_METADATA: {
|
|
14
|
+
SCOPE: string;
|
|
15
|
+
NAME: string;
|
|
16
|
+
DESCRIPTION: string;
|
|
17
|
+
};
|
|
18
|
+
export declare const MCP_TOOL_METADATA: {
|
|
19
|
+
ID: string;
|
|
20
|
+
NAME: string;
|
|
21
|
+
DESCRIPTION: string;
|
|
22
|
+
INPUT_SCHEMA: string;
|
|
23
|
+
OUTPUT_SCHEMA: string;
|
|
24
|
+
};
|
|
25
|
+
export declare const MCP_TOOL_HOOKS = "mcp.plugin.toolHooks";
|
|
26
|
+
export declare const MCP_SESSION_HOOKS = "mcp.plugin.sessionHooks";
|
|
27
|
+
export declare const MCP_AUTH_HOOKS = "mcp.plugin.sessionHooks";
|
|
28
|
+
export declare const DESIGN_PARAMTYPES = "design:paramtypes";
|
|
29
|
+
export declare const META_PROVIDERS: string;
|
|
30
|
+
export declare const META_ADAPTERS: string;
|
package/src/constants.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.META_ADAPTERS = exports.META_PROVIDERS = exports.DESIGN_PARAMTYPES = exports.MCP_AUTH_HOOKS = exports.MCP_SESSION_HOOKS = exports.MCP_TOOL_HOOKS = exports.MCP_TOOL_METADATA = exports.MCP_PROVIDER_METADATA = exports.MCP_APP_METADATA = exports.MCP_BASE_METADATA = void 0;
|
|
4
|
+
exports.MCP_BASE_METADATA = {
|
|
5
|
+
NAME: 'name',
|
|
6
|
+
DESCRIPTION: 'description',
|
|
7
|
+
};
|
|
8
|
+
exports.MCP_APP_METADATA = {
|
|
9
|
+
...exports.MCP_BASE_METADATA,
|
|
10
|
+
PROVIDERS: 'providers',
|
|
11
|
+
ADAPTERS: 'adapters',
|
|
12
|
+
PLUGINS: 'plugins',
|
|
13
|
+
TOOLS: 'tools',
|
|
14
|
+
};
|
|
15
|
+
exports.MCP_PROVIDER_METADATA = {
|
|
16
|
+
...exports.MCP_BASE_METADATA,
|
|
17
|
+
SCOPE: 'scope',
|
|
18
|
+
};
|
|
19
|
+
exports.MCP_TOOL_METADATA = {
|
|
20
|
+
ID: 'id',
|
|
21
|
+
NAME: 'name',
|
|
22
|
+
DESCRIPTION: 'description',
|
|
23
|
+
INPUT_SCHEMA: 'inputSchema',
|
|
24
|
+
OUTPUT_SCHEMA: 'outputSchema',
|
|
25
|
+
};
|
|
26
|
+
// Plugin/global Tool hooks (method-level) metadata key
|
|
27
|
+
// Stored on plugin classes by @ToolHook decorator
|
|
28
|
+
exports.MCP_TOOL_HOOKS = 'mcp.plugin.toolHooks';
|
|
29
|
+
exports.MCP_SESSION_HOOKS = 'mcp.plugin.sessionHooks';
|
|
30
|
+
exports.MCP_AUTH_HOOKS = 'mcp.plugin.sessionHooks';
|
|
31
|
+
// Common metadata keys used across the project
|
|
32
|
+
exports.DESIGN_PARAMTYPES = 'design:paramtypes';
|
|
33
|
+
// Alias for app metadata providers key to standardize usage in core/common
|
|
34
|
+
exports.META_PROVIDERS = exports.MCP_APP_METADATA.PROVIDERS;
|
|
35
|
+
exports.META_ADAPTERS = exports.MCP_APP_METADATA.ADAPTERS;
|
|
36
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG;IAC/B,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,aAAa;CAC3B,CAAC;AAEW,QAAA,gBAAgB,GAAG;IAC9B,GAAG,yBAAiB;IACpB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;CACf,CAAC;AAEW,QAAA,qBAAqB,GAAG;IACnC,GAAG,yBAAiB;IACpB,KAAK,EAAE,OAAO;CACf,CAAC;AAGW,QAAA,iBAAiB,GAAG;IAC/B,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,aAAa;IAC3B,aAAa,EAAE,cAAc;CAC9B,CAAC;AAEF,uDAAuD;AACvD,kDAAkD;AACrC,QAAA,cAAc,GAAG,sBAAsB,CAAC;AACxC,QAAA,iBAAiB,GAAG,yBAAyB,CAAC;AAC9C,QAAA,cAAc,GAAG,yBAAyB,CAAC;AAGxD,+CAA+C;AAClC,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AACrD,2EAA2E;AAC9D,QAAA,cAAc,GAAG,wBAAgB,CAAC,SAAS,CAAC;AAC5C,QAAA,aAAa,GAAG,wBAAgB,CAAC,QAAQ,CAAC","sourcesContent":["export const MCP_BASE_METADATA = {\n NAME: 'name',\n DESCRIPTION: 'description',\n};\n\nexport const MCP_APP_METADATA = {\n ...MCP_BASE_METADATA,\n PROVIDERS: 'providers',\n ADAPTERS: 'adapters',\n PLUGINS: 'plugins',\n TOOLS: 'tools',\n};\n\nexport const MCP_PROVIDER_METADATA = {\n ...MCP_BASE_METADATA,\n SCOPE: 'scope',\n};\n\n\nexport const MCP_TOOL_METADATA = {\n ID: 'id',\n NAME: 'name',\n DESCRIPTION: 'description',\n INPUT_SCHEMA: 'inputSchema',\n OUTPUT_SCHEMA: 'outputSchema',\n};\n\n// Plugin/global Tool hooks (method-level) metadata key\n// Stored on plugin classes by @ToolHook decorator\nexport const MCP_TOOL_HOOKS = 'mcp.plugin.toolHooks';\nexport const MCP_SESSION_HOOKS = 'mcp.plugin.sessionHooks';\nexport const MCP_AUTH_HOOKS = 'mcp.plugin.sessionHooks';\n\n\n// Common metadata keys used across the project\nexport const DESIGN_PARAMTYPES = 'design:paramtypes';\n// Alias for app metadata providers key to standardize usage in core/common\nexport const META_PROVIDERS = MCP_APP_METADATA.PROVIDERS;\nexport const META_ADAPTERS = MCP_APP_METADATA.ADAPTERS;\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { AdapterMetadata } from '../metadata';
|
|
3
|
+
/**
|
|
4
|
+
* Decorator that marks a class as a McpAdapter module and provides metadata
|
|
5
|
+
*/
|
|
6
|
+
declare function FrontMcpAdapter(providedMetadata: AdapterMetadata): ClassDecorator;
|
|
7
|
+
export { FrontMcpAdapter, FrontMcpAdapter as Adapter, };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FrontMcpAdapter = FrontMcpAdapter;
|
|
4
|
+
exports.Adapter = FrontMcpAdapter;
|
|
5
|
+
require("reflect-metadata");
|
|
6
|
+
const tokens_1 = require("../tokens");
|
|
7
|
+
const metadata_1 = require("../metadata");
|
|
8
|
+
/**
|
|
9
|
+
* Decorator that marks a class as a McpAdapter module and provides metadata
|
|
10
|
+
*/
|
|
11
|
+
function FrontMcpAdapter(providedMetadata) {
|
|
12
|
+
return (target) => {
|
|
13
|
+
const metadata = metadata_1.frontMcpAdapterMetadataSchema.parse(providedMetadata);
|
|
14
|
+
Reflect.defineMetadata(tokens_1.FrontMcpAdapterTokens.type, true, target);
|
|
15
|
+
for (const property in metadata) {
|
|
16
|
+
Reflect.defineMetadata(tokens_1.FrontMcpAdapterTokens[property] ?? property, metadata[property], target);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=adapter.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.decorator.js","sourceRoot":"","sources":["../../../src/decorators/adapter.decorator.ts"],"names":[],"mappings":";;AAoBE,0CAAe;AACI,kCAAO;AArB5B,4BAA0B;AAC1B,sCAAkD;AAClD,0CAA6E;AAE7E;;GAEG;AACH,SAAS,eAAe,CAAC,gBAAiC;IACxD,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,MAAM,QAAQ,GAAG,wCAA6B,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAEvE,OAAO,CAAC,cAAc,CAAC,8BAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAEjE,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,cAAc,CAAC,8BAAqB,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QAClG,CAAC;IACH,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import 'reflect-metadata';\nimport { FrontMcpAdapterTokens } from '../tokens';\nimport { AdapterMetadata, frontMcpAdapterMetadataSchema } from '../metadata';\n\n/**\n * Decorator that marks a class as a McpAdapter module and provides metadata\n */\nfunction FrontMcpAdapter(providedMetadata: AdapterMetadata): ClassDecorator {\n return (target: Function) => {\n const metadata = frontMcpAdapterMetadataSchema.parse(providedMetadata);\n\n Reflect.defineMetadata(FrontMcpAdapterTokens.type, true, target);\n\n for (const property in metadata) {\n Reflect.defineMetadata(FrontMcpAdapterTokens[property] ?? property, metadata[property], target);\n }\n };\n}\n\nexport {\n FrontMcpAdapter,\n FrontMcpAdapter as Adapter,\n};"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { LocalAppMetadata } from '../metadata';
|
|
3
|
+
/**
|
|
4
|
+
* Decorator that marks a class as a McpApp module and provides metadata
|
|
5
|
+
*/
|
|
6
|
+
declare function FrontMcpApp(providedMetadata: LocalAppMetadata): ClassDecorator;
|
|
7
|
+
export { FrontMcpApp, FrontMcpApp as App, };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FrontMcpApp = FrontMcpApp;
|
|
4
|
+
exports.App = FrontMcpApp;
|
|
5
|
+
require("reflect-metadata");
|
|
6
|
+
const tokens_1 = require("../tokens");
|
|
7
|
+
const metadata_1 = require("../metadata");
|
|
8
|
+
/**
|
|
9
|
+
* Decorator that marks a class as a McpApp module and provides metadata
|
|
10
|
+
*/
|
|
11
|
+
function FrontMcpApp(providedMetadata) {
|
|
12
|
+
return (target) => {
|
|
13
|
+
const { error, data: metadata } = metadata_1.frontMcpLocalAppMetadataSchema.safeParse(providedMetadata);
|
|
14
|
+
if (error) {
|
|
15
|
+
if (error.format().plugins) {
|
|
16
|
+
throw new Error(`Invalid metadata provided to @FrontMcp { plugins: [?] }: \n${JSON.stringify(error.format().plugins, null, 2)}`);
|
|
17
|
+
}
|
|
18
|
+
if (error.format().providers) {
|
|
19
|
+
throw new Error(`Invalid metadata provided to @FrontMcp { providers: [?] }: \n${JSON.stringify(error.format().providers, null, 2)}`);
|
|
20
|
+
}
|
|
21
|
+
if (error.format().authProviders) {
|
|
22
|
+
throw new Error(`Invalid metadata provided to @FrontMcp { authProviders: [?] }: \n${JSON.stringify(error.format().authProviders, null, 2)}`);
|
|
23
|
+
}
|
|
24
|
+
if (error.format().adapters) {
|
|
25
|
+
throw new Error(`Invalid metadata provided to @FrontMcp { adapters: [?] }: \n${JSON.stringify(error.format().adapters, null, 2)}`);
|
|
26
|
+
}
|
|
27
|
+
if (error.format().tools) {
|
|
28
|
+
throw new Error(`Invalid metadata provided to @FrontMcp { tools: [?] }: \n${JSON.stringify(error.format().tools, null, 2)}`);
|
|
29
|
+
}
|
|
30
|
+
if (error.format().resources) {
|
|
31
|
+
throw new Error(`Invalid metadata provided to @FrontMcp { resources: [?] }: \n${JSON.stringify(error.format().resources, null, 2)}`);
|
|
32
|
+
}
|
|
33
|
+
if (error.format().prompts) {
|
|
34
|
+
throw new Error(`Invalid metadata provided to @FrontMcp { prompts: [?] }: \n${JSON.stringify(error.format().prompts, null, 2)}`);
|
|
35
|
+
}
|
|
36
|
+
throw error;
|
|
37
|
+
}
|
|
38
|
+
Reflect.defineMetadata(tokens_1.FrontMcpLocalAppTokens.type, true, target);
|
|
39
|
+
for (const property in metadata) {
|
|
40
|
+
Reflect.defineMetadata(tokens_1.FrontMcpLocalAppTokens[property] ?? property, metadata[property], target);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=app.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.decorator.js","sourceRoot":"","sources":["../../../src/decorators/app.decorator.ts"],"names":[],"mappings":";;AA4CE,kCAAW;AACI,0BAAG;AA7CpB,4BAA0B;AAC1B,sCAAmD;AACnD,0CAA+E;AAE/E;;GAEG;AACH,SAAS,WAAW,CAAC,gBAAkC;IACrD,OAAO,CAAC,MAAgB,EAAE,EAAE;QAE1B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,yCAA8B,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC7F,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,8DAA8D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACnI,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,gEAAgE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACvI,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,aAAa,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,oEAAoE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAC/I,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,+DAA+D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACrI,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,4DAA4D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAC/H,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,gEAAgE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACvI,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,8DAA8D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACnI,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,OAAO,CAAC,cAAc,CAAC,+BAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAClE,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,cAAc,CAAC,+BAAsB,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QACnG,CAAC;IACH,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import 'reflect-metadata';\nimport { FrontMcpLocalAppTokens } from '../tokens';\nimport { LocalAppMetadata, frontMcpLocalAppMetadataSchema } from '../metadata';\n\n/**\n * Decorator that marks a class as a McpApp module and provides metadata\n */\nfunction FrontMcpApp(providedMetadata: LocalAppMetadata): ClassDecorator {\n return (target: Function) => {\n\n const { error, data: metadata } = frontMcpLocalAppMetadataSchema.safeParse(providedMetadata);\n if (error) {\n if (error.format().plugins) {\n throw new Error(`Invalid metadata provided to @FrontMcp { plugins: [?] }: \\n${JSON.stringify(error.format().plugins, null, 2)}`);\n }\n if (error.format().providers) {\n throw new Error(`Invalid metadata provided to @FrontMcp { providers: [?] }: \\n${JSON.stringify(error.format().providers, null, 2)}`);\n }\n if (error.format().authProviders) {\n throw new Error(`Invalid metadata provided to @FrontMcp { authProviders: [?] }: \\n${JSON.stringify(error.format().authProviders, null, 2)}`);\n }\n if (error.format().adapters) {\n throw new Error(`Invalid metadata provided to @FrontMcp { adapters: [?] }: \\n${JSON.stringify(error.format().adapters, null, 2)}`);\n }\n if (error.format().tools) {\n throw new Error(`Invalid metadata provided to @FrontMcp { tools: [?] }: \\n${JSON.stringify(error.format().tools, null, 2)}`);\n }\n if (error.format().resources) {\n throw new Error(`Invalid metadata provided to @FrontMcp { resources: [?] }: \\n${JSON.stringify(error.format().resources, null, 2)}`);\n }\n if (error.format().prompts) {\n throw new Error(`Invalid metadata provided to @FrontMcp { prompts: [?] }: \\n${JSON.stringify(error.format().prompts, null, 2)}`);\n }\n throw error;\n }\n\n Reflect.defineMetadata(FrontMcpLocalAppTokens.type, true, target);\n for (const property in metadata) {\n Reflect.defineMetadata(FrontMcpLocalAppTokens[property] ?? property, metadata[property], target);\n }\n };\n}\n\nexport {\n FrontMcpApp,\n FrontMcpApp as App,\n};"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { AuthProviderMetadata } from '../metadata';
|
|
3
|
+
/**
|
|
4
|
+
* Decorator that marks a class as an AuthProvider module and provides metadata
|
|
5
|
+
*/
|
|
6
|
+
declare function FrontMcpAuthProvider(providedMetadata: AuthProviderMetadata): ClassDecorator;
|
|
7
|
+
export { FrontMcpAuthProvider, FrontMcpAuthProvider as AuthProvider, };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FrontMcpAuthProvider = FrontMcpAuthProvider;
|
|
4
|
+
exports.AuthProvider = FrontMcpAuthProvider;
|
|
5
|
+
require("reflect-metadata");
|
|
6
|
+
const tokens_1 = require("../tokens");
|
|
7
|
+
const metadata_1 = require("../metadata");
|
|
8
|
+
/**
|
|
9
|
+
* Decorator that marks a class as an AuthProvider module and provides metadata
|
|
10
|
+
*/
|
|
11
|
+
function FrontMcpAuthProvider(providedMetadata) {
|
|
12
|
+
return (target) => {
|
|
13
|
+
const metadata = metadata_1.frontMcpAuthProviderMetadataSchema.parse(providedMetadata);
|
|
14
|
+
Reflect.defineMetadata(tokens_1.FrontMcpAuthProviderTokens.type, true, target);
|
|
15
|
+
for (const property in metadata) {
|
|
16
|
+
Reflect.defineMetadata(tokens_1.FrontMcpAuthProviderTokens[property] ?? property, metadata[property], target);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=auth-provider.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-provider.decorator.js","sourceRoot":"","sources":["../../../src/decorators/auth-provider.decorator.ts"],"names":[],"mappings":";;AAoBE,oDAAoB;AACI,4CAAY;AArBtC,4BAA0B;AAC1B,sCAAuD;AACvD,0CAAuF;AAEvF;;GAEG;AACH,SAAS,oBAAoB,CAAC,gBAAsC;IAClE,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,MAAM,QAAQ,GAAG,6CAAkC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAE5E,OAAO,CAAC,cAAc,CAAC,mCAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAEtE,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,cAAc,CAAC,mCAA0B,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QACvG,CAAC;IACH,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import 'reflect-metadata';\nimport { FrontMcpAuthProviderTokens } from '../tokens';\nimport { AuthProviderMetadata, frontMcpAuthProviderMetadataSchema } from '../metadata';\n\n/**\n * Decorator that marks a class as an AuthProvider module and provides metadata\n */\nfunction FrontMcpAuthProvider(providedMetadata: AuthProviderMetadata): ClassDecorator {\n return (target: Function) => {\n const metadata = frontMcpAuthProviderMetadataSchema.parse(providedMetadata);\n\n Reflect.defineMetadata(FrontMcpAuthProviderTokens.type, true, target);\n\n for (const property in metadata) {\n Reflect.defineMetadata(FrontMcpAuthProviderTokens[property] ?? property, metadata[property], target);\n }\n };\n}\n\nexport {\n FrontMcpAuthProvider,\n FrontMcpAuthProvider as AuthProvider,\n};"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { FlowHookOptions, FlowName } from '../metadata';
|
|
2
|
+
/** NEW: typed variants */
|
|
3
|
+
export declare function StageHookOf<Name extends FlowName>(name: Name): (stage: ExtendFlows[Name]["stage"], opts?: FlowHookOptions<ExtendFlows[Name]["ctx"]>) => MethodDecorator;
|
|
4
|
+
export declare function WillHookOf<Name extends FlowName>(name: Name): (stage: ExtendFlows[Name]["stage"], opts?: FlowHookOptions<ExtendFlows[Name]["ctx"]>) => MethodDecorator;
|
|
5
|
+
export declare function DidHookOf<Name extends FlowName>(name: Name): (stage: ExtendFlows[Name]["stage"], opts?: FlowHookOptions<ExtendFlows[Name]["ctx"]>) => MethodDecorator;
|
|
6
|
+
export declare function AroundHookOf<Name extends FlowName>(name: Name): (stage: ExtendFlows[Name]["stage"], opts?: FlowHookOptions<ExtendFlows[Name]["ctx"]>) => MethodDecorator;
|
|
7
|
+
export declare function FlowHooksOf<Name extends FlowName>(name: Name): {
|
|
8
|
+
Stage: (stage: ExtendFlows[Name]["stage"], opts?: FlowHookOptions<ExtendFlows[Name]["ctx"]>) => MethodDecorator;
|
|
9
|
+
Will: (stage: ExtendFlows[Name]["stage"], opts?: FlowHookOptions<ExtendFlows[Name]["ctx"]>) => MethodDecorator;
|
|
10
|
+
Did: (stage: ExtendFlows[Name]["stage"], opts?: FlowHookOptions<ExtendFlows[Name]["ctx"]>) => MethodDecorator;
|
|
11
|
+
Around: (stage: ExtendFlows[Name]["stage"], opts?: FlowHookOptions<ExtendFlows[Name]["ctx"]>) => MethodDecorator;
|
|
12
|
+
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StageHookOf = StageHookOf;
|
|
4
|
+
exports.WillHookOf = WillHookOf;
|
|
5
|
+
exports.DidHookOf = DidHookOf;
|
|
6
|
+
exports.AroundHookOf = AroundHookOf;
|
|
7
|
+
exports.FlowHooksOf = FlowHooksOf;
|
|
8
|
+
const tokens_1 = require("../tokens");
|
|
9
|
+
function registerFlowHook(target, meta) {
|
|
10
|
+
const ctor = target.constructor;
|
|
11
|
+
const arr = Reflect.getMetadata(tokens_1.FrontMcpFlowHookTokens.hooks, ctor) ?? [];
|
|
12
|
+
arr.push(meta);
|
|
13
|
+
Reflect.defineMetadata(tokens_1.FrontMcpFlowHookTokens.hooks, arr, ctor);
|
|
14
|
+
}
|
|
15
|
+
/** Base factory (kept internal) */
|
|
16
|
+
function make(kind) {
|
|
17
|
+
return function (stage, opts = {}) {
|
|
18
|
+
return (target, key, _desc) => {
|
|
19
|
+
registerFlowHook(target, {
|
|
20
|
+
kind,
|
|
21
|
+
stage: String(stage),
|
|
22
|
+
method: String(key),
|
|
23
|
+
priority: opts.priority ?? 0,
|
|
24
|
+
filter: opts.filter,
|
|
25
|
+
static: Boolean(target.constructor[key]),
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/** NEW: typed variants */
|
|
31
|
+
function StageHookOf(name) {
|
|
32
|
+
const base = make('stage');
|
|
33
|
+
return function (stage, opts = {}) {
|
|
34
|
+
return base(stage, opts);
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function WillHookOf(name) {
|
|
38
|
+
const base = make('will');
|
|
39
|
+
return function (stage, opts = {}) {
|
|
40
|
+
return base(stage, opts);
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function DidHookOf(name) {
|
|
44
|
+
const base = make('did');
|
|
45
|
+
return function (stage, opts = {}) {
|
|
46
|
+
return base(stage, opts);
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function AroundHookOf(name) {
|
|
50
|
+
const base = make('around');
|
|
51
|
+
return function (stage, opts = {}) {
|
|
52
|
+
return base(stage, opts);
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function FlowHooksOf(name) {
|
|
56
|
+
return {
|
|
57
|
+
Stage: StageHookOf(name),
|
|
58
|
+
Will: WillHookOf(name),
|
|
59
|
+
Did: DidHookOf(name),
|
|
60
|
+
Around: AroundHookOf(name),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=flow-hooks.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-hooks.decorator.js","sourceRoot":"","sources":["../../../src/decorators/flow-hooks.decorator.ts"],"names":[],"mappings":";;AA4BA,kCAOC;AAED,gCAOC;AAED,8BAOC;AAED,oCAOC;AAED,kCAOC;AAtED,sCAAmD;AAGnD,SAAS,gBAAgB,CAAC,MAAW,EAAE,IAAkB;IACvD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;IAChC,MAAM,GAAG,GAAmB,OAAO,CAAC,WAAW,CAAC,+BAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1F,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,OAAO,CAAC,cAAc,CAAC,+BAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,mCAAmC;AACnC,SAAS,IAAI,CAAC,IAAkB;IAC9B,OAAO,UAAoD,KAAQ,EAAE,OAA6B,EAAE;QAClG,OAAO,CAAC,MAAW,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;YACjC,gBAAgB,CAAC,MAAM,EAAE;gBACvB,IAAI;gBACJ,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;gBACpB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC;gBAC5B,MAAM,EAAE,IAAI,CAAC,MAAa;gBAC1B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;aACzC,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,0BAA0B;AAC1B,SAAgB,WAAW,CAAwB,IAAU;IAG3D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,OAAO,UAAS,KAAQ,EAAE,OAA6B,EAAE;QACvD,OAAO,IAAI,CAAS,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,UAAU,CAAwB,IAAU;IAG1D,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,UAAS,KAAQ,EAAE,OAA6B,EAAE;QACvD,OAAO,IAAI,CAAS,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,SAAS,CAAwB,IAAU;IAGzD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,OAAO,UAAS,KAAQ,EAAE,OAA6B,EAAE;QACvD,OAAO,IAAI,CAAS,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,YAAY,CAAwB,IAAU;IAG5D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5B,OAAO,UAAS,KAAQ,EAAE,OAA6B,EAAE;QACvD,OAAO,IAAI,CAAS,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,WAAW,CAAwB,IAAU;IAC3D,OAAO;QACL,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC;QACxB,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC;QACtB,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC;QACpB,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC;KAC3B,CAAC;AACJ,CAAC","sourcesContent":["import { FlowHookKind, FlowHookOptions, FlowHookMeta, FlowName } from '../metadata';\nimport { FrontMcpFlowHookTokens } from '../tokens';\n\n\nfunction registerFlowHook(target: any, meta: FlowHookMeta) {\n const ctor = target.constructor;\n const arr: FlowHookMeta[] = Reflect.getMetadata(FrontMcpFlowHookTokens.hooks, ctor) ?? [];\n arr.push(meta);\n Reflect.defineMetadata(FrontMcpFlowHookTokens.hooks, arr, ctor);\n}\n\n/** Base factory (kept internal) */\nfunction make(kind: FlowHookKind) {\n return function <Ctx = unknown, T extends string = string>(stage: T, opts: FlowHookOptions<Ctx> = {}): MethodDecorator {\n return (target: any, key, _desc) => {\n registerFlowHook(target, {\n kind,\n stage: String(stage),\n method: String(key),\n priority: opts.priority ?? 0,\n filter: opts.filter as any,\n static: Boolean(target.constructor[key]),\n });\n };\n };\n}\n\n/** NEW: typed variants */\nexport function StageHookOf<Name extends FlowName>(name: Name) {\n type T = ExtendFlows[Name]['stage']\n type Ctx = ExtendFlows[Name]['ctx']\n const base = make('stage');\n return function(stage: T, opts: FlowHookOptions<Ctx> = {}) {\n return base<Ctx, T>(stage, opts);\n };\n}\n\nexport function WillHookOf<Name extends FlowName>(name: Name) {\n type T = ExtendFlows[Name]['stage']\n type Ctx = ExtendFlows[Name]['ctx']\n const base = make('will');\n return function(stage: T, opts: FlowHookOptions<Ctx> = {}) {\n return base<Ctx, T>(stage, opts);\n };\n}\n\nexport function DidHookOf<Name extends FlowName>(name: Name) {\n type T = ExtendFlows[Name]['stage']\n type Ctx = ExtendFlows[Name]['ctx']\n const base = make('did');\n return function(stage: T, opts: FlowHookOptions<Ctx> = {}) {\n return base<Ctx, T>(stage, opts);\n };\n}\n\nexport function AroundHookOf<Name extends FlowName>(name: Name) {\n type T = ExtendFlows[Name]['stage']\n type Ctx = ExtendFlows[Name]['ctx']\n const base = make('around');\n return function(stage: T, opts: FlowHookOptions<Ctx> = {}) {\n return base<Ctx, T>(stage, opts);\n };\n}\n\nexport function FlowHooksOf<Name extends FlowName>(name: Name) {\n return {\n Stage: StageHookOf(name),\n Will: WillHookOf(name),\n Did: DidHookOf(name),\n Around: AroundHookOf(name),\n };\n}\n\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FlowMetadata, FlowName } from '../metadata';
|
|
2
|
+
/**
|
|
3
|
+
* Decorator that marks a class as a FrontMcpFlow module and provides metadata
|
|
4
|
+
*/
|
|
5
|
+
declare function FrontMcpFlow<Name extends FlowName>(providedMetadata: FlowMetadata<Name>): ClassDecorator;
|
|
6
|
+
export { FrontMcpFlow, FrontMcpFlow as Flow, };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FrontMcpFlow = FrontMcpFlow;
|
|
4
|
+
exports.Flow = FrontMcpFlow;
|
|
5
|
+
const metadata_1 = require("../metadata");
|
|
6
|
+
const tokens_1 = require("../tokens");
|
|
7
|
+
/**
|
|
8
|
+
* Decorator that marks a class as a FrontMcpFlow module and provides metadata
|
|
9
|
+
*/
|
|
10
|
+
function FrontMcpFlow(providedMetadata) {
|
|
11
|
+
return (target) => {
|
|
12
|
+
const metadata = metadata_1.frontMcpFlowMetadataSchema.parse(providedMetadata);
|
|
13
|
+
Reflect.defineMetadata(tokens_1.FrontMcpFlowTokens.type, true, target);
|
|
14
|
+
for (const property in metadata) {
|
|
15
|
+
Reflect.defineMetadata(tokens_1.FrontMcpFlowTokens[property] ?? property, metadata[property], target);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=flow.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow.decorator.js","sourceRoot":"","sources":["../../../src/decorators/flow.decorator.ts"],"names":[],"mappings":";;AAsBE,oCAAY;AACI,4BAAI;AAvBtB,0CAAiF;AACjF,sCAA+C;AAI/C;;GAEG;AACH,SAAS,YAAY,CAAwB,gBAAoC;IAE/E,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,MAAM,QAAQ,GAAG,qCAA0B,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAEpE,OAAO,CAAC,cAAc,CAAC,2BAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAE9D,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,cAAc,CAAC,2BAAkB,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { FlowMetadata, FlowName, frontMcpFlowMetadataSchema } from '../metadata';\nimport { FrontMcpFlowTokens } from '../tokens';\n\n\n\n/**\n * Decorator that marks a class as a FrontMcpFlow module and provides metadata\n */\nfunction FrontMcpFlow<Name extends FlowName>(providedMetadata: FlowMetadata<Name>): ClassDecorator {\n\n return (target: any) => {\n const metadata = frontMcpFlowMetadataSchema.parse(providedMetadata);\n\n Reflect.defineMetadata(FrontMcpFlowTokens.type, true, target);\n\n for (const property in metadata) {\n Reflect.defineMetadata(FrontMcpFlowTokens[property] ?? property, metadata[property], target);\n }\n };\n}\n\nexport {\n FrontMcpFlow,\n FrontMcpFlow as Flow,\n}"]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FrontMcp = FrontMcp;
|
|
4
|
+
require("reflect-metadata");
|
|
5
|
+
const tokens_1 = require("../tokens");
|
|
6
|
+
const metadata_1 = require("../metadata");
|
|
7
|
+
/**
|
|
8
|
+
* Decorator that marks a class as a FrontMcp Server and provides metadata
|
|
9
|
+
*/
|
|
10
|
+
function FrontMcp(providedMetadata) {
|
|
11
|
+
return (target) => {
|
|
12
|
+
const { error, data: metadata } = metadata_1.frontMcpMetadataSchema.safeParse(providedMetadata);
|
|
13
|
+
if (error) {
|
|
14
|
+
if (error.format().apps) {
|
|
15
|
+
throw new Error(`Invalid metadata provided to @FrontMcp { apps: [?] }: \n${JSON.stringify(error.format().apps, null, 2)}`);
|
|
16
|
+
}
|
|
17
|
+
if (error.format().providers) {
|
|
18
|
+
throw new Error(`Invalid metadata provided to @FrontMcp { providers: [?] }: \n${JSON.stringify(error.format().providers, null, 2)}`);
|
|
19
|
+
}
|
|
20
|
+
if (error.format().logging?.transports) {
|
|
21
|
+
throw new Error(`Invalid metadata provided to @FrontMcp { logging: { transports: [?] } }: \n${JSON.stringify(error.format().logging?.transports, null, 2)}`);
|
|
22
|
+
}
|
|
23
|
+
throw error;
|
|
24
|
+
}
|
|
25
|
+
Reflect.defineMetadata(tokens_1.FrontMcpTokens.type, true, target);
|
|
26
|
+
for (const property in metadata) {
|
|
27
|
+
Reflect.defineMetadata(tokens_1.FrontMcpTokens[property] ?? property, metadata[property], target);
|
|
28
|
+
}
|
|
29
|
+
if (metadata.serve) {
|
|
30
|
+
const core = '@frontmcp/core';
|
|
31
|
+
import(core).then(({ FrontMcpInstance }) => {
|
|
32
|
+
if (!FrontMcpInstance) {
|
|
33
|
+
throw new Error(`${core} version mismatch, make sure you have the same version for all @frontmcp/* packages`);
|
|
34
|
+
}
|
|
35
|
+
FrontMcpInstance.bootstrap(metadata);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=front-mcp.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"front-mcp.decorator.js","sourceRoot":"","sources":["../../../src/decorators/front-mcp.decorator.ts"],"names":[],"mappings":";;AAOA,4BAiCC;AAxCD,4BAA0B;AAC1B,sCAA2C;AAC3C,0CAAuE;AAEvE;;GAEG;AACH,SAAgB,QAAQ,CAAC,gBAAkC;IACzD,OAAO,CAAC,MAAgB,EAAE,EAAE;QAE1B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,iCAAsB,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QACrF,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,2DAA2D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7H,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,gEAAgE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACvI,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;gBACvC,MAAM,IAAI,KAAK,CAAC,8EAA8E,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAC/J,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,OAAO,CAAC,cAAc,CAAC,uBAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1D,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,cAAc,CAAC,uBAAc,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QAC3F,CAAC;QAED,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,gBAAgB,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE;gBACzC,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACtB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,qFAAqF,CAAC,CAAC;gBAChH,CAAC;gBACD,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;QACL,CAAC;IAEH,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import 'reflect-metadata';\nimport { FrontMcpTokens } from '../tokens';\nimport { FrontMcpMetadata, frontMcpMetadataSchema } from '../metadata';\n\n/**\n * Decorator that marks a class as a FrontMcp Server and provides metadata\n */\nexport function FrontMcp(providedMetadata: FrontMcpMetadata): ClassDecorator {\n return (target: Function) => {\n\n const { error, data: metadata } = frontMcpMetadataSchema.safeParse(providedMetadata);\n if (error) {\n if (error.format().apps) {\n throw new Error(`Invalid metadata provided to @FrontMcp { apps: [?] }: \\n${JSON.stringify(error.format().apps, null, 2)}`);\n }\n if (error.format().providers) {\n throw new Error(`Invalid metadata provided to @FrontMcp { providers: [?] }: \\n${JSON.stringify(error.format().providers, null, 2)}`);\n }\n if (error.format().logging?.transports) {\n throw new Error(`Invalid metadata provided to @FrontMcp { logging: { transports: [?] } }: \\n${JSON.stringify(error.format().logging?.transports, null, 2)}`);\n }\n throw error;\n }\n\n Reflect.defineMetadata(FrontMcpTokens.type, true, target);\n for (const property in metadata) {\n Reflect.defineMetadata(FrontMcpTokens[property] ?? property, metadata[property], target);\n }\n\n if (metadata.serve) {\n const core = '@frontmcp/core';\n import(core).then(({ FrontMcpInstance }) => {\n if (!FrontMcpInstance) {\n throw new Error(`${core} version mismatch, make sure you have the same version for all @frontmcp/* packages`);\n }\n FrontMcpInstance.bootstrap(metadata);\n });\n }\n\n };\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export * from './front-mcp.decorator';
|
|
2
|
+
export * from './flow.decorator';
|
|
3
|
+
export * from './flow-hooks.decorator';
|
|
4
|
+
export * from './app.decorator';
|
|
5
|
+
export * from './provider.decorator';
|
|
6
|
+
export * from './auth-provider.decorator';
|
|
7
|
+
export * from './adapter.decorator';
|
|
8
|
+
export * from './plugin.decorator';
|
|
9
|
+
export * from './tool.decorator';
|
|
10
|
+
export * from './resource.decorator';
|
|
11
|
+
export * from './prompt.decorator';
|
|
12
|
+
export * from './logger.decorator';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./front-mcp.decorator"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./flow.decorator"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./flow-hooks.decorator"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./app.decorator"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./provider.decorator"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./auth-provider.decorator"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./adapter.decorator"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./plugin.decorator"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./tool.decorator"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./resource.decorator"), exports);
|
|
14
|
+
tslib_1.__exportStar(require("./prompt.decorator"), exports);
|
|
15
|
+
tslib_1.__exportStar(require("./logger.decorator"), exports);
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/index.ts"],"names":[],"mappings":";;;AAAA,gEAAsC;AACtC,2DAAiC;AACjC,iEAAuC;AACvC,0DAAgC;AAChC,+DAAqC;AACrC,oEAA0C;AAC1C,8DAAoC;AACpC,6DAAmC;AACnC,2DAAiC;AACjC,+DAAqC;AACrC,6DAAmC;AACnC,6DAAmC","sourcesContent":["export * from './front-mcp.decorator';\nexport * from './flow.decorator';\nexport * from './flow-hooks.decorator';\nexport * from './app.decorator';\nexport * from './provider.decorator';\nexport * from './auth-provider.decorator';\nexport * from './adapter.decorator';\nexport * from './plugin.decorator';\nexport * from './tool.decorator';\nexport * from './resource.decorator';\nexport * from './prompt.decorator';\nexport * from './logger.decorator';\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { LogTransportMetadata } from '../metadata';
|
|
3
|
+
/**
|
|
4
|
+
* Decorator that marks a class as a FrontMcpLogger module and provides metadata
|
|
5
|
+
*/
|
|
6
|
+
declare function FrontMcpLogTransport(providedMetadata: LogTransportMetadata): ClassDecorator;
|
|
7
|
+
export { FrontMcpLogTransport, FrontMcpLogTransport as LogTransport, };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FrontMcpLogTransport = FrontMcpLogTransport;
|
|
4
|
+
exports.LogTransport = FrontMcpLogTransport;
|
|
5
|
+
require("reflect-metadata");
|
|
6
|
+
const tokens_1 = require("../tokens");
|
|
7
|
+
const metadata_1 = require("../metadata");
|
|
8
|
+
/**
|
|
9
|
+
* Decorator that marks a class as a FrontMcpLogger module and provides metadata
|
|
10
|
+
*/
|
|
11
|
+
function FrontMcpLogTransport(providedMetadata) {
|
|
12
|
+
return (target) => {
|
|
13
|
+
const { error, data: metadata } = metadata_1.frontMcpLogTransportMetadataSchema.safeParse(providedMetadata);
|
|
14
|
+
Reflect.defineMetadata(tokens_1.FrontMcpLogTransportTokens.type, true, target);
|
|
15
|
+
for (const property in metadata) {
|
|
16
|
+
Reflect.defineMetadata(tokens_1.FrontMcpLogTransportTokens[property] ?? property, metadata[property], target);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=logger.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.decorator.js","sourceRoot":"","sources":["../../../src/decorators/logger.decorator.ts"],"names":[],"mappings":";;AAsBE,oDAAoB;AACI,4CAAY;AAvBtC,4BAA0B;AAC1B,sCAAuD;AACvD,0CAGqB;AAErB;;GAEG;AACH,SAAS,oBAAoB,CAAC,gBAAsC;IAClE,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,6CAAkC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAEjG,OAAO,CAAC,cAAc,CAAC,mCAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACtE,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,cAAc,CAAC,mCAA0B,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QACvG,CAAC;IACH,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import 'reflect-metadata';\nimport { FrontMcpLogTransportTokens } from '../tokens';\nimport {\n LogTransportMetadata,\n frontMcpLogTransportMetadataSchema,\n} from '../metadata';\n\n/**\n * Decorator that marks a class as a FrontMcpLogger module and provides metadata\n */\nfunction FrontMcpLogTransport(providedMetadata: LogTransportMetadata): ClassDecorator {\n return (target: Function) => {\n const { error, data: metadata } = frontMcpLogTransportMetadataSchema.safeParse(providedMetadata);\n\n Reflect.defineMetadata(FrontMcpLogTransportTokens.type, true, target);\n for (const property in metadata) {\n Reflect.defineMetadata(FrontMcpLogTransportTokens[property] ?? property, metadata[property], target);\n }\n };\n}\n\nexport {\n FrontMcpLogTransport,\n FrontMcpLogTransport as LogTransport,\n};"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { PluginMetadata } from '../metadata';
|
|
3
|
+
/**
|
|
4
|
+
* Decorator that marks a class as a McpPlugin and provides metadata
|
|
5
|
+
*/
|
|
6
|
+
declare function FrontMcpPlugin(providedMetadata: PluginMetadata): ClassDecorator;
|
|
7
|
+
export { FrontMcpPlugin, FrontMcpPlugin as Plugin, };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FrontMcpPlugin = FrontMcpPlugin;
|
|
4
|
+
exports.Plugin = FrontMcpPlugin;
|
|
5
|
+
require("reflect-metadata");
|
|
6
|
+
const tokens_1 = require("../tokens");
|
|
7
|
+
const metadata_1 = require("../metadata");
|
|
8
|
+
/**
|
|
9
|
+
* Decorator that marks a class as a McpPlugin and provides metadata
|
|
10
|
+
*/
|
|
11
|
+
function FrontMcpPlugin(providedMetadata) {
|
|
12
|
+
return (target) => {
|
|
13
|
+
const { error, data: metadata } = metadata_1.frontMcpPluginMetadataSchema.safeParse(providedMetadata);
|
|
14
|
+
if (error) {
|
|
15
|
+
if (error.format().providers) {
|
|
16
|
+
throw new Error(`Invalid metadata provided to @FrontMcpProvider or @Provider: \n${JSON.stringify(error.formErrors.fieldErrors['providers'], null, 2)}`);
|
|
17
|
+
}
|
|
18
|
+
if (error.format().adapters) {
|
|
19
|
+
throw new Error(`Invalid metadata provided to @FrontMcpAdapter or @Adapter: \n${JSON.stringify(error.format().adapters, null, 2)}`);
|
|
20
|
+
}
|
|
21
|
+
if (error.format().tools) {
|
|
22
|
+
throw new Error(`Invalid metadata provided to @FrontMcpTool or @Tool: \n${JSON.stringify(error.format().tools, null, 2)}`);
|
|
23
|
+
}
|
|
24
|
+
if (error.format().resources) {
|
|
25
|
+
throw new Error(`Invalid metadata provided to @FrontMcpResource or @Resource: \n${JSON.stringify(error.format().resources, null, 2)}`);
|
|
26
|
+
}
|
|
27
|
+
if (error.format().prompts) {
|
|
28
|
+
throw new Error(`Invalid metadata provided to @FrontMcpPrompt or @Prompt: \n${JSON.stringify(error.format().prompts, null, 2)}`);
|
|
29
|
+
}
|
|
30
|
+
throw error;
|
|
31
|
+
}
|
|
32
|
+
Reflect.defineMetadata(tokens_1.FrontMcpPluginTokens.type, true, target);
|
|
33
|
+
for (const property in metadata) {
|
|
34
|
+
Reflect.defineMetadata(tokens_1.FrontMcpPluginTokens[property] ?? property, metadata[property], target);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=plugin.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.decorator.js","sourceRoot":"","sources":["../../../src/decorators/plugin.decorator.ts"],"names":[],"mappings":";;AAsCE,wCAAc;AACI,gCAAM;AAvC1B,4BAA0B;AAC1B,sCAAiD;AACjD,0CAA2E;AAE3E;;GAEG;AACH,SAAS,cAAc,CAAC,gBAAgC;IACtD,OAAO,CAAC,MAAgB,EAAE,EAAE;QAE1B,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,uCAA4B,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC3F,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,kEAAkE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1J,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,gEAAgE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACtI,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,0DAA0D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7H,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,kEAAkE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACzI,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,8DAA8D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACnI,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,OAAO,CAAC,cAAc,CAAC,6BAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAChE,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,cAAc,CAAC,6BAAoB,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QACjG,CAAC;IACH,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import 'reflect-metadata';\nimport { FrontMcpPluginTokens } from '../tokens';\nimport { PluginMetadata, frontMcpPluginMetadataSchema } from '../metadata';\n\n/**\n * Decorator that marks a class as a McpPlugin and provides metadata\n */\nfunction FrontMcpPlugin(providedMetadata: PluginMetadata): ClassDecorator {\n return (target: Function) => {\n\n const { error, data: metadata } = frontMcpPluginMetadataSchema.safeParse(providedMetadata);\n if (error) {\n if (error.format().providers) {\n throw new Error(`Invalid metadata provided to @FrontMcpProvider or @Provider: \\n${JSON.stringify(error.formErrors.fieldErrors['providers'], null, 2)}`);\n }\n if (error.format().adapters) {\n throw new Error(`Invalid metadata provided to @FrontMcpAdapter or @Adapter: \\n${JSON.stringify(error.format().adapters, null, 2)}`);\n }\n if (error.format().tools) {\n throw new Error(`Invalid metadata provided to @FrontMcpTool or @Tool: \\n${JSON.stringify(error.format().tools, null, 2)}`);\n }\n if (error.format().resources) {\n throw new Error(`Invalid metadata provided to @FrontMcpResource or @Resource: \\n${JSON.stringify(error.format().resources, null, 2)}`);\n }\n if (error.format().prompts) {\n throw new Error(`Invalid metadata provided to @FrontMcpPrompt or @Prompt: \\n${JSON.stringify(error.format().prompts, null, 2)}`);\n }\n throw error;\n }\n\n Reflect.defineMetadata(FrontMcpPluginTokens.type, true, target);\n for (const property in metadata) {\n Reflect.defineMetadata(FrontMcpPluginTokens[property] ?? property, metadata[property], target);\n }\n };\n}\n\nexport {\n FrontMcpPlugin,\n FrontMcpPlugin as Plugin,\n};"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { PromptMetadata } from '../metadata';
|
|
3
|
+
import { GetPromptResult, GetPromptRequest } from '@modelcontextprotocol/sdk/types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Decorator that marks a class as a McpPrompt module and provides metadata
|
|
6
|
+
*/
|
|
7
|
+
declare function FrontMcpPrompt(providedMetadata: PromptMetadata): ClassDecorator;
|
|
8
|
+
export type FrontMcpPromptExecuteHandler = (args: GetPromptRequest['params']['arguments'], ...tokens: any[]) => GetPromptResult | Promise<GetPromptResult>;
|
|
9
|
+
/**
|
|
10
|
+
* Decorator that marks a class as a McpTool module and provides metadata
|
|
11
|
+
*/
|
|
12
|
+
declare function frontMcpPrompt<T extends PromptMetadata>(providedMetadata: T): (handler: FrontMcpPromptExecuteHandler) => (() => void);
|
|
13
|
+
export { FrontMcpPrompt, FrontMcpPrompt as Prompt, frontMcpPrompt, frontMcpPrompt as prompt, };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FrontMcpPrompt = FrontMcpPrompt;
|
|
4
|
+
exports.Prompt = FrontMcpPrompt;
|
|
5
|
+
exports.frontMcpPrompt = frontMcpPrompt;
|
|
6
|
+
exports.prompt = frontMcpPrompt;
|
|
7
|
+
require("reflect-metadata");
|
|
8
|
+
const tokens_1 = require("../tokens");
|
|
9
|
+
const metadata_1 = require("../metadata");
|
|
10
|
+
/**
|
|
11
|
+
* Decorator that marks a class as a McpPrompt module and provides metadata
|
|
12
|
+
*/
|
|
13
|
+
function FrontMcpPrompt(providedMetadata) {
|
|
14
|
+
return (target) => {
|
|
15
|
+
const metadata = metadata_1.frontMcpPromptMetadataSchema.parse(providedMetadata);
|
|
16
|
+
Reflect.defineMetadata(tokens_1.FrontMcpPromptTokens.type, true, target);
|
|
17
|
+
for (const property in metadata) {
|
|
18
|
+
Reflect.defineMetadata(tokens_1.FrontMcpPromptTokens[property] ?? property, metadata[property], target);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Decorator that marks a class as a McpTool module and provides metadata
|
|
24
|
+
*/
|
|
25
|
+
function frontMcpPrompt(providedMetadata) {
|
|
26
|
+
return (execute) => {
|
|
27
|
+
const metadata = metadata_1.frontMcpPromptMetadataSchema.parse(providedMetadata);
|
|
28
|
+
const toolFunction = function () {
|
|
29
|
+
return execute;
|
|
30
|
+
};
|
|
31
|
+
Object.assign(toolFunction, {
|
|
32
|
+
[tokens_1.FrontMcpPromptTokens.type]: 'function-prompt',
|
|
33
|
+
[tokens_1.FrontMcpPromptTokens.metadata]: metadata,
|
|
34
|
+
});
|
|
35
|
+
return toolFunction;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=prompt.decorator.js.map
|