@frontmcp/plugin-codecall 1.0.0-beta.1 → 1.0.0-beta.10

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.
@@ -26,6 +26,9 @@ export default class CodeCallPlugin extends DynamicPlugin<CodeCallPluginOptions,
26
26
  /**
27
27
  * Determine if a tool should be visible in list_tools based on mode.
28
28
  *
29
+ * When `appIds` is configured, `codecall_only` mode only hides tools from
30
+ * those specific apps — tools from other apps remain visible.
31
+ *
29
32
  * @param tool - The tool entry to check
30
33
  * @param mode - The current CodeCall mode
31
34
  * @returns true if tool should be visible
@@ -1 +1 @@
1
- {"version":3,"file":"codecall.plugin.d.ts","sourceRoot":"","sources":["../src/codecall.plugin.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,SAAS,EAIT,YAAY,EAGb,MAAM,eAAe,CAAC;AAEvB,OAAO,EAEL,qBAAqB,EACrB,0BAA0B,EAG3B,MAAM,kBAAkB,CAAC;AAgB1B,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,aAAa,CAAC,qBAAqB,EAAE,0BAA0B,CAAC;IAC1G,OAAO,EAAE,qBAAqB,CAAC;IAC/B,OAAO,CAAC,YAAY,CAAC,CAAiB;IAEtC,OAAO,CAAC,SAAS;gBAOL,OAAO,GAAE,0BAA+B;IAMpD;;;OAGG;WACa,gBAAgB,CAAC,OAAO,EAAE,0BAA0B,GAAG,YAAY,EAAE;IAuCrF;;;;;;;;;;;OAWG;IAEG,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,kBAAkB,CAAC;IAsB5D;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAkC7B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAG5B"}
1
+ {"version":3,"file":"codecall.plugin.d.ts","sourceRoot":"","sources":["../src/codecall.plugin.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,SAAS,EAIT,YAAY,EAGb,MAAM,eAAe,CAAC;AAEvB,OAAO,EAEL,qBAAqB,EACrB,0BAA0B,EAG3B,MAAM,kBAAkB,CAAC;AAgB1B,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,aAAa,CAAC,qBAAqB,EAAE,0BAA0B,CAAC;IAC1G,OAAO,EAAE,qBAAqB,CAAC;IAC/B,OAAO,CAAC,YAAY,CAAC,CAAiB;IAEtC,OAAO,CAAC,SAAS;gBAOL,OAAO,GAAE,0BAA+B;IAMpD;;;OAGG;WACa,gBAAgB,CAAC,OAAO,EAAE,0BAA0B,GAAG,YAAY,EAAE;IAuCrF;;;;;;;;;;;OAWG;IAEG,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,kBAAkB,CAAC;IAsB5D;;;;;;;;;OASG;IAEH,OAAO,CAAC,qBAAqB;IA4C7B;;;OAGG;IAEH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IAEH,OAAO,CAAC,mBAAmB;CAG5B"}
@@ -119,6 +119,7 @@ declare const codeCallPluginOptionsObjectSchema: z.ZodObject<{
119
119
  codecall_opt_in: "codecall_opt_in";
120
120
  metadata_driven: "metadata_driven";
121
121
  }>>;
122
+ appIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
122
123
  topK: z.ZodDefault<z.ZodNumber>;
123
124
  maxDefinitions: z.ZodDefault<z.ZodNumber>;
124
125
  includeTools: z.ZodOptional<z.ZodCustom<IncludeToolsFilterFn, IncludeToolsFilterFn>>;
@@ -195,6 +196,7 @@ export declare const codeCallPluginOptionsSchema: z.ZodPrefault<z.ZodObject<{
195
196
  codecall_opt_in: "codecall_opt_in";
196
197
  metadata_driven: "metadata_driven";
197
198
  }>>;
199
+ appIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
198
200
  topK: z.ZodDefault<z.ZodNumber>;
199
201
  maxDefinitions: z.ZodDefault<z.ZodNumber>;
200
202
  includeTools: z.ZodOptional<z.ZodCustom<IncludeToolsFilterFn, IncludeToolsFilterFn>>;
@@ -1 +1 @@
1
- {"version":3,"file":"codecall.types.d.ts","sourceRoot":"","sources":["../src/codecall.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codecall.types.d.ts","sourceRoot":"","sources":["../src/codecall.types.ts"],"names":[],"mappings":"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"}
package/esm/index.mjs CHANGED
@@ -220,6 +220,13 @@ var codeCallPluginOptionsObjectSchema = z.object({
220
220
  * @default 'codecall_only'
221
221
  */
222
222
  mode: codeCallModeSchema,
223
+ /**
224
+ * App IDs that CodeCall manages. When set, `codecall_only` mode only hides tools
225
+ * from these apps — tools from other apps remain visible in list_tools.
226
+ * When unset (default), all tools in the server are affected.
227
+ * @example ['ecommerce'] — only hide ecommerce app tools, keep calc tools visible
228
+ */
229
+ appIds: z.array(z.string()).optional(),
223
230
  /**
224
231
  * Default number of tools to return in search results
225
232
  * @default 8
@@ -2599,18 +2606,30 @@ var CodeCallPlugin = class extends DynamicPlugin {
2599
2606
  /**
2600
2607
  * Determine if a tool should be visible in list_tools based on mode.
2601
2608
  *
2609
+ * When `appIds` is configured, `codecall_only` mode only hides tools from
2610
+ * those specific apps — tools from other apps remain visible.
2611
+ *
2602
2612
  * @param tool - The tool entry to check
2603
2613
  * @param mode - The current CodeCall mode
2604
2614
  * @returns true if tool should be visible
2605
2615
  */
2616
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- ToolEntry generics vary across call sites
2606
2617
  shouldShowInListTools(tool, mode) {
2607
2618
  if (this.isCodeCallTool(tool)) {
2608
2619
  return true;
2609
2620
  }
2610
2621
  const codecallMeta = this.getCodeCallMetadata(tool);
2611
2622
  switch (mode) {
2612
- case "codecall_only":
2623
+ case "codecall_only": {
2624
+ const managedAppIds = this.options.appIds;
2625
+ if (managedAppIds && managedAppIds.length > 0) {
2626
+ const toolOwnerAppId = tool.owner?.kind === "app" ? tool.owner.id : void 0;
2627
+ if (!toolOwnerAppId || !managedAppIds.includes(toolOwnerAppId)) {
2628
+ return true;
2629
+ }
2630
+ }
2613
2631
  return codecallMeta?.visibleInListTools === true;
2632
+ }
2614
2633
  case "codecall_opt_in":
2615
2634
  return true;
2616
2635
  case "metadata_driven":
@@ -2626,6 +2645,7 @@ var CodeCallPlugin = class extends DynamicPlugin {
2626
2645
  * Check if a tool is a CodeCall meta-tool.
2627
2646
  * CodeCall meta-tools always remain visible.
2628
2647
  */
2648
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2629
2649
  isCodeCallTool(tool) {
2630
2650
  const name = tool.name || tool.fullName;
2631
2651
  return name.startsWith("codecall:");
@@ -2633,8 +2653,9 @@ var CodeCallPlugin = class extends DynamicPlugin {
2633
2653
  /**
2634
2654
  * Extract CodeCall-specific metadata from a tool.
2635
2655
  */
2656
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2636
2657
  getCodeCallMetadata(tool) {
2637
- return tool.metadata?.codecall;
2658
+ return tool.metadata?.["codecall"];
2638
2659
  }
2639
2660
  };
2640
2661
  __decorateClass([
package/esm/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frontmcp/plugin-codecall",
3
- "version": "1.0.0-beta.1",
3
+ "version": "1.0.0-beta.10",
4
4
  "description": "CodeCall plugin for FrontMCP - AgentScript-based meta-tools for orchestrating MCP tools",
5
5
  "author": "AgentFront <info@agentfront.dev>",
6
6
  "license": "Apache-2.0",
@@ -47,12 +47,12 @@
47
47
  "dependencies": {
48
48
  "@enclave-vm/core": "^2.11.1",
49
49
  "vectoriadb": "^2.1.3",
50
- "@frontmcp/protocol": "1.0.0-beta.1",
51
- "@frontmcp/sdk": "1.0.0-beta.1",
50
+ "@frontmcp/protocol": "1.0.0-beta.10",
51
+ "@frontmcp/sdk": "1.0.0-beta.10",
52
52
  "zod": "^4.0.0"
53
53
  },
54
54
  "peerDependencies": {
55
- "@frontmcp/plugin-cache": "1.0.0-beta.1"
55
+ "@frontmcp/plugin-cache": "1.0.0-beta.10"
56
56
  },
57
57
  "devDependencies": {
58
58
  "reflect-metadata": "^0.2.2"
package/index.js CHANGED
@@ -257,6 +257,13 @@ var codeCallPluginOptionsObjectSchema = import_zod.z.object({
257
257
  * @default 'codecall_only'
258
258
  */
259
259
  mode: codeCallModeSchema,
260
+ /**
261
+ * App IDs that CodeCall manages. When set, `codecall_only` mode only hides tools
262
+ * from these apps — tools from other apps remain visible in list_tools.
263
+ * When unset (default), all tools in the server are affected.
264
+ * @example ['ecommerce'] — only hide ecommerce app tools, keep calc tools visible
265
+ */
266
+ appIds: import_zod.z.array(import_zod.z.string()).optional(),
260
267
  /**
261
268
  * Default number of tools to return in search results
262
269
  * @default 8
@@ -2636,18 +2643,30 @@ var CodeCallPlugin = class extends import_sdk7.DynamicPlugin {
2636
2643
  /**
2637
2644
  * Determine if a tool should be visible in list_tools based on mode.
2638
2645
  *
2646
+ * When `appIds` is configured, `codecall_only` mode only hides tools from
2647
+ * those specific apps — tools from other apps remain visible.
2648
+ *
2639
2649
  * @param tool - The tool entry to check
2640
2650
  * @param mode - The current CodeCall mode
2641
2651
  * @returns true if tool should be visible
2642
2652
  */
2653
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- ToolEntry generics vary across call sites
2643
2654
  shouldShowInListTools(tool, mode) {
2644
2655
  if (this.isCodeCallTool(tool)) {
2645
2656
  return true;
2646
2657
  }
2647
2658
  const codecallMeta = this.getCodeCallMetadata(tool);
2648
2659
  switch (mode) {
2649
- case "codecall_only":
2660
+ case "codecall_only": {
2661
+ const managedAppIds = this.options.appIds;
2662
+ if (managedAppIds && managedAppIds.length > 0) {
2663
+ const toolOwnerAppId = tool.owner?.kind === "app" ? tool.owner.id : void 0;
2664
+ if (!toolOwnerAppId || !managedAppIds.includes(toolOwnerAppId)) {
2665
+ return true;
2666
+ }
2667
+ }
2650
2668
  return codecallMeta?.visibleInListTools === true;
2669
+ }
2651
2670
  case "codecall_opt_in":
2652
2671
  return true;
2653
2672
  case "metadata_driven":
@@ -2663,6 +2682,7 @@ var CodeCallPlugin = class extends import_sdk7.DynamicPlugin {
2663
2682
  * Check if a tool is a CodeCall meta-tool.
2664
2683
  * CodeCall meta-tools always remain visible.
2665
2684
  */
2685
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2666
2686
  isCodeCallTool(tool) {
2667
2687
  const name = tool.name || tool.fullName;
2668
2688
  return name.startsWith("codecall:");
@@ -2670,8 +2690,9 @@ var CodeCallPlugin = class extends import_sdk7.DynamicPlugin {
2670
2690
  /**
2671
2691
  * Extract CodeCall-specific metadata from a tool.
2672
2692
  */
2693
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2673
2694
  getCodeCallMetadata(tool) {
2674
- return tool.metadata?.codecall;
2695
+ return tool.metadata?.["codecall"];
2675
2696
  }
2676
2697
  };
2677
2698
  __decorateClass([
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frontmcp/plugin-codecall",
3
- "version": "1.0.0-beta.1",
3
+ "version": "1.0.0-beta.10",
4
4
  "description": "CodeCall plugin for FrontMCP - AgentScript-based meta-tools for orchestrating MCP tools",
5
5
  "author": "AgentFront <info@agentfront.dev>",
6
6
  "license": "Apache-2.0",
@@ -47,12 +47,12 @@
47
47
  "dependencies": {
48
48
  "@enclave-vm/core": "^2.11.1",
49
49
  "vectoriadb": "^2.1.3",
50
- "@frontmcp/protocol": "1.0.0-beta.1",
51
- "@frontmcp/sdk": "1.0.0-beta.1",
50
+ "@frontmcp/protocol": "1.0.0-beta.10",
51
+ "@frontmcp/sdk": "1.0.0-beta.10",
52
52
  "zod": "^4.0.0"
53
53
  },
54
54
  "peerDependencies": {
55
- "@frontmcp/plugin-cache": "1.0.0-beta.1"
55
+ "@frontmcp/plugin-cache": "1.0.0-beta.10"
56
56
  },
57
57
  "devDependencies": {
58
58
  "reflect-metadata": "^0.2.2"