@mcpc-tech/core 0.3.31 → 0.3.33
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/index.cjs +63 -31
- package/index.mjs +63 -29
- package/package.json +1 -1
- package/types/mod.d.ts +1 -1
- package/types/mod.d.ts.map +1 -1
- package/types/src/compose.d.ts +31 -1
- package/types/src/compose.d.ts.map +1 -1
- package/types/src/set-up-mcp-compose.d.ts +3 -9
- package/types/src/set-up-mcp-compose.d.ts.map +1 -1
package/index.cjs
CHANGED
|
@@ -534,7 +534,6 @@ __export(mod_exports, {
|
|
|
534
534
|
composeMcpDepTools: () => composeMcpDepTools,
|
|
535
535
|
convertToAISDKTools: () => convertToAISDKTools,
|
|
536
536
|
extractJsonSchema: () => extractJsonSchema,
|
|
537
|
-
isMarkdownFile: () => isMarkdownFile,
|
|
538
537
|
isProdEnv: () => isProdEnv,
|
|
539
538
|
isSCF: () => isSCF,
|
|
540
539
|
isWrappedSchema: () => isWrappedSchema,
|
|
@@ -543,7 +542,6 @@ __export(mod_exports, {
|
|
|
543
542
|
optionalObject: () => optionalObject,
|
|
544
543
|
parseJSON: () => parseJSON,
|
|
545
544
|
parseMcpcConfigs: () => parseMcpcConfigs,
|
|
546
|
-
setMarkdownAgentLoader: () => setMarkdownAgentLoader,
|
|
547
545
|
truncateJSON: () => truncateJSON
|
|
548
546
|
});
|
|
549
547
|
module.exports = __toCommonJS(mod_exports);
|
|
@@ -19715,6 +19713,7 @@ var PluginManager = class {
|
|
|
19715
19713
|
/**
|
|
19716
19714
|
* Trigger registerAgentTool hook - allows plugins to register the main agent tool
|
|
19717
19715
|
* Returns true if any plugin handled the registration
|
|
19716
|
+
* Throws the original error if plugin fails (instead of swallowing it)
|
|
19718
19717
|
*/
|
|
19719
19718
|
async triggerRegisterAgentTool(context2) {
|
|
19720
19719
|
const registerPlugins = this.plugins.filter((p2) => p2.registerAgentTool && shouldApplyPlugin(p2, context2.mode));
|
|
@@ -19724,13 +19723,8 @@ var PluginManager = class {
|
|
|
19724
19723
|
const sortedPlugins = sortPluginsByOrder(registerPlugins).reverse();
|
|
19725
19724
|
for (const plugin of sortedPlugins) {
|
|
19726
19725
|
if (plugin.registerAgentTool) {
|
|
19727
|
-
|
|
19728
|
-
|
|
19729
|
-
return true;
|
|
19730
|
-
} catch (error2) {
|
|
19731
|
-
const errorMsg = error2 instanceof Error ? error2.message : String(error2);
|
|
19732
|
-
await this.logger.error(`Plugin "${plugin.name}" registerAgentTool failed: ${errorMsg}`);
|
|
19733
|
-
}
|
|
19726
|
+
await plugin.registerAgentTool(context2);
|
|
19727
|
+
return true;
|
|
19734
19728
|
}
|
|
19735
19729
|
}
|
|
19736
19730
|
return false;
|
|
@@ -20194,6 +20188,7 @@ var ComposableMCPServer = class extends Server {
|
|
|
20194
20188
|
pluginManager;
|
|
20195
20189
|
toolManager;
|
|
20196
20190
|
logger = createLogger("mcpc.compose");
|
|
20191
|
+
fileLoaders = /* @__PURE__ */ new Map();
|
|
20197
20192
|
// Legacy property for backward compatibility
|
|
20198
20193
|
get toolNameMapping() {
|
|
20199
20194
|
return this.toolManager.getToolNameMapping();
|
|
@@ -20212,6 +20207,58 @@ var ComposableMCPServer = class extends Server {
|
|
|
20212
20207
|
this.pluginManager = new PluginManager(this);
|
|
20213
20208
|
this.toolManager = new ToolManager();
|
|
20214
20209
|
}
|
|
20210
|
+
/**
|
|
20211
|
+
* Register a file loader for a specific extension.
|
|
20212
|
+
* Plugins can use this to add support for different file formats.
|
|
20213
|
+
*
|
|
20214
|
+
* @param extension - File extension including the dot (e.g., ".md", ".yaml")
|
|
20215
|
+
* @param loader - Function that loads a file and returns a ComposeDefinition
|
|
20216
|
+
*
|
|
20217
|
+
* @example
|
|
20218
|
+
* ```typescript
|
|
20219
|
+
* // In a plugin's configureServer hook:
|
|
20220
|
+
* configureServer: (server) => {
|
|
20221
|
+
* server.registerFileLoader(".md", loadMarkdownAgentFile);
|
|
20222
|
+
* server.registerFileLoader(".yaml", loadYamlAgentFile);
|
|
20223
|
+
* }
|
|
20224
|
+
* ```
|
|
20225
|
+
*/
|
|
20226
|
+
registerFileLoader(extension, loader) {
|
|
20227
|
+
this.fileLoaders.set(extension.toLowerCase(), loader);
|
|
20228
|
+
}
|
|
20229
|
+
/**
|
|
20230
|
+
* Get the file loader for a specific extension.
|
|
20231
|
+
*/
|
|
20232
|
+
getFileLoader(extension) {
|
|
20233
|
+
return this.fileLoaders.get(extension.toLowerCase());
|
|
20234
|
+
}
|
|
20235
|
+
/**
|
|
20236
|
+
* Check if a file extension has a registered loader.
|
|
20237
|
+
*/
|
|
20238
|
+
hasFileLoader(extension) {
|
|
20239
|
+
return this.fileLoaders.has(extension.toLowerCase());
|
|
20240
|
+
}
|
|
20241
|
+
/**
|
|
20242
|
+
* Get all registered file extensions.
|
|
20243
|
+
*/
|
|
20244
|
+
getRegisteredExtensions() {
|
|
20245
|
+
return Array.from(this.fileLoaders.keys());
|
|
20246
|
+
}
|
|
20247
|
+
/**
|
|
20248
|
+
* Resolve a file path to a ComposeDefinition using registered loaders.
|
|
20249
|
+
* @internal
|
|
20250
|
+
*/
|
|
20251
|
+
async resolveFilePath(filePath) {
|
|
20252
|
+
const lastDot = filePath.lastIndexOf(".");
|
|
20253
|
+
const extension = lastDot === -1 ? "" : filePath.slice(lastDot).toLowerCase();
|
|
20254
|
+
const loader = this.fileLoaders.get(extension);
|
|
20255
|
+
if (!loader) {
|
|
20256
|
+
const supportedExtensions = this.getRegisteredExtensions().join(", ");
|
|
20257
|
+
const hint = supportedExtensions ? ` Supported extensions: ${supportedExtensions}.` : ' No file loaders registered. Use a loader plugin (e.g., markdownLoaderPlugin from "@mcpc/plugin-markdown-loader").';
|
|
20258
|
+
throw new Error(`Cannot load file "${filePath}": No loader registered for "${extension}" extension.${hint}`);
|
|
20259
|
+
}
|
|
20260
|
+
return await loader(filePath);
|
|
20261
|
+
}
|
|
20215
20262
|
/**
|
|
20216
20263
|
* Initialize built-in plugins - called during setup
|
|
20217
20264
|
*/
|
|
@@ -20783,25 +20830,6 @@ function convertToAISDKTools(server, helpers) {
|
|
|
20783
20830
|
}
|
|
20784
20831
|
|
|
20785
20832
|
// __mcpc__core_latest/node_modules/@mcpc/core/src/set-up-mcp-compose.js
|
|
20786
|
-
var markdownAgentLoader = null;
|
|
20787
|
-
function setMarkdownAgentLoader(loader) {
|
|
20788
|
-
markdownAgentLoader = loader;
|
|
20789
|
-
}
|
|
20790
|
-
function isMarkdownFile(path) {
|
|
20791
|
-
return path.endsWith(".md") || path.endsWith(".markdown");
|
|
20792
|
-
}
|
|
20793
|
-
async function resolveComposeInput(input) {
|
|
20794
|
-
if (typeof input !== "string") {
|
|
20795
|
-
return input;
|
|
20796
|
-
}
|
|
20797
|
-
if (!isMarkdownFile(input)) {
|
|
20798
|
-
throw new Error(`Invalid compose input: "${input}". Expected a Markdown file path (.md) or a ComposeDefinition object.`);
|
|
20799
|
-
}
|
|
20800
|
-
if (!markdownAgentLoader) {
|
|
20801
|
-
throw new Error(`Cannot load Markdown agent file "${input}": Markdown loader not available. Use markdownLoaderPlugin() from "@mcpc/plugin-markdown-loader", or use inline ComposeDefinition objects.`);
|
|
20802
|
-
}
|
|
20803
|
-
return await markdownAgentLoader(input);
|
|
20804
|
-
}
|
|
20805
20833
|
function parseMcpcConfigs(conf) {
|
|
20806
20834
|
return conf ?? [];
|
|
20807
20835
|
}
|
|
@@ -20819,7 +20847,13 @@ async function mcpc(serverConf, composeConf, optionsOrSetup) {
|
|
|
20819
20847
|
}
|
|
20820
20848
|
}
|
|
20821
20849
|
}
|
|
20822
|
-
const
|
|
20850
|
+
const resolveInput = (input) => {
|
|
20851
|
+
if (typeof input !== "string") {
|
|
20852
|
+
return Promise.resolve(input);
|
|
20853
|
+
}
|
|
20854
|
+
return server.resolveFilePath(input);
|
|
20855
|
+
};
|
|
20856
|
+
const resolvedConfigs = composeConf ? await Promise.all(composeConf.map(resolveInput)) : [];
|
|
20823
20857
|
const parsed = parseMcpcConfigs(resolvedConfigs);
|
|
20824
20858
|
await server.initBuiltInPlugins();
|
|
20825
20859
|
for (const mcpcConfig of parsed) {
|
|
@@ -20847,7 +20881,6 @@ async function mcpc(serverConf, composeConf, optionsOrSetup) {
|
|
|
20847
20881
|
composeMcpDepTools,
|
|
20848
20882
|
convertToAISDKTools,
|
|
20849
20883
|
extractJsonSchema,
|
|
20850
|
-
isMarkdownFile,
|
|
20851
20884
|
isProdEnv,
|
|
20852
20885
|
isSCF,
|
|
20853
20886
|
isWrappedSchema,
|
|
@@ -20856,6 +20889,5 @@ async function mcpc(serverConf, composeConf, optionsOrSetup) {
|
|
|
20856
20889
|
optionalObject,
|
|
20857
20890
|
parseJSON,
|
|
20858
20891
|
parseMcpcConfigs,
|
|
20859
|
-
setMarkdownAgentLoader,
|
|
20860
20892
|
truncateJSON
|
|
20861
20893
|
});
|
package/index.mjs
CHANGED
|
@@ -19700,6 +19700,7 @@ var PluginManager = class {
|
|
|
19700
19700
|
/**
|
|
19701
19701
|
* Trigger registerAgentTool hook - allows plugins to register the main agent tool
|
|
19702
19702
|
* Returns true if any plugin handled the registration
|
|
19703
|
+
* Throws the original error if plugin fails (instead of swallowing it)
|
|
19703
19704
|
*/
|
|
19704
19705
|
async triggerRegisterAgentTool(context2) {
|
|
19705
19706
|
const registerPlugins = this.plugins.filter((p2) => p2.registerAgentTool && shouldApplyPlugin(p2, context2.mode));
|
|
@@ -19709,13 +19710,8 @@ var PluginManager = class {
|
|
|
19709
19710
|
const sortedPlugins = sortPluginsByOrder(registerPlugins).reverse();
|
|
19710
19711
|
for (const plugin of sortedPlugins) {
|
|
19711
19712
|
if (plugin.registerAgentTool) {
|
|
19712
|
-
|
|
19713
|
-
|
|
19714
|
-
return true;
|
|
19715
|
-
} catch (error2) {
|
|
19716
|
-
const errorMsg = error2 instanceof Error ? error2.message : String(error2);
|
|
19717
|
-
await this.logger.error(`Plugin "${plugin.name}" registerAgentTool failed: ${errorMsg}`);
|
|
19718
|
-
}
|
|
19713
|
+
await plugin.registerAgentTool(context2);
|
|
19714
|
+
return true;
|
|
19719
19715
|
}
|
|
19720
19716
|
}
|
|
19721
19717
|
return false;
|
|
@@ -20179,6 +20175,7 @@ var ComposableMCPServer = class extends Server {
|
|
|
20179
20175
|
pluginManager;
|
|
20180
20176
|
toolManager;
|
|
20181
20177
|
logger = createLogger("mcpc.compose");
|
|
20178
|
+
fileLoaders = /* @__PURE__ */ new Map();
|
|
20182
20179
|
// Legacy property for backward compatibility
|
|
20183
20180
|
get toolNameMapping() {
|
|
20184
20181
|
return this.toolManager.getToolNameMapping();
|
|
@@ -20197,6 +20194,58 @@ var ComposableMCPServer = class extends Server {
|
|
|
20197
20194
|
this.pluginManager = new PluginManager(this);
|
|
20198
20195
|
this.toolManager = new ToolManager();
|
|
20199
20196
|
}
|
|
20197
|
+
/**
|
|
20198
|
+
* Register a file loader for a specific extension.
|
|
20199
|
+
* Plugins can use this to add support for different file formats.
|
|
20200
|
+
*
|
|
20201
|
+
* @param extension - File extension including the dot (e.g., ".md", ".yaml")
|
|
20202
|
+
* @param loader - Function that loads a file and returns a ComposeDefinition
|
|
20203
|
+
*
|
|
20204
|
+
* @example
|
|
20205
|
+
* ```typescript
|
|
20206
|
+
* // In a plugin's configureServer hook:
|
|
20207
|
+
* configureServer: (server) => {
|
|
20208
|
+
* server.registerFileLoader(".md", loadMarkdownAgentFile);
|
|
20209
|
+
* server.registerFileLoader(".yaml", loadYamlAgentFile);
|
|
20210
|
+
* }
|
|
20211
|
+
* ```
|
|
20212
|
+
*/
|
|
20213
|
+
registerFileLoader(extension, loader) {
|
|
20214
|
+
this.fileLoaders.set(extension.toLowerCase(), loader);
|
|
20215
|
+
}
|
|
20216
|
+
/**
|
|
20217
|
+
* Get the file loader for a specific extension.
|
|
20218
|
+
*/
|
|
20219
|
+
getFileLoader(extension) {
|
|
20220
|
+
return this.fileLoaders.get(extension.toLowerCase());
|
|
20221
|
+
}
|
|
20222
|
+
/**
|
|
20223
|
+
* Check if a file extension has a registered loader.
|
|
20224
|
+
*/
|
|
20225
|
+
hasFileLoader(extension) {
|
|
20226
|
+
return this.fileLoaders.has(extension.toLowerCase());
|
|
20227
|
+
}
|
|
20228
|
+
/**
|
|
20229
|
+
* Get all registered file extensions.
|
|
20230
|
+
*/
|
|
20231
|
+
getRegisteredExtensions() {
|
|
20232
|
+
return Array.from(this.fileLoaders.keys());
|
|
20233
|
+
}
|
|
20234
|
+
/**
|
|
20235
|
+
* Resolve a file path to a ComposeDefinition using registered loaders.
|
|
20236
|
+
* @internal
|
|
20237
|
+
*/
|
|
20238
|
+
async resolveFilePath(filePath) {
|
|
20239
|
+
const lastDot = filePath.lastIndexOf(".");
|
|
20240
|
+
const extension = lastDot === -1 ? "" : filePath.slice(lastDot).toLowerCase();
|
|
20241
|
+
const loader = this.fileLoaders.get(extension);
|
|
20242
|
+
if (!loader) {
|
|
20243
|
+
const supportedExtensions = this.getRegisteredExtensions().join(", ");
|
|
20244
|
+
const hint = supportedExtensions ? ` Supported extensions: ${supportedExtensions}.` : ' No file loaders registered. Use a loader plugin (e.g., markdownLoaderPlugin from "@mcpc/plugin-markdown-loader").';
|
|
20245
|
+
throw new Error(`Cannot load file "${filePath}": No loader registered for "${extension}" extension.${hint}`);
|
|
20246
|
+
}
|
|
20247
|
+
return await loader(filePath);
|
|
20248
|
+
}
|
|
20200
20249
|
/**
|
|
20201
20250
|
* Initialize built-in plugins - called during setup
|
|
20202
20251
|
*/
|
|
@@ -20768,25 +20817,6 @@ function convertToAISDKTools(server, helpers) {
|
|
|
20768
20817
|
}
|
|
20769
20818
|
|
|
20770
20819
|
// __mcpc__core_latest/node_modules/@mcpc/core/src/set-up-mcp-compose.js
|
|
20771
|
-
var markdownAgentLoader = null;
|
|
20772
|
-
function setMarkdownAgentLoader(loader) {
|
|
20773
|
-
markdownAgentLoader = loader;
|
|
20774
|
-
}
|
|
20775
|
-
function isMarkdownFile(path) {
|
|
20776
|
-
return path.endsWith(".md") || path.endsWith(".markdown");
|
|
20777
|
-
}
|
|
20778
|
-
async function resolveComposeInput(input) {
|
|
20779
|
-
if (typeof input !== "string") {
|
|
20780
|
-
return input;
|
|
20781
|
-
}
|
|
20782
|
-
if (!isMarkdownFile(input)) {
|
|
20783
|
-
throw new Error(`Invalid compose input: "${input}". Expected a Markdown file path (.md) or a ComposeDefinition object.`);
|
|
20784
|
-
}
|
|
20785
|
-
if (!markdownAgentLoader) {
|
|
20786
|
-
throw new Error(`Cannot load Markdown agent file "${input}": Markdown loader not available. Use markdownLoaderPlugin() from "@mcpc/plugin-markdown-loader", or use inline ComposeDefinition objects.`);
|
|
20787
|
-
}
|
|
20788
|
-
return await markdownAgentLoader(input);
|
|
20789
|
-
}
|
|
20790
20820
|
function parseMcpcConfigs(conf) {
|
|
20791
20821
|
return conf ?? [];
|
|
20792
20822
|
}
|
|
@@ -20804,7 +20834,13 @@ async function mcpc(serverConf, composeConf, optionsOrSetup) {
|
|
|
20804
20834
|
}
|
|
20805
20835
|
}
|
|
20806
20836
|
}
|
|
20807
|
-
const
|
|
20837
|
+
const resolveInput = (input) => {
|
|
20838
|
+
if (typeof input !== "string") {
|
|
20839
|
+
return Promise.resolve(input);
|
|
20840
|
+
}
|
|
20841
|
+
return server.resolveFilePath(input);
|
|
20842
|
+
};
|
|
20843
|
+
const resolvedConfigs = composeConf ? await Promise.all(composeConf.map(resolveInput)) : [];
|
|
20808
20844
|
const parsed = parseMcpcConfigs(resolvedConfigs);
|
|
20809
20845
|
await server.initBuiltInPlugins();
|
|
20810
20846
|
for (const mcpcConfig of parsed) {
|
|
@@ -20831,7 +20867,6 @@ export {
|
|
|
20831
20867
|
composeMcpDepTools,
|
|
20832
20868
|
convertToAISDKTools,
|
|
20833
20869
|
extractJsonSchema,
|
|
20834
|
-
isMarkdownFile,
|
|
20835
20870
|
isProdEnv,
|
|
20836
20871
|
isSCF,
|
|
20837
20872
|
isWrappedSchema,
|
|
@@ -20840,6 +20875,5 @@ export {
|
|
|
20840
20875
|
optionalObject,
|
|
20841
20876
|
parseJSON,
|
|
20842
20877
|
parseMcpcConfigs,
|
|
20843
|
-
setMarkdownAgentLoader,
|
|
20844
20878
|
truncateJSON
|
|
20845
20879
|
};
|
package/package.json
CHANGED
package/types/mod.d.ts
CHANGED
|
@@ -53,7 +53,7 @@ export type { AfterToolExecuteContext, AfterToolExecuteResult, AgentToolRegistra
|
|
|
53
53
|
export * from "./src/utils/common/env.js";
|
|
54
54
|
export * from "./src/utils/common/json.js";
|
|
55
55
|
export * from "./src/utils/common/mcp.js";
|
|
56
|
-
export { type ComposeDefinition, type ComposeInput, type ComposibleMCPConfig,
|
|
56
|
+
export { type ComposeDefinition, type ComposeInput, type ComposibleMCPConfig, type FileLoader, mcpc, type McpcOptions, parseMcpcConfigs } from "./src/set-up-mcp-compose.js";
|
|
57
57
|
export { extractJsonSchema, isWrappedSchema, jsonSchema, type Schema } from "./src/utils/schema.js";
|
|
58
58
|
export { convertToAISDKTools, type JsonSchemaHelper, type ToolHelper } from "./src/ai-sdk-adapter.js";
|
|
59
59
|
//# sourceMappingURL=mod.d.ts.map
|
package/types/mod.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sources":["../mod.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDC,GAED,iCAAiC;AAGjC,cACE,eAAe,EACf,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,0BAA0B,iCACI;AAGhC,cAAc,cAAc,EAAE,UAAU,yBAAyB;AAGjE,cACE,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAC5B,wBAAwB,EACxB,uBAAuB,EACvB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACvB,UAAU,EACV,UAAU,EACV,gBAAgB,gCACa;AAE/B,0CAA0C;AAC1C,2CAA2C;AAC3C,0CAA0C;AAE1C,SACE,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sources":["../mod.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDC,GAED,iCAAiC;AAGjC,cACE,eAAe,EACf,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,0BAA0B,iCACI;AAGhC,cAAc,cAAc,EAAE,UAAU,yBAAyB;AAGjE,cACE,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAC5B,wBAAwB,EACxB,uBAAuB,EACvB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACvB,UAAU,EACV,UAAU,EACV,gBAAgB,gCACa;AAE/B,0CAA0C;AAC1C,2CAA2C;AAC3C,0CAA0C;AAE1C,SACE,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,IAAI,EACJ,KAAK,WAAW,EAChB,gBAAgB,sCACmB;AAGrC,SACE,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,KAAK,MAAM,gCACkB;AAG/B,SACE,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,UAAU,kCACgB"}
|
package/types/src/compose.d.ts
CHANGED
|
@@ -2,15 +2,45 @@ import { type Implementation, type Tool } from "@modelcontextprotocol/sdk/types.
|
|
|
2
2
|
import { type Schema } from "./utils/schema.js";
|
|
3
3
|
import type { MCPSetting } from "./service/tools.js";
|
|
4
4
|
import { Server, type ServerOptions } from "@modelcontextprotocol/sdk/server/index.js";
|
|
5
|
-
import type { ComposeDefinition } from "./set-up-mcp-compose.js";
|
|
5
|
+
import type { ComposeDefinition, FileLoader } from "./set-up-mcp-compose.js";
|
|
6
6
|
import type { JSONSchema, ToolCallback } from "./types.js";
|
|
7
7
|
import type { ToolConfig, ToolPlugin } from "./plugin-types.js";
|
|
8
8
|
export declare class ComposableMCPServer extends Server {
|
|
9
9
|
private pluginManager: any;
|
|
10
10
|
private toolManager: any;
|
|
11
11
|
private logger: any;
|
|
12
|
+
private fileLoaders: any;
|
|
12
13
|
get toolNameMapping(): Map<string, string>;
|
|
13
14
|
constructor(_serverInfo: Implementation, options: ServerOptions);
|
|
15
|
+
/**
|
|
16
|
+
* Register a file loader for a specific extension.
|
|
17
|
+
* Plugins can use this to add support for different file formats.
|
|
18
|
+
*
|
|
19
|
+
* @param extension - File extension including the dot (e.g., ".md", ".yaml")
|
|
20
|
+
* @param loader - Function that loads a file and returns a ComposeDefinition
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* // In a plugin's configureServer hook:
|
|
25
|
+
* configureServer: (server) => {
|
|
26
|
+
* server.registerFileLoader(".md", loadMarkdownAgentFile);
|
|
27
|
+
* server.registerFileLoader(".yaml", loadYamlAgentFile);
|
|
28
|
+
* }
|
|
29
|
+
* ```
|
|
30
|
+
*/ registerFileLoader(extension: string, loader: FileLoader): void;
|
|
31
|
+
/**
|
|
32
|
+
* Get the file loader for a specific extension.
|
|
33
|
+
*/ getFileLoader(extension: string): FileLoader | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Check if a file extension has a registered loader.
|
|
36
|
+
*/ hasFileLoader(extension: string): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Get all registered file extensions.
|
|
39
|
+
*/ getRegisteredExtensions(): string[];
|
|
40
|
+
/**
|
|
41
|
+
* Resolve a file path to a ComposeDefinition using registered loaders.
|
|
42
|
+
* @internal
|
|
43
|
+
*/ resolveFilePath(filePath: string): Promise<ComposeDefinition>;
|
|
14
44
|
/**
|
|
15
45
|
* Initialize built-in plugins - called during setup
|
|
16
46
|
*/ initBuiltInPlugins(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.d.ts","sources":["../../src/compose.ts"],"names":[],"mappings":"AAAA,SAGE,KAAK,cAAc,EAGnB,KAAK,IAAI,6CAC8C;AACzD,SAAwC,KAAK,MAAM,4BAA4B;AAC/E,cAAc,UAAU,6BAA6B;AACrD,SACE,MAAM,EACN,KAAK,aAAa,oDAC4C;AAGhE,cAAc,iBAAiB,kCAAkC;
|
|
1
|
+
{"version":3,"file":"compose.d.ts","sources":["../../src/compose.ts"],"names":[],"mappings":"AAAA,SAGE,KAAK,cAAc,EAGnB,KAAK,IAAI,6CAC8C;AACzD,SAAwC,KAAK,MAAM,4BAA4B;AAC/E,cAAc,UAAU,6BAA6B;AACrD,SACE,MAAM,EACN,KAAK,aAAa,oDAC4C;AAGhE,cAAc,iBAAiB,EAAE,UAAU,kCAAkC;AAC7E,cAAc,UAAU,EAAE,YAAY,qBAAqB;AAM3D,cAA4B,UAAU,EAAE,UAAU,4BAA4B;AAe9E,OAAO,cAAM,4BAA4B;EACvC,QAAQ,mBAA6B;EACrC,QAAQ,iBAAyB;EACjC,QAAQ,YAAsC;EAC9C,QAAQ,iBAA4C;EAGpD,IAAI,mBAAmB,IAAI,MAAM,EAAE,MAAM;EAIzC,YAAY,aAAa,cAAc,EAAE,SAAS,aAAa;EAiB/D;;;;;;;;;;;;;;;GAeC,GACD,mBAAmB,WAAW,MAAM,EAAE,QAAQ,UAAU,GAAG,IAAI;EAI/D;;GAEC,GACD,cAAc,WAAW,MAAM,GAAG,aAAa,SAAS;EAIxD;;GAEC,GACD,cAAc,WAAW,MAAM,GAAG,OAAO;EAIzC;;GAEC,GACD,2BAA2B,MAAM;EAIjC;;;GAGC,GACD,AAAM,gBAAgB,UAAU,MAAM,GAAG,QAAQ;EAqBjD;;GAEC,GACD,AAAM,sBAAsB,QAAQ,IAAI;UAqB1B;UAsDN;EAIR,KAAK,GACH,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,cAAc,OAAO,KAAK,UAAU,EACpC,KAAK,MAAM,GAAG,QAAQ,OAAO,KAAK,OAAO,EACzC;IAAW,WAAW,OAAO;IAAE,SAAS,OAAO;IAAE,UAAU;GACvD;EA+JN;;GAEC,GACD,gBAAgB,MAAM,MAAM,GAAG,eAAe,SAAS;EAIvD;;GAEC,GACD,eAAe,QAAQ,MAAM,GAAG,aAAa,SAAS;EAItD;;;GAGC,GACD,AAAM,SACJ,MAAM,MAAM,EACZ,MAAM,OAAO,EACb;IAAW,YAAY,MAAM;IAAE,iBAAiB,MAAM;GAAS,GAC9D,QAAQ,OAAO;EA4JlB;;GAEC,GACD,sBAAsB,MAAM;EAI5B;;GAEC,GACD,kBAAkB;EAIlB;;GAEC,GACD,sBAAsB,MAAM;EAI5B;;GAEC,GACD,wBAAwB,MAAM;EAM9B;;GAEC,GACD,oBACE,MAAM,MAAM;IACT,aAAa,MAAM;IAAE,QAAQ;MAAe,SAAS;EAI1D;;GAEC,GACD,aAAa,MAAM,MAAM,GAAG,OAAO;EAInC;;GAEC,GACD,WAAW,UAAU,MAAM,EAAE,QAAQ,UAAU,GAAG,IAAI;EAItD;;GAEC,GACD,cAAc,UAAU,MAAM,GAAG,aAAa,SAAS;EAIvD;;GAEC,GACD,iBAAiB,UAAU,MAAM,GAAG,OAAO;EAI3C;;GAEC,GACD,AAAM,UAAU,QAAQ,UAAU,GAAG,QAAQ,IAAI;EAIjD;;GAEC,GACD,AAAM,mBACJ,YAAY,MAAM,EAClB;IAAW,QAAQ,OAAO;GAAoB,GAC7C,QAAQ,IAAI;UAOD;EAOd;;GAEC,GACD,AAAM,kBAAkB,QAAQ,IAAI;EAIpC;;GAEC,GACD,SAAe,SAAS,QAAQ,IAAI;EAK9B,QACJ,MAAM,MAAM,GAAG,IAAI,EACnB,aAAa,MAAM,EACnB,aAAY,UAA+B,EAC3C,UAAS,kBAAkB,UAAgC,EAC3D,SAAS,MAAM;AAoRnB"}
|
|
@@ -117,15 +117,9 @@ export interface ComposibleMCPConfig {
|
|
|
117
117
|
[key: string]: ComposeDefinition[];
|
|
118
118
|
}
|
|
119
119
|
/**
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
*/ export type
|
|
123
|
-
/**
|
|
124
|
-
* Register the Markdown agent loader (called by markdownLoaderPlugin())
|
|
125
|
-
*/ export declare function setMarkdownAgentLoader(loader: MarkdownAgentLoader): void;
|
|
126
|
-
/**
|
|
127
|
-
* Check if a path is a Markdown file (.md or .markdown)
|
|
128
|
-
*/ export declare function isMarkdownFile(path: string): boolean;
|
|
120
|
+
* File loader function type for loading agent definitions from files.
|
|
121
|
+
* Plugins can register loaders for different file extensions.
|
|
122
|
+
*/ export type FileLoader = (filePath: string) => Promise<ComposeDefinition>;
|
|
129
123
|
export declare function parseMcpcConfigs(conf?: ComposeDefinition[]): ComposeDefinition[];
|
|
130
124
|
/**
|
|
131
125
|
* Options for mcpc() function
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-up-mcp-compose.d.ts","sources":["../../src/set-up-mcp-compose.ts"],"names":[],"mappings":"AAAA,SAAS,mBAAmB,oBAAoB;AAChD,cAAc,UAAU,6BAA6B;AACrD,cAAc,cAAc,qBAAqB;AACjD,cAAc,UAAU,4BAA4B;AACpD,cAAc,UAAU,qBAAqB;AAC7C,cAAc,aAAa,6BAA6B;AAExD,iBAAiB;EACf;;;GAGC,GACD,MAAM,MAAM,GAAG,IAAI;EACnB;;GAEC,GACD,cAAc,MAAM;EACpB;;;GAGC,GACD,SAAS,MAAM;EACf,OAAO;EAEP;;;;;;;;;;;GAWC,GACD,WAAW,aAAa,MAAM;EAE9B;IACE;;;;;;KAMC,GACD,OAAO;IAEP;;KAEC,GACD,iBAAiB;IAEjB;;;;KAIC,GACD;MACE;QACE,QAAQ;UAAQ,OAAO,MAAM;;QAC7B,eAAe,MAAM;QACrB,gBAAgB,MAAM;QACtB,uBAAuB,MAAM;;;IAIjC;;;;KAIC,GACD;MACE,SAAS,MAAM;MACf,OAAO,MAAM;MACb,MAAM,OAAO,MAAM,EAAE,MAAM;MAC3B;QACE,MAAM,MAAM;QACZ,aAAa;UACX,MAAM,MAAM;UACZ,SAAS,MAAM;UACf,OAAO,MAAM;UACb,MAAM,OAAO,MAAM,EAAE,MAAM;;;MAG/B,iBAAiB,OAAO;;IAG1B;;;;KAIC,GACD,WAAW,MAAM;IAEjB;;;;KAIC,GACD,YAAY,MAAM;IAElB;;;;KAIC,GACD,iBAAiB,OAAO;IAExB;;;;;KAKC,GACD;;;KAGC,GACD,OAAO,MAAM;;;AAIjB;;;;;;;;;;;;;CAaC,GACD,YAAY,eAAe,oBAAoB,MAAM;AAIrD,iBAAiB;GACd,KAAK,MAAM,GAAG;;AAGjB;;;CAGC,GACD,YAAY,
|
|
1
|
+
{"version":3,"file":"set-up-mcp-compose.d.ts","sources":["../../src/set-up-mcp-compose.ts"],"names":[],"mappings":"AAAA,SAAS,mBAAmB,oBAAoB;AAChD,cAAc,UAAU,6BAA6B;AACrD,cAAc,cAAc,qBAAqB;AACjD,cAAc,UAAU,4BAA4B;AACpD,cAAc,UAAU,qBAAqB;AAC7C,cAAc,aAAa,6BAA6B;AAExD,iBAAiB;EACf;;;GAGC,GACD,MAAM,MAAM,GAAG,IAAI;EACnB;;GAEC,GACD,cAAc,MAAM;EACpB;;;GAGC,GACD,SAAS,MAAM;EACf,OAAO;EAEP;;;;;;;;;;;GAWC,GACD,WAAW,aAAa,MAAM;EAE9B;IACE;;;;;;KAMC,GACD,OAAO;IAEP;;KAEC,GACD,iBAAiB;IAEjB;;;;KAIC,GACD;MACE;QACE,QAAQ;UAAQ,OAAO,MAAM;;QAC7B,eAAe,MAAM;QACrB,gBAAgB,MAAM;QACtB,uBAAuB,MAAM;;;IAIjC;;;;KAIC,GACD;MACE,SAAS,MAAM;MACf,OAAO,MAAM;MACb,MAAM,OAAO,MAAM,EAAE,MAAM;MAC3B;QACE,MAAM,MAAM;QACZ,aAAa;UACX,MAAM,MAAM;UACZ,SAAS,MAAM;UACf,OAAO,MAAM;UACb,MAAM,OAAO,MAAM,EAAE,MAAM;;;MAG/B,iBAAiB,OAAO;;IAG1B;;;;KAIC,GACD,WAAW,MAAM;IAEjB;;;;KAIC,GACD,YAAY,MAAM;IAElB;;;;KAIC,GACD,iBAAiB,OAAO;IAExB;;;;;KAKC,GACD;;;KAGC,GACD,OAAO,MAAM;;;AAIjB;;;;;;;;;;;;;CAaC,GACD,YAAY,eAAe,oBAAoB,MAAM;AAIrD,iBAAiB;GACd,KAAK,MAAM,GAAG;;AAGjB;;;CAGC,GACD,YAAY,cACV,UAAU,MAAM,KACb,QAAQ;AAEb,OAAO,iBAAS,iBACd,OAAO,mBAAmB,GACzB;AAIH;;CAEC,GACD,iBAAiB;EACf;;;;;;;;;GASC,GACD,WAAW,aAAa,MAAM;EAE9B;;;GAGC,GACD,SAAS,QAAQ,wBAAwB,IAAI,GAAG,QAAQ,IAAI;;AAG9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsEC,GACD,OAAO,iBAAe,KACpB,YAAY,6BAA6B,oBAAoB,EAC7D,cAAc,cAAc,EAC5B,iBACI,gBACE,QAAQ,wBAAwB,IAAI,GAAG,QAAQ,IAAI,EAAE,GAC1D,QAAQ,oBAAoB"}
|