@frontmcp/plugins 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/package.json +8 -3
  2. package/src/cache/cache.plugin.js +27 -25
  3. package/src/cache/cache.plugin.js.map +1 -1
  4. package/src/cache/providers/cache-memory.provider.js +2 -1
  5. package/src/cache/providers/cache-memory.provider.js.map +1 -1
  6. package/src/cache/providers/cache-redis.provider.js +1 -0
  7. package/src/cache/providers/cache-redis.provider.js.map +1 -1
  8. package/src/codecall/README.md +999 -0
  9. package/src/codecall/codecall.plugin.d.ts +41 -0
  10. package/src/codecall/codecall.plugin.js +152 -0
  11. package/src/codecall/codecall.plugin.js.map +1 -0
  12. package/src/codecall/codecall.symbol.d.ts +106 -0
  13. package/src/codecall/codecall.symbol.js +4 -0
  14. package/src/codecall/codecall.symbol.js.map +1 -0
  15. package/src/codecall/codecall.types.d.ts +289 -0
  16. package/src/codecall/codecall.types.js +258 -0
  17. package/src/codecall/codecall.types.js.map +1 -0
  18. package/src/codecall/errors/index.d.ts +1 -0
  19. package/src/codecall/errors/index.js +6 -0
  20. package/src/codecall/errors/index.js.map +1 -0
  21. package/src/codecall/errors/tool-call.errors.d.ts +79 -0
  22. package/src/codecall/errors/tool-call.errors.js +119 -0
  23. package/src/codecall/errors/tool-call.errors.js.map +1 -0
  24. package/src/codecall/index.d.ts +2 -0
  25. package/src/codecall/index.js +8 -0
  26. package/src/codecall/index.js.map +1 -0
  27. package/src/codecall/providers/code-call.config.d.ts +29 -0
  28. package/src/codecall/providers/code-call.config.js +120 -0
  29. package/src/codecall/providers/code-call.config.js.map +1 -0
  30. package/src/codecall/security/index.d.ts +2 -0
  31. package/src/codecall/security/index.js +7 -0
  32. package/src/codecall/security/index.js.map +1 -0
  33. package/src/codecall/security/self-reference-guard.d.ts +32 -0
  34. package/src/codecall/security/self-reference-guard.js +70 -0
  35. package/src/codecall/security/self-reference-guard.js.map +1 -0
  36. package/src/codecall/security/tool-access-control.service.d.ts +104 -0
  37. package/src/codecall/security/tool-access-control.service.js +170 -0
  38. package/src/codecall/security/tool-access-control.service.js.map +1 -0
  39. package/src/codecall/services/audit-logger.service.d.ts +186 -0
  40. package/src/codecall/services/audit-logger.service.js +322 -0
  41. package/src/codecall/services/audit-logger.service.js.map +1 -0
  42. package/src/codecall/services/enclave.service.d.ts +62 -0
  43. package/src/codecall/services/enclave.service.js +214 -0
  44. package/src/codecall/services/enclave.service.js.map +1 -0
  45. package/src/codecall/services/error-enrichment.service.d.ts +94 -0
  46. package/src/codecall/services/error-enrichment.service.js +387 -0
  47. package/src/codecall/services/error-enrichment.service.js.map +1 -0
  48. package/src/codecall/services/index.d.ts +6 -0
  49. package/src/codecall/services/index.js +13 -0
  50. package/src/codecall/services/index.js.map +1 -0
  51. package/src/codecall/services/output-sanitizer.d.ts +86 -0
  52. package/src/codecall/services/output-sanitizer.js +260 -0
  53. package/src/codecall/services/output-sanitizer.js.map +1 -0
  54. package/src/codecall/services/synonym-expansion.service.d.ts +66 -0
  55. package/src/codecall/services/synonym-expansion.service.js +374 -0
  56. package/src/codecall/services/synonym-expansion.service.js.map +1 -0
  57. package/src/codecall/services/tool-search.service.d.ts +175 -0
  58. package/src/codecall/services/tool-search.service.js +587 -0
  59. package/src/codecall/services/tool-search.service.js.map +1 -0
  60. package/src/codecall/tools/describe.schema.d.ts +28 -0
  61. package/src/codecall/tools/describe.schema.js +67 -0
  62. package/src/codecall/tools/describe.schema.js.map +1 -0
  63. package/src/codecall/tools/describe.tool.d.ts +35 -0
  64. package/src/codecall/tools/describe.tool.js +207 -0
  65. package/src/codecall/tools/describe.tool.js.map +1 -0
  66. package/src/codecall/tools/execute.schema.d.ts +115 -0
  67. package/src/codecall/tools/execute.schema.js +116 -0
  68. package/src/codecall/tools/execute.schema.js.map +1 -0
  69. package/src/codecall/tools/execute.tool.d.ts +5 -0
  70. package/src/codecall/tools/execute.tool.js +238 -0
  71. package/src/codecall/tools/execute.tool.js.map +1 -0
  72. package/src/codecall/tools/index.d.ts +4 -0
  73. package/src/codecall/tools/index.js +13 -0
  74. package/src/codecall/tools/index.js.map +1 -0
  75. package/src/codecall/tools/invoke.schema.d.ts +55 -0
  76. package/src/codecall/tools/invoke.schema.js +27 -0
  77. package/src/codecall/tools/invoke.schema.js.map +1 -0
  78. package/src/codecall/tools/invoke.tool.d.ts +13 -0
  79. package/src/codecall/tools/invoke.tool.js +70 -0
  80. package/src/codecall/tools/invoke.tool.js.map +1 -0
  81. package/src/codecall/tools/search.schema.d.ts +30 -0
  82. package/src/codecall/tools/search.schema.js +60 -0
  83. package/src/codecall/tools/search.schema.js.map +1 -0
  84. package/src/codecall/tools/search.tool.d.ts +5 -0
  85. package/src/codecall/tools/search.tool.js +108 -0
  86. package/src/codecall/tools/search.tool.js.map +1 -0
  87. package/src/codecall/utils/describe.utils.d.ts +86 -0
  88. package/src/codecall/utils/describe.utils.js +531 -0
  89. package/src/codecall/utils/describe.utils.js.map +1 -0
  90. package/src/codecall/utils/index.d.ts +2 -0
  91. package/src/codecall/utils/index.js +7 -0
  92. package/src/codecall/utils/index.js.map +1 -0
  93. package/src/codecall/utils/mcp-result.d.ts +6 -0
  94. package/src/codecall/utils/mcp-result.js +36 -0
  95. package/src/codecall/utils/mcp-result.js.map +1 -0
  96. package/src/index.d.ts +2 -0
  97. package/src/index.js +3 -1
  98. package/src/index.js.map +1 -1
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ // file: libs/plugins/src/codecall/tools/search.tool.ts
5
+ const sdk_1 = require("@frontmcp/sdk");
6
+ const search_schema_1 = require("./search.schema");
7
+ const services_1 = require("../services");
8
+ let SearchTool = class SearchTool extends sdk_1.ToolContext {
9
+ async execute(input) {
10
+ const { queries, appIds, excludeToolNames = [], topK = 5, minRelevanceScore = 0.3 } = input;
11
+ const searchService = this.get(services_1.ToolSearchService);
12
+ const warnings = [];
13
+ // Check for excluded tools that don't exist in the index
14
+ const nonExistentExcludedTools = excludeToolNames.filter((toolName) => !searchService.hasTool(toolName));
15
+ if (nonExistentExcludedTools.length > 0) {
16
+ warnings.push({
17
+ type: 'excluded_tool_not_found',
18
+ message: `Excluded tools not found: ${nonExistentExcludedTools.join(', ')}`,
19
+ affectedTools: nonExistentExcludedTools,
20
+ });
21
+ }
22
+ // Track tools across all queries for deduplication
23
+ const toolMap = new Map();
24
+ let lowRelevanceCount = 0;
25
+ // Search for each query and merge results
26
+ for (const query of queries) {
27
+ const searchResults = await searchService.search(query, {
28
+ topK,
29
+ appIds,
30
+ excludeToolNames,
31
+ });
32
+ for (const result of searchResults) {
33
+ // Filter by minRelevanceScore
34
+ if (result.relevanceScore < minRelevanceScore) {
35
+ lowRelevanceCount++;
36
+ continue;
37
+ }
38
+ const existing = toolMap.get(result.toolName);
39
+ if (existing) {
40
+ // Tool already found - add query to matchedQueries, keep highest score
41
+ existing.matchedQueries.push(query);
42
+ existing.relevanceScore = Math.max(existing.relevanceScore, result.relevanceScore);
43
+ }
44
+ else {
45
+ // New tool
46
+ toolMap.set(result.toolName, {
47
+ name: result.toolName,
48
+ appId: result.appId,
49
+ description: result.description,
50
+ relevanceScore: result.relevanceScore,
51
+ matchedQueries: [query],
52
+ });
53
+ }
54
+ }
55
+ }
56
+ // Convert to output format, sorted by relevance
57
+ const tools = Array.from(toolMap.values())
58
+ .sort((a, b) => b.relevanceScore - a.relevanceScore)
59
+ .map((tool) => ({
60
+ name: tool.name,
61
+ appId: tool.appId,
62
+ description: tool.description,
63
+ relevanceScore: tool.relevanceScore,
64
+ matchedQueries: tool.matchedQueries,
65
+ }));
66
+ // Add warning if no results found
67
+ if (tools.length === 0) {
68
+ warnings.push({
69
+ type: 'no_results',
70
+ message: `No tools found for queries: ${queries.join(', ')}${appIds?.length ? ` in apps: ${appIds.join(', ')}` : ''}`,
71
+ });
72
+ }
73
+ // Add warning if results were filtered due to low relevance
74
+ if (lowRelevanceCount > 0 && tools.length > 0) {
75
+ warnings.push({
76
+ type: 'low_relevance',
77
+ message: `${lowRelevanceCount} result(s) filtered due to relevance below ${minRelevanceScore}`,
78
+ });
79
+ }
80
+ return {
81
+ tools,
82
+ warnings,
83
+ totalAvailableTools: searchService.getTotalCount(),
84
+ };
85
+ }
86
+ };
87
+ SearchTool = tslib_1.__decorate([
88
+ (0, sdk_1.Tool)({
89
+ name: 'codecall:search',
90
+ cache: {
91
+ ttl: 60, // 1 minute
92
+ slideWindow: false,
93
+ },
94
+ codecall: {
95
+ enabledInCodeCall: false,
96
+ visibleInListTools: true,
97
+ },
98
+ description: search_schema_1.searchToolDescription,
99
+ inputSchema: search_schema_1.searchToolInputSchema,
100
+ outputSchema: search_schema_1.searchToolOutputSchema,
101
+ annotations: {
102
+ readOnlyHint: true,
103
+ openWorldHint: true,
104
+ },
105
+ })
106
+ ], SearchTool);
107
+ exports.default = SearchTool;
108
+ //# sourceMappingURL=search.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.tool.js","sourceRoot":"","sources":["../../../../src/codecall/tools/search.tool.ts"],"names":[],"mappings":"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","sourcesContent":["// file: libs/plugins/src/codecall/tools/search.tool.ts\nimport { Tool, ToolContext } from '@frontmcp/sdk';\nimport {\n SearchToolInput,\n searchToolInputSchema,\n SearchToolOutput,\n searchToolOutputSchema,\n searchToolDescription,\n} from './search.schema';\nimport { ToolSearchService } from '../services';\n\n/** Internal type for tracking tool matches across queries */\ninterface ToolMatch {\n name: string;\n appId: string | undefined;\n description: string;\n relevanceScore: number;\n matchedQueries: string[];\n}\n\n@Tool({\n name: 'codecall:search',\n cache: {\n ttl: 60, // 1 minute\n slideWindow: false,\n },\n codecall: {\n enabledInCodeCall: false,\n visibleInListTools: true,\n },\n description: searchToolDescription,\n inputSchema: searchToolInputSchema,\n outputSchema: searchToolOutputSchema,\n annotations: {\n readOnlyHint: true,\n openWorldHint: true,\n },\n})\nexport default class SearchTool extends ToolContext {\n async execute(input: SearchToolInput): Promise<SearchToolOutput> {\n const { queries, appIds, excludeToolNames = [], topK = 5, minRelevanceScore = 0.3 } = input;\n\n const searchService = this.get(ToolSearchService);\n const warnings: SearchToolOutput['warnings'] = [];\n\n // Check for excluded tools that don't exist in the index\n const nonExistentExcludedTools = excludeToolNames.filter((toolName: string) => !searchService.hasTool(toolName));\n\n if (nonExistentExcludedTools.length > 0) {\n warnings.push({\n type: 'excluded_tool_not_found',\n message: `Excluded tools not found: ${nonExistentExcludedTools.join(', ')}`,\n affectedTools: nonExistentExcludedTools,\n });\n }\n\n // Track tools across all queries for deduplication\n const toolMap = new Map<string, ToolMatch>();\n let lowRelevanceCount = 0;\n\n // Search for each query and merge results\n for (const query of queries) {\n const searchResults = await searchService.search(query, {\n topK,\n appIds,\n excludeToolNames,\n });\n\n for (const result of searchResults) {\n // Filter by minRelevanceScore\n if (result.relevanceScore < minRelevanceScore) {\n lowRelevanceCount++;\n continue;\n }\n\n const existing = toolMap.get(result.toolName);\n if (existing) {\n // Tool already found - add query to matchedQueries, keep highest score\n existing.matchedQueries.push(query);\n existing.relevanceScore = Math.max(existing.relevanceScore, result.relevanceScore);\n } else {\n // New tool\n toolMap.set(result.toolName, {\n name: result.toolName,\n appId: result.appId,\n description: result.description,\n relevanceScore: result.relevanceScore,\n matchedQueries: [query],\n });\n }\n }\n }\n\n // Convert to output format, sorted by relevance\n const tools: SearchToolOutput['tools'] = Array.from(toolMap.values())\n .sort((a, b) => b.relevanceScore - a.relevanceScore)\n .map((tool) => ({\n name: tool.name,\n appId: tool.appId,\n description: tool.description,\n relevanceScore: tool.relevanceScore,\n matchedQueries: tool.matchedQueries,\n }));\n\n // Add warning if no results found\n if (tools.length === 0) {\n warnings.push({\n type: 'no_results',\n message: `No tools found for queries: ${queries.join(', ')}${\n appIds?.length ? ` in apps: ${appIds.join(', ')}` : ''\n }`,\n });\n }\n\n // Add warning if results were filtered due to low relevance\n if (lowRelevanceCount > 0 && tools.length > 0) {\n warnings.push({\n type: 'low_relevance',\n message: `${lowRelevanceCount} result(s) filtered due to relevance below ${minRelevanceScore}`,\n });\n }\n\n return {\n tools,\n warnings,\n totalAvailableTools: searchService.getTotalCount(),\n };\n }\n}\n"]}
@@ -0,0 +1,86 @@
1
+ import type { JSONSchema } from 'zod/v4/core';
2
+ /** JSON Schema type from Zod v4 */
3
+ type JsonSchema = JSONSchema.JSONSchema;
4
+ /**
5
+ * Tool example for describe output
6
+ */
7
+ export interface ToolUsageExample {
8
+ description: string;
9
+ code: string;
10
+ }
11
+ /**
12
+ * Detected intent of a tool based on its name and description.
13
+ */
14
+ export type ToolIntent = 'create' | 'list' | 'get' | 'update' | 'delete' | 'search' | 'action' | 'unknown';
15
+ /**
16
+ * Detect the intent of a tool from its name.
17
+ * Extracts the action verb from tool names like "users:create" or "orders:list".
18
+ */
19
+ export declare function detectToolIntent(toolName: string, description?: string): ToolIntent;
20
+ /**
21
+ * Generate a TypeScript-like function signature from a JSON Schema.
22
+ *
23
+ * @example
24
+ * Input: { type: 'object', properties: { id: { type: 'string' }, limit: { type: 'number' } }, required: ['id'] }
25
+ * Output: "(id: string, limit?: number) => unknown"
26
+ */
27
+ export declare function jsonSchemaToSignature(toolName: string, inputSchema?: JsonSchema, outputSchema?: JsonSchema): string;
28
+ /**
29
+ * Generate a natural language summary of a schema.
30
+ */
31
+ export declare function jsonSchemaToNaturalLanguage(schema: JsonSchema | undefined | null, direction: 'input' | 'output'): string;
32
+ /**
33
+ * Generate a basic usage example for a tool.
34
+ */
35
+ export declare function generateBasicExample(toolName: string, inputSchema?: JsonSchema): ToolUsageExample;
36
+ /**
37
+ * Check if a schema has pagination parameters.
38
+ */
39
+ export declare function hasPaginationParams(schema?: JsonSchema): boolean;
40
+ /**
41
+ * Check if a schema has filter-like parameters.
42
+ */
43
+ export declare function hasFilterParams(schema?: JsonSchema): boolean;
44
+ /**
45
+ * Get filter-like property names from a schema.
46
+ */
47
+ export declare function getFilterProperties(schema?: JsonSchema): string[];
48
+ /**
49
+ * Generate a pagination example for a tool.
50
+ */
51
+ export declare function generatePaginationExample(toolName: string): ToolUsageExample;
52
+ /**
53
+ * Generate a filter example for a tool.
54
+ */
55
+ export declare function generateFilterExample(toolName: string, filterProp: string): ToolUsageExample;
56
+ /**
57
+ * Generate a create example for a tool.
58
+ * Shows required parameters with contextual sample values.
59
+ */
60
+ export declare function generateCreateExample(toolName: string, inputSchema?: JsonSchema): ToolUsageExample;
61
+ /**
62
+ * Generate a get (retrieve single item) example for a tool.
63
+ */
64
+ export declare function generateGetExample(toolName: string, inputSchema?: JsonSchema): ToolUsageExample;
65
+ /**
66
+ * Generate a list example for a tool.
67
+ */
68
+ export declare function generateListExample(toolName: string, inputSchema?: JsonSchema): ToolUsageExample;
69
+ /**
70
+ * Generate an update example for a tool.
71
+ */
72
+ export declare function generateUpdateExample(toolName: string, inputSchema?: JsonSchema): ToolUsageExample;
73
+ /**
74
+ * Generate a delete example for a tool.
75
+ */
76
+ export declare function generateDeleteExample(toolName: string, inputSchema?: JsonSchema): ToolUsageExample;
77
+ /**
78
+ * Generate a search example for a tool.
79
+ */
80
+ export declare function generateSearchExample(toolName: string, inputSchema?: JsonSchema): ToolUsageExample;
81
+ /**
82
+ * Smart example generator that uses intent detection.
83
+ * This is the main entry point for generating examples.
84
+ */
85
+ export declare function generateSmartExample(toolName: string, inputSchema?: JsonSchema, description?: string): ToolUsageExample;
86
+ export {};