@vinkius-core/mcp-fusion 0.1.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 (211) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +391 -0
  3. package/dist/src/AbstractBase.d.ts +24 -0
  4. package/dist/src/AbstractBase.d.ts.map +1 -0
  5. package/dist/src/AbstractBase.js +63 -0
  6. package/dist/src/AbstractBase.js.map +1 -0
  7. package/dist/src/AbstractLeaf.d.ts +12 -0
  8. package/dist/src/AbstractLeaf.d.ts.map +1 -0
  9. package/dist/src/AbstractLeaf.js +32 -0
  10. package/dist/src/AbstractLeaf.js.map +1 -0
  11. package/dist/src/Annotations.d.ts +15 -0
  12. package/dist/src/Annotations.d.ts.map +1 -0
  13. package/dist/src/Annotations.js +29 -0
  14. package/dist/src/Annotations.js.map +1 -0
  15. package/dist/src/Group.d.ts +32 -0
  16. package/dist/src/Group.d.ts.map +1 -0
  17. package/dist/src/Group.js +131 -0
  18. package/dist/src/Group.js.map +1 -0
  19. package/dist/src/Icon.d.ts +19 -0
  20. package/dist/src/Icon.d.ts.map +1 -0
  21. package/dist/src/Icon.js +33 -0
  22. package/dist/src/Icon.js.map +1 -0
  23. package/dist/src/Prompt.d.ts +11 -0
  24. package/dist/src/Prompt.d.ts.map +1 -0
  25. package/dist/src/Prompt.js +28 -0
  26. package/dist/src/Prompt.js.map +1 -0
  27. package/dist/src/PromptArgument.d.ts +10 -0
  28. package/dist/src/PromptArgument.d.ts.map +1 -0
  29. package/dist/src/PromptArgument.js +20 -0
  30. package/dist/src/PromptArgument.js.map +1 -0
  31. package/dist/src/Resource.d.ts +19 -0
  32. package/dist/src/Resource.d.ts.map +1 -0
  33. package/dist/src/Resource.js +34 -0
  34. package/dist/src/Resource.js.map +1 -0
  35. package/dist/src/Role.d.ts +5 -0
  36. package/dist/src/Role.d.ts.map +1 -0
  37. package/dist/src/Role.js +6 -0
  38. package/dist/src/Role.js.map +1 -0
  39. package/dist/src/Tool.d.ts +16 -0
  40. package/dist/src/Tool.d.ts.map +1 -0
  41. package/dist/src/Tool.js +28 -0
  42. package/dist/src/Tool.js.map +1 -0
  43. package/dist/src/ToolAnnotations.d.ts +23 -0
  44. package/dist/src/ToolAnnotations.d.ts.map +1 -0
  45. package/dist/src/ToolAnnotations.js +44 -0
  46. package/dist/src/ToolAnnotations.js.map +1 -0
  47. package/dist/src/converters/GroupConverter.d.ts +14 -0
  48. package/dist/src/converters/GroupConverter.d.ts.map +1 -0
  49. package/dist/src/converters/GroupConverter.js +13 -0
  50. package/dist/src/converters/GroupConverter.js.map +1 -0
  51. package/dist/src/converters/PromptConverter.d.ts +14 -0
  52. package/dist/src/converters/PromptConverter.d.ts.map +1 -0
  53. package/dist/src/converters/PromptConverter.js +13 -0
  54. package/dist/src/converters/PromptConverter.js.map +1 -0
  55. package/dist/src/converters/ResourceConverter.d.ts +14 -0
  56. package/dist/src/converters/ResourceConverter.d.ts.map +1 -0
  57. package/dist/src/converters/ResourceConverter.js +13 -0
  58. package/dist/src/converters/ResourceConverter.js.map +1 -0
  59. package/dist/src/converters/ToolAnnotationsConverter.d.ts +16 -0
  60. package/dist/src/converters/ToolAnnotationsConverter.d.ts.map +1 -0
  61. package/dist/src/converters/ToolAnnotationsConverter.js +23 -0
  62. package/dist/src/converters/ToolAnnotationsConverter.js.map +1 -0
  63. package/dist/src/converters/ToolConverter.d.ts +14 -0
  64. package/dist/src/converters/ToolConverter.d.ts.map +1 -0
  65. package/dist/src/converters/ToolConverter.js +13 -0
  66. package/dist/src/converters/ToolConverter.js.map +1 -0
  67. package/dist/src/converters/index.d.ts +6 -0
  68. package/dist/src/converters/index.d.ts.map +1 -0
  69. package/dist/src/converters/index.js +6 -0
  70. package/dist/src/converters/index.js.map +1 -0
  71. package/dist/src/framework/GroupedToolBuilder.d.ts +137 -0
  72. package/dist/src/framework/GroupedToolBuilder.d.ts.map +1 -0
  73. package/dist/src/framework/GroupedToolBuilder.js +289 -0
  74. package/dist/src/framework/GroupedToolBuilder.js.map +1 -0
  75. package/dist/src/framework/ResponseHelper.d.ts +43 -0
  76. package/dist/src/framework/ResponseHelper.d.ts.map +1 -0
  77. package/dist/src/framework/ResponseHelper.js +49 -0
  78. package/dist/src/framework/ResponseHelper.js.map +1 -0
  79. package/dist/src/framework/ToolBuilder.d.ts +46 -0
  80. package/dist/src/framework/ToolBuilder.d.ts.map +1 -0
  81. package/dist/src/framework/ToolBuilder.js +2 -0
  82. package/dist/src/framework/ToolBuilder.js.map +1 -0
  83. package/dist/src/framework/ToolRegistry.d.ts +85 -0
  84. package/dist/src/framework/ToolRegistry.d.ts.map +1 -0
  85. package/dist/src/framework/ToolRegistry.js +153 -0
  86. package/dist/src/framework/ToolRegistry.js.map +1 -0
  87. package/dist/src/framework/index.d.ts +9 -0
  88. package/dist/src/framework/index.d.ts.map +1 -0
  89. package/dist/src/framework/index.js +8 -0
  90. package/dist/src/framework/index.js.map +1 -0
  91. package/dist/src/framework/strategies/AnnotationAggregator.d.ts +11 -0
  92. package/dist/src/framework/strategies/AnnotationAggregator.d.ts.map +1 -0
  93. package/dist/src/framework/strategies/AnnotationAggregator.js +25 -0
  94. package/dist/src/framework/strategies/AnnotationAggregator.js.map +1 -0
  95. package/dist/src/framework/strategies/DescriptionGenerator.d.ts +12 -0
  96. package/dist/src/framework/strategies/DescriptionGenerator.d.ts.map +1 -0
  97. package/dist/src/framework/strategies/DescriptionGenerator.js +70 -0
  98. package/dist/src/framework/strategies/DescriptionGenerator.js.map +1 -0
  99. package/dist/src/framework/strategies/MiddlewareCompiler.d.ts +13 -0
  100. package/dist/src/framework/strategies/MiddlewareCompiler.d.ts.map +1 -0
  101. package/dist/src/framework/strategies/MiddlewareCompiler.js +24 -0
  102. package/dist/src/framework/strategies/MiddlewareCompiler.js.map +1 -0
  103. package/dist/src/framework/strategies/SchemaGenerator.d.ts +15 -0
  104. package/dist/src/framework/strategies/SchemaGenerator.d.ts.map +1 -0
  105. package/dist/src/framework/strategies/SchemaGenerator.js +97 -0
  106. package/dist/src/framework/strategies/SchemaGenerator.js.map +1 -0
  107. package/dist/src/framework/strategies/SchemaUtils.d.ts +7 -0
  108. package/dist/src/framework/strategies/SchemaUtils.d.ts.map +1 -0
  109. package/dist/src/framework/strategies/SchemaUtils.js +17 -0
  110. package/dist/src/framework/strategies/SchemaUtils.js.map +1 -0
  111. package/dist/src/framework/strategies/ToonDescriptionGenerator.d.ts +3 -0
  112. package/dist/src/framework/strategies/ToonDescriptionGenerator.d.ts.map +1 -0
  113. package/dist/src/framework/strategies/ToonDescriptionGenerator.js +53 -0
  114. package/dist/src/framework/strategies/ToonDescriptionGenerator.js.map +1 -0
  115. package/dist/src/framework/strategies/Types.d.ts +34 -0
  116. package/dist/src/framework/strategies/Types.d.ts.map +1 -0
  117. package/dist/src/framework/strategies/Types.js +2 -0
  118. package/dist/src/framework/strategies/Types.js.map +1 -0
  119. package/dist/src/framework/strategies/index.d.ts +12 -0
  120. package/dist/src/framework/strategies/index.d.ts.map +1 -0
  121. package/dist/src/framework/strategies/index.js +11 -0
  122. package/dist/src/framework/strategies/index.js.map +1 -0
  123. package/dist/src/index.d.ts +15 -0
  124. package/dist/src/index.d.ts.map +1 -0
  125. package/dist/src/index.js +15 -0
  126. package/dist/src/index.js.map +1 -0
  127. package/dist/tests/AbstractBase.test.d.ts +2 -0
  128. package/dist/tests/AbstractBase.test.d.ts.map +1 -0
  129. package/dist/tests/AbstractBase.test.js +130 -0
  130. package/dist/tests/AbstractBase.test.js.map +1 -0
  131. package/dist/tests/AbstractLeaf.test.d.ts +2 -0
  132. package/dist/tests/AbstractLeaf.test.d.ts.map +1 -0
  133. package/dist/tests/AbstractLeaf.test.js +65 -0
  134. package/dist/tests/AbstractLeaf.test.js.map +1 -0
  135. package/dist/tests/Annotations.test.d.ts +2 -0
  136. package/dist/tests/Annotations.test.d.ts.map +1 -0
  137. package/dist/tests/Annotations.test.js +34 -0
  138. package/dist/tests/Annotations.test.js.map +1 -0
  139. package/dist/tests/BarrelExport.test.d.ts +2 -0
  140. package/dist/tests/BarrelExport.test.d.ts.map +1 -0
  141. package/dist/tests/BarrelExport.test.js +42 -0
  142. package/dist/tests/BarrelExport.test.js.map +1 -0
  143. package/dist/tests/Converters.test.d.ts +2 -0
  144. package/dist/tests/Converters.test.d.ts.map +1 -0
  145. package/dist/tests/Converters.test.js +193 -0
  146. package/dist/tests/Converters.test.js.map +1 -0
  147. package/dist/tests/Group.test.d.ts +2 -0
  148. package/dist/tests/Group.test.d.ts.map +1 -0
  149. package/dist/tests/Group.test.js +257 -0
  150. package/dist/tests/Group.test.js.map +1 -0
  151. package/dist/tests/Icon.test.d.ts +2 -0
  152. package/dist/tests/Icon.test.d.ts.map +1 -0
  153. package/dist/tests/Icon.test.js +44 -0
  154. package/dist/tests/Icon.test.js.map +1 -0
  155. package/dist/tests/Prompt.test.d.ts +2 -0
  156. package/dist/tests/Prompt.test.d.ts.map +1 -0
  157. package/dist/tests/Prompt.test.js +63 -0
  158. package/dist/tests/Prompt.test.js.map +1 -0
  159. package/dist/tests/PromptArgument.test.d.ts +2 -0
  160. package/dist/tests/PromptArgument.test.d.ts.map +1 -0
  161. package/dist/tests/PromptArgument.test.js +37 -0
  162. package/dist/tests/PromptArgument.test.js.map +1 -0
  163. package/dist/tests/Resource.test.d.ts +2 -0
  164. package/dist/tests/Resource.test.d.ts.map +1 -0
  165. package/dist/tests/Resource.test.js +61 -0
  166. package/dist/tests/Resource.test.js.map +1 -0
  167. package/dist/tests/Role.test.d.ts +2 -0
  168. package/dist/tests/Role.test.d.ts.map +1 -0
  169. package/dist/tests/Role.test.js +17 -0
  170. package/dist/tests/Role.test.js.map +1 -0
  171. package/dist/tests/Tool.test.d.ts +2 -0
  172. package/dist/tests/Tool.test.d.ts.map +1 -0
  173. package/dist/tests/Tool.test.js +62 -0
  174. package/dist/tests/Tool.test.js.map +1 -0
  175. package/dist/tests/ToolAnnotations.test.d.ts +2 -0
  176. package/dist/tests/ToolAnnotations.test.d.ts.map +1 -0
  177. package/dist/tests/ToolAnnotations.test.js +55 -0
  178. package/dist/tests/ToolAnnotations.test.js.map +1 -0
  179. package/dist/tests/framework/AdversarialQA.test.d.ts +2 -0
  180. package/dist/tests/framework/AdversarialQA.test.d.ts.map +1 -0
  181. package/dist/tests/framework/AdversarialQA.test.js +906 -0
  182. package/dist/tests/framework/AdversarialQA.test.js.map +1 -0
  183. package/dist/tests/framework/GroupedToolBuilder.test.d.ts +2 -0
  184. package/dist/tests/framework/GroupedToolBuilder.test.d.ts.map +1 -0
  185. package/dist/tests/framework/GroupedToolBuilder.test.js +712 -0
  186. package/dist/tests/framework/GroupedToolBuilder.test.js.map +1 -0
  187. package/dist/tests/framework/LargeScaleScenarios.test.d.ts +2 -0
  188. package/dist/tests/framework/LargeScaleScenarios.test.d.ts.map +1 -0
  189. package/dist/tests/framework/LargeScaleScenarios.test.js +1043 -0
  190. package/dist/tests/framework/LargeScaleScenarios.test.js.map +1 -0
  191. package/dist/tests/framework/McpServerAdapter.test.d.ts +2 -0
  192. package/dist/tests/framework/McpServerAdapter.test.d.ts.map +1 -0
  193. package/dist/tests/framework/McpServerAdapter.test.js +380 -0
  194. package/dist/tests/framework/McpServerAdapter.test.js.map +1 -0
  195. package/dist/tests/framework/ResponseHelper.test.d.ts +2 -0
  196. package/dist/tests/framework/ResponseHelper.test.d.ts.map +1 -0
  197. package/dist/tests/framework/ResponseHelper.test.js +202 -0
  198. package/dist/tests/framework/ResponseHelper.test.js.map +1 -0
  199. package/dist/tests/framework/SecurityDeep.test.d.ts +2 -0
  200. package/dist/tests/framework/SecurityDeep.test.d.ts.map +1 -0
  201. package/dist/tests/framework/SecurityDeep.test.js +825 -0
  202. package/dist/tests/framework/SecurityDeep.test.js.map +1 -0
  203. package/dist/tests/framework/ToolRegistry.test.d.ts +2 -0
  204. package/dist/tests/framework/ToolRegistry.test.d.ts.map +1 -0
  205. package/dist/tests/framework/ToolRegistry.test.js +152 -0
  206. package/dist/tests/framework/ToolRegistry.test.js.map +1 -0
  207. package/dist/tests/framework/ToonDescription.test.d.ts +2 -0
  208. package/dist/tests/framework/ToonDescription.test.d.ts.map +1 -0
  209. package/dist/tests/framework/ToonDescription.test.js +287 -0
  210. package/dist/tests/framework/ToonDescription.test.js.map +1 -0
  211. package/package.json +64 -0
@@ -0,0 +1,44 @@
1
+ export class ToolAnnotations {
2
+ constructor() {
3
+ }
4
+ getTitle() {
5
+ return this.title;
6
+ }
7
+ setTitle(title) {
8
+ this.title = title;
9
+ }
10
+ getReadOnlyHint() {
11
+ return this.readOnlyHint;
12
+ }
13
+ setReadOnlyHint(readOnlyHint) {
14
+ this.readOnlyHint = readOnlyHint;
15
+ }
16
+ getDestructiveHint() {
17
+ return this.destructiveHint;
18
+ }
19
+ setDestructiveHint(destructiveHint) {
20
+ this.destructiveHint = destructiveHint;
21
+ }
22
+ getIdempotentHint() {
23
+ return this.idempotentHint;
24
+ }
25
+ setIdempotentHint(idempotentHint) {
26
+ this.idempotentHint = idempotentHint;
27
+ }
28
+ getOpenWorldHint() {
29
+ return this.openWorldHint;
30
+ }
31
+ setOpenWorldHint(openWorldHint) {
32
+ this.openWorldHint = openWorldHint;
33
+ }
34
+ getReturnDirect() {
35
+ return this.returnDirect;
36
+ }
37
+ setReturnDirect(returnDirect) {
38
+ this.returnDirect = returnDirect;
39
+ }
40
+ toString() {
41
+ return `ToolAnnotation [title=${this.title}, readOnlyHint=${this.readOnlyHint}, destructiveHint=${this.destructiveHint}, idempotentHint=${this.idempotentHint}, openWorldHint=${this.openWorldHint}, returnDirect=${this.returnDirect}]`;
42
+ }
43
+ }
44
+ //# sourceMappingURL=ToolAnnotations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolAnnotations.js","sourceRoot":"","sources":["../../src/ToolAnnotations.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,eAAe;IAQxB;IACA,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAEM,QAAQ,CAAC,KAAa;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEM,eAAe;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAEM,eAAe,CAAC,YAAqB;QACxC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAEM,kBAAkB;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAEM,kBAAkB,CAAC,eAAwB;QAC9C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IAC3C,CAAC;IAEM,iBAAiB;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAEM,iBAAiB,CAAC,cAAuB;QAC5C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACzC,CAAC;IAEM,gBAAgB;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAEM,gBAAgB,CAAC,aAAsB;QAC1C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;IAEM,eAAe;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAEM,eAAe,CAAC,YAAqB;QACxC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAEM,QAAQ;QACX,OAAO,yBAAyB,IAAI,CAAC,KAAK,kBAAkB,IAAI,CAAC,YAAY,qBAAqB,IAAI,CAAC,eAAe,oBAAoB,IAAI,CAAC,cAAc,mBAAmB,IAAI,CAAC,aAAa,kBAAkB,IAAI,CAAC,YAAY,GAAG,CAAC;IAC7O,CAAC;CACJ"}
@@ -0,0 +1,14 @@
1
+ import { Group } from '../Group.js';
2
+ export interface GroupConverter<GroupType> {
3
+ convertFromGroups(groups: Group[]): GroupType[];
4
+ convertFromGroup(group: Group): GroupType;
5
+ convertToGroups(groups: GroupType[]): Group[];
6
+ convertToGroup(group: GroupType): Group;
7
+ }
8
+ export declare abstract class AbstractGroupConverter<GroupType> implements GroupConverter<GroupType> {
9
+ convertFromGroups(groups: Group[]): GroupType[];
10
+ abstract convertFromGroup(group: Group): GroupType;
11
+ convertToGroups(groups: GroupType[]): Group[];
12
+ abstract convertToGroup(group: GroupType): Group;
13
+ }
14
+ //# sourceMappingURL=GroupConverter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupConverter.d.ts","sourceRoot":"","sources":["../../../src/converters/GroupConverter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,WAAW,cAAc,CAAC,SAAS;IACrC,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,CAAC;IAChD,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IAC1C,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,CAAC;IAC9C,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,CAAC;CAC3C;AAED,8BAAsB,sBAAsB,CAAC,SAAS,CAAE,YAAW,cAAc,CAAC,SAAS,CAAC;IACjF,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE;aAMtC,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS;IAElD,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE;aAMpC,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK;CAC1D"}
@@ -0,0 +1,13 @@
1
+ export class AbstractGroupConverter {
2
+ convertFromGroups(groups) {
3
+ return groups
4
+ .map(gn => this.convertFromGroup(gn))
5
+ .filter(item => item !== null && item !== undefined);
6
+ }
7
+ convertToGroups(groups) {
8
+ return groups
9
+ .map(g => this.convertToGroup(g))
10
+ .filter(item => item !== null && item !== undefined);
11
+ }
12
+ }
13
+ //# sourceMappingURL=GroupConverter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupConverter.js","sourceRoot":"","sources":["../../../src/converters/GroupConverter.ts"],"names":[],"mappings":"AASA,MAAM,OAAgB,sBAAsB;IACjC,iBAAiB,CAAC,MAAe;QACpC,OAAO,MAAM;aACR,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;aACpC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC;IAC7D,CAAC;IAIM,eAAe,CAAC,MAAmB;QACtC,OAAO,MAAM;aACR,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;aAChC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC;IAC7D,CAAC;CAGJ"}
@@ -0,0 +1,14 @@
1
+ import { Prompt } from '../Prompt.js';
2
+ export interface PromptConverter<PromptType> {
3
+ convertFromPrompts(prompts: Prompt[]): PromptType[];
4
+ convertFromPrompt(prompt: Prompt): PromptType;
5
+ convertToPrompts(prompts: PromptType[]): Prompt[];
6
+ convertToPrompt(prompt: PromptType): Prompt;
7
+ }
8
+ export declare abstract class AbstractPromptConverter<PromptType> implements PromptConverter<PromptType> {
9
+ convertFromPrompts(prompts: Prompt[]): PromptType[];
10
+ abstract convertFromPrompt(prompt: Prompt): PromptType;
11
+ convertToPrompts(prompts: PromptType[]): Prompt[];
12
+ abstract convertToPrompt(prompt: PromptType): Prompt;
13
+ }
14
+ //# sourceMappingURL=PromptConverter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptConverter.d.ts","sourceRoot":"","sources":["../../../src/converters/PromptConverter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,WAAW,eAAe,CAAC,UAAU;IACvC,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;IACpD,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC;IAC9C,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,CAAC;IAClD,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC;CAC/C;AAED,8BAAsB,uBAAuB,CAAC,UAAU,CAAE,YAAW,eAAe,CAAC,UAAU,CAAC;IACrF,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE;aAM1C,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAEtD,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE;aAMxC,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;CAC9D"}
@@ -0,0 +1,13 @@
1
+ export class AbstractPromptConverter {
2
+ convertFromPrompts(prompts) {
3
+ return prompts
4
+ .map(pn => this.convertFromPrompt(pn))
5
+ .filter(item => item !== null && item !== undefined);
6
+ }
7
+ convertToPrompts(prompts) {
8
+ return prompts
9
+ .map(p => this.convertToPrompt(p))
10
+ .filter(item => item !== null && item !== undefined);
11
+ }
12
+ }
13
+ //# sourceMappingURL=PromptConverter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptConverter.js","sourceRoot":"","sources":["../../../src/converters/PromptConverter.ts"],"names":[],"mappings":"AASA,MAAM,OAAgB,uBAAuB;IAClC,kBAAkB,CAAC,OAAiB;QACvC,OAAO,OAAO;aACT,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;aACrC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC;IAC7D,CAAC;IAIM,gBAAgB,CAAC,OAAqB;QACzC,OAAO,OAAO;aACT,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;aACjC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC;IAC7D,CAAC;CAGJ"}
@@ -0,0 +1,14 @@
1
+ import { Resource } from '../Resource.js';
2
+ export interface ResourceConverter<ResourceType> {
3
+ convertFromResources(resources: Resource[]): ResourceType[];
4
+ convertFromResource(resource: Resource): ResourceType;
5
+ convertToResources(resources: ResourceType[]): Resource[];
6
+ convertToResource(resource: ResourceType): Resource;
7
+ }
8
+ export declare abstract class AbstractResourceConverter<ResourceType> implements ResourceConverter<ResourceType> {
9
+ convertFromResources(resources: Resource[]): ResourceType[];
10
+ abstract convertFromResource(resource: Resource): ResourceType;
11
+ convertToResources(resources: ResourceType[]): Resource[];
12
+ abstract convertToResource(resource: ResourceType): Resource;
13
+ }
14
+ //# sourceMappingURL=ResourceConverter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceConverter.d.ts","sourceRoot":"","sources":["../../../src/converters/ResourceConverter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,WAAW,iBAAiB,CAAC,YAAY;IAC3C,oBAAoB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,CAAC;IAC5D,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,CAAC;IACtD,kBAAkB,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC1D,iBAAiB,CAAC,QAAQ,EAAE,YAAY,GAAG,QAAQ,CAAC;CACvD;AAED,8BAAsB,yBAAyB,CAAC,YAAY,CAAE,YAAW,iBAAiB,CAAC,YAAY,CAAC;IAC7F,oBAAoB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE;aAMlD,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY;IAE9D,kBAAkB,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,QAAQ,EAAE;aAMhD,iBAAiB,CAAC,QAAQ,EAAE,YAAY,GAAG,QAAQ;CACtE"}
@@ -0,0 +1,13 @@
1
+ export class AbstractResourceConverter {
2
+ convertFromResources(resources) {
3
+ return resources
4
+ .map(rn => this.convertFromResource(rn))
5
+ .filter(item => item !== null && item !== undefined);
6
+ }
7
+ convertToResources(resources) {
8
+ return resources
9
+ .map(rn => this.convertToResource(rn))
10
+ .filter(item => item !== null && item !== undefined);
11
+ }
12
+ }
13
+ //# sourceMappingURL=ResourceConverter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceConverter.js","sourceRoot":"","sources":["../../../src/converters/ResourceConverter.ts"],"names":[],"mappings":"AASA,MAAM,OAAgB,yBAAyB;IACpC,oBAAoB,CAAC,SAAqB;QAC7C,OAAO,SAAS;aACX,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;aACvC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC;IAC7D,CAAC;IAIM,kBAAkB,CAAC,SAAyB;QAC/C,OAAO,SAAS;aACX,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;aACrC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC;IAC7D,CAAC;CAGJ"}
@@ -0,0 +1,16 @@
1
+ import { ToolAnnotations } from '../ToolAnnotations.js';
2
+ export interface ToolAnnotationsConverter<ToolAnnotationsType> {
3
+ convertFromToolAnnotations(toolAnnotations: ToolAnnotations[]): ToolAnnotationsType[];
4
+ convertFromToolAnnotations(tool: ToolAnnotations): ToolAnnotationsType;
5
+ convertToToolAnnotations(toolAnnotations: ToolAnnotationsType[]): ToolAnnotations[];
6
+ convertToToolAnnotations(toolAnnotations: ToolAnnotationsType): ToolAnnotations;
7
+ }
8
+ export declare abstract class AbstractToolAnnotationsConverter<ToolAnnotationsType> implements ToolAnnotationsConverter<ToolAnnotationsType> {
9
+ convertFromToolAnnotations(toolAnnotations: ToolAnnotations[]): ToolAnnotationsType[];
10
+ convertFromToolAnnotations(tool: ToolAnnotations): ToolAnnotationsType;
11
+ protected abstract convertFromToolAnnotationsSingle(tool: ToolAnnotations): ToolAnnotationsType;
12
+ convertToToolAnnotations(toolAnnotations: ToolAnnotationsType[]): ToolAnnotations[];
13
+ convertToToolAnnotations(toolAnnotations: ToolAnnotationsType): ToolAnnotations;
14
+ protected abstract convertToToolAnnotationsSingle(toolAnnotations: ToolAnnotationsType): ToolAnnotations;
15
+ }
16
+ //# sourceMappingURL=ToolAnnotationsConverter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolAnnotationsConverter.d.ts","sourceRoot":"","sources":["../../../src/converters/ToolAnnotationsConverter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,WAAW,wBAAwB,CAAC,mBAAmB;IACzD,0BAA0B,CAAC,eAAe,EAAE,eAAe,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACtF,0BAA0B,CAAC,IAAI,EAAE,eAAe,GAAG,mBAAmB,CAAC;IACvE,wBAAwB,CAAC,eAAe,EAAE,mBAAmB,EAAE,GAAG,eAAe,EAAE,CAAC;IACpF,wBAAwB,CAAC,eAAe,EAAE,mBAAmB,GAAG,eAAe,CAAC;CACnF;AAED,8BAAsB,gCAAgC,CAAC,mBAAmB,CAAE,YAAW,wBAAwB,CAAC,mBAAmB,CAAC;IACzH,0BAA0B,CAAC,eAAe,EAAE,eAAe,EAAE,GAAG,mBAAmB,EAAE;IACrF,0BAA0B,CAAC,IAAI,EAAE,eAAe,GAAG,mBAAmB;IAW7E,SAAS,CAAC,QAAQ,CAAC,gCAAgC,CAAC,IAAI,EAAE,eAAe,GAAG,mBAAmB;IAExF,wBAAwB,CAAC,eAAe,EAAE,mBAAmB,EAAE,GAAG,eAAe,EAAE;IACnF,wBAAwB,CAAC,eAAe,EAAE,mBAAmB,GAAG,eAAe;IAWtF,SAAS,CAAC,QAAQ,CAAC,8BAA8B,CAAC,eAAe,EAAE,mBAAmB,GAAG,eAAe;CAC3G"}
@@ -0,0 +1,23 @@
1
+ export class AbstractToolAnnotationsConverter {
2
+ convertFromToolAnnotations(toolAnnotationsOrArray) {
3
+ if (Array.isArray(toolAnnotationsOrArray)) {
4
+ return toolAnnotationsOrArray
5
+ .map(tn => this.convertFromToolAnnotationsSingle(tn))
6
+ .filter(item => item !== null && item !== undefined);
7
+ }
8
+ else {
9
+ return this.convertFromToolAnnotationsSingle(toolAnnotationsOrArray);
10
+ }
11
+ }
12
+ convertToToolAnnotations(toolAnnotationsOrArray) {
13
+ if (Array.isArray(toolAnnotationsOrArray)) {
14
+ return toolAnnotationsOrArray
15
+ .map(t => this.convertToToolAnnotationsSingle(t))
16
+ .filter(item => item !== null && item !== undefined);
17
+ }
18
+ else {
19
+ return this.convertToToolAnnotationsSingle(toolAnnotationsOrArray);
20
+ }
21
+ }
22
+ }
23
+ //# sourceMappingURL=ToolAnnotationsConverter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolAnnotationsConverter.js","sourceRoot":"","sources":["../../../src/converters/ToolAnnotationsConverter.ts"],"names":[],"mappings":"AASA,MAAM,OAAgB,gCAAgC;IAG3C,0BAA0B,CAAC,sBAA2D;QACzF,IAAI,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,CAAC;YACxC,OAAO,sBAAsB;iBACxB,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAC;iBACpD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAC,gCAAgC,CAAC,sBAAsB,CAAC,CAAC;QACzE,CAAC;IACL,CAAC;IAMM,wBAAwB,CAAC,sBAAmE;QAC/F,IAAI,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE,CAAC;YACxC,OAAO,sBAAsB;iBACxB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC;iBAChD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAC,8BAA8B,CAAC,sBAAsB,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;CAGJ"}
@@ -0,0 +1,14 @@
1
+ import { Tool } from '../Tool.js';
2
+ export interface ToolConverter<ToolType> {
3
+ convertFromTools(tools: Tool[]): ToolType[];
4
+ convertFromTool(tool: Tool): ToolType;
5
+ convertToTools(tools: ToolType[]): Tool[];
6
+ convertToTool(tool: ToolType): Tool;
7
+ }
8
+ export declare abstract class AbstractToolConverter<ToolType> implements ToolConverter<ToolType> {
9
+ convertFromTools(tools: Tool[]): ToolType[];
10
+ abstract convertFromTool(tool: Tool): ToolType;
11
+ convertToTools(tools: ToolType[]): Tool[];
12
+ abstract convertToTool(tool: ToolType): Tool;
13
+ }
14
+ //# sourceMappingURL=ToolConverter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolConverter.d.ts","sourceRoot":"","sources":["../../../src/converters/ToolConverter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,MAAM,WAAW,aAAa,CAAC,QAAQ;IACnC,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC5C,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,CAAC;IACtC,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;IAC1C,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;CACvC;AAED,8BAAsB,qBAAqB,CAAC,QAAQ,CAAE,YAAW,aAAa,CAAC,QAAQ,CAAC;IAC7E,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE;aAMlC,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ;IAE9C,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE;aAMhC,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;CACtD"}
@@ -0,0 +1,13 @@
1
+ export class AbstractToolConverter {
2
+ convertFromTools(tools) {
3
+ return tools
4
+ .map(tn => this.convertFromTool(tn))
5
+ .filter(item => item !== null && item !== undefined);
6
+ }
7
+ convertToTools(tools) {
8
+ return tools
9
+ .map(t => this.convertToTool(t))
10
+ .filter(item => item !== null && item !== undefined);
11
+ }
12
+ }
13
+ //# sourceMappingURL=ToolConverter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolConverter.js","sourceRoot":"","sources":["../../../src/converters/ToolConverter.ts"],"names":[],"mappings":"AASA,MAAM,OAAgB,qBAAqB;IAChC,gBAAgB,CAAC,KAAa;QACjC,OAAO,KAAK;aACP,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;aACnC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC;IAC7D,CAAC;IAIM,cAAc,CAAC,KAAiB;QACnC,OAAO,KAAK;aACP,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC;IAC7D,CAAC;CAGJ"}
@@ -0,0 +1,6 @@
1
+ export { type GroupConverter, AbstractGroupConverter } from './GroupConverter.js';
2
+ export { type ToolConverter, AbstractToolConverter } from './ToolConverter.js';
3
+ export { type PromptConverter, AbstractPromptConverter } from './PromptConverter.js';
4
+ export { type ResourceConverter, AbstractResourceConverter } from './ResourceConverter.js';
5
+ export { type ToolAnnotationsConverter, AbstractToolAnnotationsConverter } from './ToolAnnotationsConverter.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/converters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,KAAK,aAAa,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,KAAK,eAAe,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,KAAK,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,KAAK,wBAAwB,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { AbstractGroupConverter } from './GroupConverter.js';
2
+ export { AbstractToolConverter } from './ToolConverter.js';
3
+ export { AbstractPromptConverter } from './PromptConverter.js';
4
+ export { AbstractResourceConverter } from './ResourceConverter.js';
5
+ export { AbstractToolAnnotationsConverter } from './ToolAnnotationsConverter.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/converters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAsB,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAwB,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAA0B,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAiC,gCAAgC,EAAE,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * GroupedToolBuilder — Core of the MCP Tool Consolidation Framework
3
+ *
4
+ * Builds a single MCP tool from multiple actions with:
5
+ * - Auto-generated 3-layer LLM-friendly descriptions
6
+ * - Zod validation with type safety and parameter stripping
7
+ * - Hierarchical grouping for 5,000+ endpoints
8
+ * - Pre-compiled middleware chain
9
+ * - Per-action annotation aggregation
10
+ *
11
+ * Internal strategies are delegated to pure-function modules:
12
+ * - DescriptionGenerator — LLM description composition
13
+ * - SchemaGenerator — JSON Schema from Zod
14
+ * - AnnotationAggregator — Hint aggregation
15
+ * - MiddlewareCompiler — Chain pre-compilation
16
+ */
17
+ import { type ZodObject, type ZodRawShape } from 'zod';
18
+ import type { Tool as McpTool } from '@modelcontextprotocol/sdk/types.js';
19
+ import { type ToolResponse } from './ResponseHelper.js';
20
+ import type { ToolBuilder, ActionMetadata } from './ToolBuilder.js';
21
+ import type { InternalAction, MiddlewareFn } from './strategies/Types.js';
22
+ /** Configuration for a single action within a grouped tool */
23
+ export interface ActionConfig<TContext> {
24
+ /** Action name (must not contain dots in flat mode) */
25
+ name: string;
26
+ /** Human-readable description of what this action does */
27
+ description?: string;
28
+ /** Zod schema for this action's specific parameters */
29
+ schema?: ZodObject<ZodRawShape>;
30
+ /** Whether this action is destructive */
31
+ destructive?: boolean;
32
+ /** Whether this action is idempotent */
33
+ idempotent?: boolean;
34
+ /** Whether this action is read-only */
35
+ readOnly?: boolean;
36
+ /** Handler function */
37
+ handler: (ctx: TContext, args: Record<string, unknown>) => Promise<ToolResponse>;
38
+ }
39
+ /** Callback for configuring actions within a group */
40
+ export type GroupConfigurator<TContext, TCommon extends Record<string, unknown> = Record<string, never>> = (g: ActionGroupBuilder<TContext, TCommon>) => void;
41
+ export type { MiddlewareFn } from './strategies/Types.js';
42
+ export declare class ActionGroupBuilder<TContext, TCommon extends Record<string, unknown> = Record<string, never>> {
43
+ /** @internal */
44
+ readonly _actions: InternalAction<TContext>[];
45
+ private readonly _groupName;
46
+ private readonly _groupDescription;
47
+ private readonly _groupMiddlewares;
48
+ constructor(groupName: string, description?: string);
49
+ /** Add middleware scoped to this group */
50
+ use(mw: MiddlewareFn<TContext>): this;
51
+ /** Register an action within this group (typed: schema + commonSchema inference) */
52
+ action<TSchema extends ZodObject<ZodRawShape>>(config: {
53
+ name: string;
54
+ description?: string;
55
+ schema: TSchema;
56
+ destructive?: boolean;
57
+ idempotent?: boolean;
58
+ readOnly?: boolean;
59
+ handler: (ctx: TContext, args: TSchema["_output"] & TCommon) => Promise<ToolResponse>;
60
+ }): this;
61
+ /** Register an action within this group (untyped: no schema) */
62
+ action(config: ActionConfig<TContext>): this;
63
+ }
64
+ export declare class GroupedToolBuilder<TContext = void, TCommon extends Record<string, unknown> = Record<string, never>> implements ToolBuilder<TContext> {
65
+ private _name;
66
+ private _description?;
67
+ private _discriminator;
68
+ private _annotations?;
69
+ private _tags;
70
+ private _commonSchema?;
71
+ private _middlewares;
72
+ private _actions;
73
+ private _hasFlat;
74
+ private _hasGroup;
75
+ private _toonMode;
76
+ private _frozen;
77
+ private _cachedTool?;
78
+ private _compiledChain?;
79
+ constructor(name: string);
80
+ /** Set the discriminator field name (default: "action") */
81
+ discriminator(field: string): this;
82
+ /** Set the tool description (first line) */
83
+ description(desc: string): this;
84
+ /** Set MCP tool annotations */
85
+ annotations(a: Record<string, unknown>): this;
86
+ /** Set capability tags for selective exposure */
87
+ tags(...tags: string[]): this;
88
+ /** Set common schema shared by all actions (propagates types to handlers) */
89
+ commonSchema<TSchema extends ZodObject<ZodRawShape>>(schema: TSchema): GroupedToolBuilder<TContext, TSchema["_output"]>;
90
+ /**
91
+ * Enable TOON-formatted descriptions for token optimization.
92
+ *
93
+ * Uses TOON (Token-Oriented Object Notation) to encode action metadata
94
+ * in a compact tabular format, reducing description token count by ~30-50%.
95
+ *
96
+ * @example
97
+ * ```typescript
98
+ * new GroupedToolBuilder('projects')
99
+ * .description('Manage projects')
100
+ * .toonDescription()
101
+ * .action({ name: 'list', ... })
102
+ * ```
103
+ */
104
+ toonDescription(): this;
105
+ /** Add middleware to the chain */
106
+ use(mw: MiddlewareFn<TContext>): this;
107
+ /** Register a flat action (typed: schema + commonSchema inference) */
108
+ action<TSchema extends ZodObject<ZodRawShape>>(config: {
109
+ name: string;
110
+ description?: string;
111
+ schema: TSchema;
112
+ destructive?: boolean;
113
+ idempotent?: boolean;
114
+ readOnly?: boolean;
115
+ handler: (ctx: TContext, args: TSchema["_output"] & TCommon) => Promise<ToolResponse>;
116
+ }): this;
117
+ /** Register a flat action (untyped: no schema) */
118
+ action(config: ActionConfig<TContext>): this;
119
+ /** Register a group of actions */
120
+ group(name: string, configure: GroupConfigurator<TContext, TCommon>): this;
121
+ group(name: string, description: string, configure: GroupConfigurator<TContext, TCommon>): this;
122
+ /** Generate the MCP Tool definition. Caches result and freezes the builder. */
123
+ buildToolDefinition(): McpTool;
124
+ /** Route a call: validate → middleware → handler */
125
+ execute(ctx: TContext, args: Record<string, unknown>): Promise<ToolResponse>;
126
+ /** Get the tool name */
127
+ getName(): string;
128
+ /** Get the tags */
129
+ getTags(): string[];
130
+ /** Get all action keys */
131
+ getActionNames(): string[];
132
+ /** Get metadata for all registered actions (for enterprise observability) */
133
+ getActionMetadata(): ActionMetadata[];
134
+ private _buildValidationSchema;
135
+ private _assertNotFrozen;
136
+ }
137
+ //# sourceMappingURL=GroupedToolBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupedToolBuilder.d.ts","sourceRoot":"","sources":["../../../src/framework/GroupedToolBuilder.ts"],"names":[],"mappings":"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"}