@mcpc-tech/core 0.3.32 → 0.3.34

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);
@@ -18035,7 +18033,8 @@ var ajv = new import_ajv2.Ajv({
18035
18033
  import_ajv_formats2.default.default(ajv);
18036
18034
  import_ajv_errors.default.default(ajv);
18037
18035
  function validateSchema(data, schema) {
18038
- const validate = ajv.compile(schema);
18036
+ const cleanedSchema = cleanToolSchema(schema);
18037
+ const validate = ajv.compile(cleanedSchema);
18039
18038
  if (!validate(data)) {
18040
18039
  const errors = validate.errors;
18041
18040
  const customErrors = errors.filter((err) => err.keyword === "errorMessage");
@@ -20190,6 +20189,7 @@ var ComposableMCPServer = class extends Server {
20190
20189
  pluginManager;
20191
20190
  toolManager;
20192
20191
  logger = createLogger("mcpc.compose");
20192
+ fileLoaders = /* @__PURE__ */ new Map();
20193
20193
  // Legacy property for backward compatibility
20194
20194
  get toolNameMapping() {
20195
20195
  return this.toolManager.getToolNameMapping();
@@ -20208,6 +20208,58 @@ var ComposableMCPServer = class extends Server {
20208
20208
  this.pluginManager = new PluginManager(this);
20209
20209
  this.toolManager = new ToolManager();
20210
20210
  }
20211
+ /**
20212
+ * Register a file loader for a specific extension.
20213
+ * Plugins can use this to add support for different file formats.
20214
+ *
20215
+ * @param extension - File extension including the dot (e.g., ".md", ".yaml")
20216
+ * @param loader - Function that loads a file and returns a ComposeDefinition
20217
+ *
20218
+ * @example
20219
+ * ```typescript
20220
+ * // In a plugin's configureServer hook:
20221
+ * configureServer: (server) => {
20222
+ * server.registerFileLoader(".md", loadMarkdownAgentFile);
20223
+ * server.registerFileLoader(".yaml", loadYamlAgentFile);
20224
+ * }
20225
+ * ```
20226
+ */
20227
+ registerFileLoader(extension, loader) {
20228
+ this.fileLoaders.set(extension.toLowerCase(), loader);
20229
+ }
20230
+ /**
20231
+ * Get the file loader for a specific extension.
20232
+ */
20233
+ getFileLoader(extension) {
20234
+ return this.fileLoaders.get(extension.toLowerCase());
20235
+ }
20236
+ /**
20237
+ * Check if a file extension has a registered loader.
20238
+ */
20239
+ hasFileLoader(extension) {
20240
+ return this.fileLoaders.has(extension.toLowerCase());
20241
+ }
20242
+ /**
20243
+ * Get all registered file extensions.
20244
+ */
20245
+ getRegisteredExtensions() {
20246
+ return Array.from(this.fileLoaders.keys());
20247
+ }
20248
+ /**
20249
+ * Resolve a file path to a ComposeDefinition using registered loaders.
20250
+ * @internal
20251
+ */
20252
+ async resolveFilePath(filePath) {
20253
+ const lastDot = filePath.lastIndexOf(".");
20254
+ const extension = lastDot === -1 ? "" : filePath.slice(lastDot).toLowerCase();
20255
+ const loader = this.fileLoaders.get(extension);
20256
+ if (!loader) {
20257
+ const supportedExtensions = this.getRegisteredExtensions().join(", ");
20258
+ const hint = supportedExtensions ? ` Supported extensions: ${supportedExtensions}.` : ' No file loaders registered. Use a loader plugin (e.g., markdownLoaderPlugin from "@mcpc/plugin-markdown-loader").';
20259
+ throw new Error(`Cannot load file "${filePath}": No loader registered for "${extension}" extension.${hint}`);
20260
+ }
20261
+ return await loader(filePath);
20262
+ }
20211
20263
  /**
20212
20264
  * Initialize built-in plugins - called during setup
20213
20265
  */
@@ -20779,25 +20831,6 @@ function convertToAISDKTools(server, helpers) {
20779
20831
  }
20780
20832
 
20781
20833
  // __mcpc__core_latest/node_modules/@mcpc/core/src/set-up-mcp-compose.js
20782
- var markdownAgentLoader = null;
20783
- function setMarkdownAgentLoader(loader) {
20784
- markdownAgentLoader = loader;
20785
- }
20786
- function isMarkdownFile(path) {
20787
- return path.endsWith(".md") || path.endsWith(".markdown");
20788
- }
20789
- async function resolveComposeInput(input) {
20790
- if (typeof input !== "string") {
20791
- return input;
20792
- }
20793
- if (!isMarkdownFile(input)) {
20794
- throw new Error(`Invalid compose input: "${input}". Expected a Markdown file path (.md) or a ComposeDefinition object.`);
20795
- }
20796
- if (!markdownAgentLoader) {
20797
- 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.`);
20798
- }
20799
- return await markdownAgentLoader(input);
20800
- }
20801
20834
  function parseMcpcConfigs(conf) {
20802
20835
  return conf ?? [];
20803
20836
  }
@@ -20815,7 +20848,13 @@ async function mcpc(serverConf, composeConf, optionsOrSetup) {
20815
20848
  }
20816
20849
  }
20817
20850
  }
20818
- const resolvedConfigs = composeConf ? await Promise.all(composeConf.map(resolveComposeInput)) : [];
20851
+ const resolveInput = (input) => {
20852
+ if (typeof input !== "string") {
20853
+ return Promise.resolve(input);
20854
+ }
20855
+ return server.resolveFilePath(input);
20856
+ };
20857
+ const resolvedConfigs = composeConf ? await Promise.all(composeConf.map(resolveInput)) : [];
20819
20858
  const parsed = parseMcpcConfigs(resolvedConfigs);
20820
20859
  await server.initBuiltInPlugins();
20821
20860
  for (const mcpcConfig of parsed) {
@@ -20843,7 +20882,6 @@ async function mcpc(serverConf, composeConf, optionsOrSetup) {
20843
20882
  composeMcpDepTools,
20844
20883
  convertToAISDKTools,
20845
20884
  extractJsonSchema,
20846
- isMarkdownFile,
20847
20885
  isProdEnv,
20848
20886
  isSCF,
20849
20887
  isWrappedSchema,
@@ -20852,6 +20890,5 @@ async function mcpc(serverConf, composeConf, optionsOrSetup) {
20852
20890
  optionalObject,
20853
20891
  parseJSON,
20854
20892
  parseMcpcConfigs,
20855
- setMarkdownAgentLoader,
20856
20893
  truncateJSON
20857
20894
  });
package/index.mjs CHANGED
@@ -18021,7 +18021,8 @@ var ajv = new Ajv2({
18021
18021
  addFormats.default(ajv);
18022
18022
  ajvErrors.default(ajv);
18023
18023
  function validateSchema(data, schema) {
18024
- const validate = ajv.compile(schema);
18024
+ const cleanedSchema = cleanToolSchema(schema);
18025
+ const validate = ajv.compile(cleanedSchema);
18025
18026
  if (!validate(data)) {
18026
18027
  const errors = validate.errors;
18027
18028
  const customErrors = errors.filter((err) => err.keyword === "errorMessage");
@@ -20175,6 +20176,7 @@ var ComposableMCPServer = class extends Server {
20175
20176
  pluginManager;
20176
20177
  toolManager;
20177
20178
  logger = createLogger("mcpc.compose");
20179
+ fileLoaders = /* @__PURE__ */ new Map();
20178
20180
  // Legacy property for backward compatibility
20179
20181
  get toolNameMapping() {
20180
20182
  return this.toolManager.getToolNameMapping();
@@ -20193,6 +20195,58 @@ var ComposableMCPServer = class extends Server {
20193
20195
  this.pluginManager = new PluginManager(this);
20194
20196
  this.toolManager = new ToolManager();
20195
20197
  }
20198
+ /**
20199
+ * Register a file loader for a specific extension.
20200
+ * Plugins can use this to add support for different file formats.
20201
+ *
20202
+ * @param extension - File extension including the dot (e.g., ".md", ".yaml")
20203
+ * @param loader - Function that loads a file and returns a ComposeDefinition
20204
+ *
20205
+ * @example
20206
+ * ```typescript
20207
+ * // In a plugin's configureServer hook:
20208
+ * configureServer: (server) => {
20209
+ * server.registerFileLoader(".md", loadMarkdownAgentFile);
20210
+ * server.registerFileLoader(".yaml", loadYamlAgentFile);
20211
+ * }
20212
+ * ```
20213
+ */
20214
+ registerFileLoader(extension, loader) {
20215
+ this.fileLoaders.set(extension.toLowerCase(), loader);
20216
+ }
20217
+ /**
20218
+ * Get the file loader for a specific extension.
20219
+ */
20220
+ getFileLoader(extension) {
20221
+ return this.fileLoaders.get(extension.toLowerCase());
20222
+ }
20223
+ /**
20224
+ * Check if a file extension has a registered loader.
20225
+ */
20226
+ hasFileLoader(extension) {
20227
+ return this.fileLoaders.has(extension.toLowerCase());
20228
+ }
20229
+ /**
20230
+ * Get all registered file extensions.
20231
+ */
20232
+ getRegisteredExtensions() {
20233
+ return Array.from(this.fileLoaders.keys());
20234
+ }
20235
+ /**
20236
+ * Resolve a file path to a ComposeDefinition using registered loaders.
20237
+ * @internal
20238
+ */
20239
+ async resolveFilePath(filePath) {
20240
+ const lastDot = filePath.lastIndexOf(".");
20241
+ const extension = lastDot === -1 ? "" : filePath.slice(lastDot).toLowerCase();
20242
+ const loader = this.fileLoaders.get(extension);
20243
+ if (!loader) {
20244
+ const supportedExtensions = this.getRegisteredExtensions().join(", ");
20245
+ const hint = supportedExtensions ? ` Supported extensions: ${supportedExtensions}.` : ' No file loaders registered. Use a loader plugin (e.g., markdownLoaderPlugin from "@mcpc/plugin-markdown-loader").';
20246
+ throw new Error(`Cannot load file "${filePath}": No loader registered for "${extension}" extension.${hint}`);
20247
+ }
20248
+ return await loader(filePath);
20249
+ }
20196
20250
  /**
20197
20251
  * Initialize built-in plugins - called during setup
20198
20252
  */
@@ -20764,25 +20818,6 @@ function convertToAISDKTools(server, helpers) {
20764
20818
  }
20765
20819
 
20766
20820
  // __mcpc__core_latest/node_modules/@mcpc/core/src/set-up-mcp-compose.js
20767
- var markdownAgentLoader = null;
20768
- function setMarkdownAgentLoader(loader) {
20769
- markdownAgentLoader = loader;
20770
- }
20771
- function isMarkdownFile(path) {
20772
- return path.endsWith(".md") || path.endsWith(".markdown");
20773
- }
20774
- async function resolveComposeInput(input) {
20775
- if (typeof input !== "string") {
20776
- return input;
20777
- }
20778
- if (!isMarkdownFile(input)) {
20779
- throw new Error(`Invalid compose input: "${input}". Expected a Markdown file path (.md) or a ComposeDefinition object.`);
20780
- }
20781
- if (!markdownAgentLoader) {
20782
- 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.`);
20783
- }
20784
- return await markdownAgentLoader(input);
20785
- }
20786
20821
  function parseMcpcConfigs(conf) {
20787
20822
  return conf ?? [];
20788
20823
  }
@@ -20800,7 +20835,13 @@ async function mcpc(serverConf, composeConf, optionsOrSetup) {
20800
20835
  }
20801
20836
  }
20802
20837
  }
20803
- const resolvedConfigs = composeConf ? await Promise.all(composeConf.map(resolveComposeInput)) : [];
20838
+ const resolveInput = (input) => {
20839
+ if (typeof input !== "string") {
20840
+ return Promise.resolve(input);
20841
+ }
20842
+ return server.resolveFilePath(input);
20843
+ };
20844
+ const resolvedConfigs = composeConf ? await Promise.all(composeConf.map(resolveInput)) : [];
20804
20845
  const parsed = parseMcpcConfigs(resolvedConfigs);
20805
20846
  await server.initBuiltInPlugins();
20806
20847
  for (const mcpcConfig of parsed) {
@@ -20827,7 +20868,6 @@ export {
20827
20868
  composeMcpDepTools,
20828
20869
  convertToAISDKTools,
20829
20870
  extractJsonSchema,
20830
- isMarkdownFile,
20831
20871
  isProdEnv,
20832
20872
  isSCF,
20833
20873
  isWrappedSchema,
@@ -20836,6 +20876,5 @@ export {
20836
20876
  optionalObject,
20837
20877
  parseJSON,
20838
20878
  parseMcpcConfigs,
20839
- setMarkdownAgentLoader,
20840
20879
  truncateJSON
20841
20880
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcpc-tech/core",
3
- "version": "0.3.32",
3
+ "version": "0.3.34",
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"}