@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 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
- try {
19728
- await plugin.registerAgentTool(context2);
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 resolvedConfigs = composeConf ? await Promise.all(composeConf.map(resolveComposeInput)) : [];
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
- try {
19713
- await plugin.registerAgentTool(context2);
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 resolvedConfigs = composeConf ? await Promise.all(composeConf.map(resolveComposeInput)) : [];
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcpc-tech/core",
3
- "version": "0.3.31",
3
+ "version": "0.3.33",
4
4
  "homepage": "https://jsr.io/@mcpc/core",
5
5
  "dependencies": {
6
6
  "@ai-sdk/provider": "^2.0.0",
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, isMarkdownFile, type MarkdownAgentLoader, mcpc, type McpcOptions, parseMcpcConfigs, setMarkdownAgentLoader } from "./src/set-up-mcp-compose.js";
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
@@ -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,cAAc,EACd,KAAK,mBAAmB,EACxB,IAAI,EACJ,KAAK,WAAW,EAChB,gBAAgB,EAChB,sBAAsB,sCACa;AAGrC,SACE,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,KAAK,MAAM,gCACkB;AAG/B,SACE,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,UAAU,kCACgB"}
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"}
@@ -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;AACjE,cAAc,UAAU,EAAE,YAAY,qBAAqB;AAM3D,cAA4B,UAAU,EAAE,UAAU,4BAA4B;AAe9E,OAAO,cAAM,4BAA4B;EACvC,QAAQ,mBAA6B;EACrC,QAAQ,iBAAyB;EACjC,QAAQ,YAAsC;EAG9C,IAAI,mBAAmB,IAAI,MAAM,EAAE,MAAM;EAIzC,YAAY,aAAa,cAAc,EAAE,SAAS,aAAa;EAiB/D;;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"}
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
- * Markdown agent file loader function type.
121
- * This is registered by markdownLoaderPlugin() to avoid circular dependencies.
122
- */ export type MarkdownAgentLoader = (filePath: string) => Promise<ComposeDefinition>;
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,uBACV,UAAU,MAAM,KACb,QAAQ;AAKb;;CAEC,GACD,OAAO,iBAAS,uBAAuB,QAAQ,mBAAmB,GAAG,IAAI;AAIzE;;CAEC,GACD,OAAO,iBAAS,eAAe,MAAM,MAAM,GAAG,OAAO;AAgCrD,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"}
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"}