@vinkius-core/mcp-fusion 0.4.0 → 0.6.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 (127) hide show
  1. package/README.md +3 -3
  2. package/dist/Annotations.d.ts +10 -7
  3. package/dist/Annotations.d.ts.map +1 -1
  4. package/dist/Annotations.js +3 -9
  5. package/dist/Annotations.js.map +1 -1
  6. package/dist/{AbstractBase.d.ts → BaseModel.d.ts} +3 -5
  7. package/dist/BaseModel.d.ts.map +1 -0
  8. package/dist/BaseModel.js +14 -0
  9. package/dist/BaseModel.js.map +1 -0
  10. package/dist/Group.d.ts +7 -6
  11. package/dist/Group.d.ts.map +1 -1
  12. package/dist/Group.js +38 -57
  13. package/dist/Group.js.map +1 -1
  14. package/dist/{AbstractLeaf.d.ts → GroupItem.d.ts} +3 -3
  15. package/dist/GroupItem.d.ts.map +1 -0
  16. package/dist/GroupItem.js +22 -0
  17. package/dist/GroupItem.js.map +1 -0
  18. package/dist/Icon.d.ts +8 -7
  19. package/dist/Icon.d.ts.map +1 -1
  20. package/dist/Icon.js +3 -7
  21. package/dist/Icon.js.map +1 -1
  22. package/dist/Prompt.d.ts +3 -4
  23. package/dist/Prompt.d.ts.map +1 -1
  24. package/dist/Prompt.js +5 -15
  25. package/dist/Prompt.js.map +1 -1
  26. package/dist/PromptArgument.d.ts +2 -3
  27. package/dist/PromptArgument.d.ts.map +1 -1
  28. package/dist/PromptArgument.js +3 -6
  29. package/dist/PromptArgument.js.map +1 -1
  30. package/dist/Resource.d.ts +3 -4
  31. package/dist/Resource.d.ts.map +1 -1
  32. package/dist/Resource.js +6 -5
  33. package/dist/Resource.js.map +1 -1
  34. package/dist/Tool.d.ts +3 -4
  35. package/dist/Tool.d.ts.map +1 -1
  36. package/dist/Tool.js +5 -5
  37. package/dist/Tool.js.map +1 -1
  38. package/dist/ToolAnnotations.d.ts +12 -8
  39. package/dist/ToolAnnotations.d.ts.map +1 -1
  40. package/dist/ToolAnnotations.js +3 -4
  41. package/dist/ToolAnnotations.js.map +1 -1
  42. package/dist/converters/ConverterBase.d.ts +27 -0
  43. package/dist/converters/ConverterBase.d.ts.map +1 -0
  44. package/dist/converters/ConverterBase.js +31 -0
  45. package/dist/converters/ConverterBase.js.map +1 -0
  46. package/dist/converters/GroupConverter.d.ts +9 -12
  47. package/dist/converters/GroupConverter.d.ts.map +1 -1
  48. package/dist/converters/GroupConverter.js +6 -11
  49. package/dist/converters/GroupConverter.js.map +1 -1
  50. package/dist/converters/PromptConverter.d.ts +9 -12
  51. package/dist/converters/PromptConverter.d.ts.map +1 -1
  52. package/dist/converters/PromptConverter.js +6 -11
  53. package/dist/converters/PromptConverter.js.map +1 -1
  54. package/dist/converters/ResourceConverter.d.ts +9 -12
  55. package/dist/converters/ResourceConverter.d.ts.map +1 -1
  56. package/dist/converters/ResourceConverter.js +6 -11
  57. package/dist/converters/ResourceConverter.js.map +1 -1
  58. package/dist/converters/ToolAnnotationsConverter.d.ts +9 -14
  59. package/dist/converters/ToolAnnotationsConverter.d.ts.map +1 -1
  60. package/dist/converters/ToolAnnotationsConverter.js +6 -21
  61. package/dist/converters/ToolAnnotationsConverter.js.map +1 -1
  62. package/dist/converters/ToolConverter.d.ts +9 -12
  63. package/dist/converters/ToolConverter.d.ts.map +1 -1
  64. package/dist/converters/ToolConverter.js +6 -11
  65. package/dist/converters/ToolConverter.js.map +1 -1
  66. package/dist/converters/index.d.ts +6 -5
  67. package/dist/converters/index.d.ts.map +1 -1
  68. package/dist/converters/index.js +6 -5
  69. package/dist/converters/index.js.map +1 -1
  70. package/dist/framework/GroupedToolBuilder.d.ts +4 -4
  71. package/dist/framework/GroupedToolBuilder.d.ts.map +1 -1
  72. package/dist/framework/GroupedToolBuilder.js +55 -42
  73. package/dist/framework/GroupedToolBuilder.js.map +1 -1
  74. package/dist/framework/ResponseHelper.d.ts.map +1 -1
  75. package/dist/framework/ResponseHelper.js +3 -1
  76. package/dist/framework/ResponseHelper.js.map +1 -1
  77. package/dist/framework/ToolBuilder.d.ts +11 -11
  78. package/dist/framework/ToolBuilder.d.ts.map +1 -1
  79. package/dist/framework/ToolRegistry.d.ts +4 -3
  80. package/dist/framework/ToolRegistry.d.ts.map +1 -1
  81. package/dist/framework/ToolRegistry.js +12 -14
  82. package/dist/framework/ToolRegistry.js.map +1 -1
  83. package/dist/framework/index.d.ts +7 -4
  84. package/dist/framework/index.d.ts.map +1 -1
  85. package/dist/framework/index.js.map +1 -1
  86. package/dist/framework/strategies/AnnotationAggregator.d.ts +1 -1
  87. package/dist/framework/strategies/AnnotationAggregator.d.ts.map +1 -1
  88. package/dist/framework/strategies/AnnotationAggregator.js +3 -3
  89. package/dist/framework/strategies/AnnotationAggregator.js.map +1 -1
  90. package/dist/framework/strategies/DescriptionGenerator.d.ts +1 -1
  91. package/dist/framework/strategies/DescriptionGenerator.d.ts.map +1 -1
  92. package/dist/framework/strategies/DescriptionGenerator.js +4 -5
  93. package/dist/framework/strategies/DescriptionGenerator.js.map +1 -1
  94. package/dist/framework/strategies/MiddlewareCompiler.d.ts +2 -2
  95. package/dist/framework/strategies/MiddlewareCompiler.d.ts.map +1 -1
  96. package/dist/framework/strategies/MiddlewareCompiler.js +5 -2
  97. package/dist/framework/strategies/MiddlewareCompiler.js.map +1 -1
  98. package/dist/framework/strategies/SchemaGenerator.d.ts +3 -3
  99. package/dist/framework/strategies/SchemaGenerator.d.ts.map +1 -1
  100. package/dist/framework/strategies/SchemaGenerator.js +7 -9
  101. package/dist/framework/strategies/SchemaGenerator.js.map +1 -1
  102. package/dist/framework/strategies/SchemaUtils.d.ts +1 -1
  103. package/dist/framework/strategies/SchemaUtils.d.ts.map +1 -1
  104. package/dist/framework/strategies/SchemaUtils.js +1 -1
  105. package/dist/framework/strategies/SchemaUtils.js.map +1 -1
  106. package/dist/framework/strategies/ToonDescriptionGenerator.d.ts +1 -1
  107. package/dist/framework/strategies/ToonDescriptionGenerator.d.ts.map +1 -1
  108. package/dist/framework/strategies/Types.d.ts +13 -13
  109. package/dist/framework/strategies/Types.d.ts.map +1 -1
  110. package/dist/framework/strategies/index.d.ts +2 -1
  111. package/dist/framework/strategies/index.d.ts.map +1 -1
  112. package/dist/framework/strategies/index.js.map +1 -1
  113. package/dist/index.d.ts +6 -6
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +6 -6
  116. package/dist/index.js.map +1 -1
  117. package/dist/utils.d.ts +6 -0
  118. package/dist/utils.d.ts.map +1 -0
  119. package/dist/utils.js +12 -0
  120. package/dist/utils.js.map +1 -0
  121. package/package.json +6 -1
  122. package/dist/AbstractBase.d.ts.map +0 -1
  123. package/dist/AbstractBase.js +0 -35
  124. package/dist/AbstractBase.js.map +0 -1
  125. package/dist/AbstractLeaf.d.ts.map +0 -1
  126. package/dist/AbstractLeaf.js +0 -28
  127. package/dist/AbstractLeaf.js.map +0 -1
package/README.md CHANGED
@@ -252,10 +252,10 @@ Beyond the framework, the package provides a full domain model for MCP primitive
252
252
  | `Tool` | Leaf node with input/output schemas and `ToolAnnotations` |
253
253
  | `Prompt` | Leaf node with `PromptArgument` list |
254
254
  | `Resource` | Leaf node with URI, size, mimeType, and `Annotations` (audience, priority) |
255
- | `AbstractBase` | Name, title, description, meta, icons, hashCode/equals |
256
- | `AbstractLeaf` | Multi-parent group support, root traversal |
255
+ | `BaseModel` | Name, title, description, meta, icons |
256
+ | `GroupItem` | Multi-parent group support, root traversal |
257
257
 
258
- *Features Bidirectional converters (`AbstractToolConverter`, `AbstractGroupConverter`, etc.) with null filtering for clean conversion to external representations.*
258
+ *Features Bidirectional converters (`ToolConverterBase`, `GroupConverterBase`, etc.) with null filtering for clean conversion to external representations.*
259
259
 
260
260
  ### Strategy Pattern Internals
261
261
  Six pure-function modules orchestrated by `GroupedToolBuilder`. Every module is independently testable and replaceable. **Zero shared state.**
@@ -1,9 +1,12 @@
1
- import { Role } from './Role.js';
2
- export declare class Annotations {
3
- audience: Role[] | undefined;
4
- priority: number | undefined;
5
- lastModified: string | undefined;
6
- constructor(audience?: Role[], priority?: number, lastModified?: string);
7
- toString(): string;
1
+ import { type Role } from './Role.js';
2
+ /**
3
+ * Resource Annotations — audience, priority, and freshness metadata.
4
+ */
5
+ export interface Annotations {
6
+ readonly audience?: readonly Role[];
7
+ readonly priority?: number;
8
+ readonly lastModified?: string;
8
9
  }
10
+ /** Create Annotations from partial properties. */
11
+ export declare function createAnnotations(props?: Annotations): Annotations;
9
12
  //# sourceMappingURL=Annotations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Annotations.d.ts","sourceRoot":"","sources":["../src/Annotations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,qBAAa,WAAW;IACb,QAAQ,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;gBAErB,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAMvE,QAAQ,IAAI,MAAM;CAG5B"}
1
+ {"version":3,"file":"Annotations.d.ts","sourceRoot":"","sources":["../src/Annotations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,kDAAkD;AAClD,wBAAgB,iBAAiB,CAAC,KAAK,GAAE,WAAgB,GAAG,WAAW,CAEtE"}
@@ -1,11 +1,5 @@
1
- export class Annotations {
2
- constructor(audience, priority, lastModified) {
3
- this.audience = audience;
4
- this.priority = priority;
5
- this.lastModified = lastModified;
6
- }
7
- toString() {
8
- return `Annotations [audience=${this.audience}, priority=${this.priority}, lastModified=${this.lastModified}]`;
9
- }
1
+ /** Create Annotations from partial properties. */
2
+ export function createAnnotations(props = {}) {
3
+ return { ...props };
10
4
  }
11
5
  //# sourceMappingURL=Annotations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Annotations.js","sourceRoot":"","sources":["../src/Annotations.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IAKpB,YAAmB,QAAiB,EAAE,QAAiB,EAAE,YAAqB;QAC1E,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAEM,QAAQ;QACX,OAAO,yBAAyB,IAAI,CAAC,QAAQ,cAAc,IAAI,CAAC,QAAQ,kBAAkB,IAAI,CAAC,YAAY,GAAG,CAAC;IACnH,CAAC;CACJ"}
1
+ {"version":3,"file":"Annotations.js","sourceRoot":"","sources":["../src/Annotations.ts"],"names":[],"mappings":"AAWA,kDAAkD;AAClD,MAAM,UAAU,iBAAiB,CAAC,QAAqB,EAAE;IACrD,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;AACxB,CAAC"}
@@ -1,5 +1,5 @@
1
- import { Icon } from './Icon.js';
2
- export declare abstract class AbstractBase {
1
+ import { type Icon } from './Icon.js';
2
+ export declare abstract class BaseModel {
3
3
  static readonly DEFAULT_SEPARATOR: string;
4
4
  readonly nameSeparator: string;
5
5
  readonly name: string;
@@ -8,8 +8,6 @@ export declare abstract class AbstractBase {
8
8
  meta: Map<string, unknown> | undefined;
9
9
  icons: Icon[] | undefined;
10
10
  protected constructor(name: string, nameSeparator?: string);
11
- hashCode(): number;
12
- equals(obj: unknown): boolean;
13
11
  abstract getFullyQualifiedName(): string;
14
12
  }
15
- //# sourceMappingURL=AbstractBase.d.ts.map
13
+ //# sourceMappingURL=BaseModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseModel.d.ts","sourceRoot":"","sources":["../src/BaseModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,8BAAsB,SAAS;IAC3B,gBAAuB,iBAAiB,EAAE,MAAM,CAAO;IAEvD,SAAgB,aAAa,EAAE,MAAM,CAAC;IACtC,SAAgB,IAAI,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IACvC,KAAK,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC;IAEjC,SAAS,aAAa,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;aAK1C,qBAAqB,IAAI,MAAM;CAClD"}
@@ -0,0 +1,14 @@
1
+ export class BaseModel {
2
+ static DEFAULT_SEPARATOR = ".";
3
+ nameSeparator;
4
+ name;
5
+ title;
6
+ description;
7
+ meta;
8
+ icons;
9
+ constructor(name, nameSeparator) {
10
+ this.name = name;
11
+ this.nameSeparator = nameSeparator ?? BaseModel.DEFAULT_SEPARATOR;
12
+ }
13
+ }
14
+ //# sourceMappingURL=BaseModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseModel.js","sourceRoot":"","sources":["../src/BaseModel.ts"],"names":[],"mappings":"AAEA,MAAM,OAAgB,SAAS;IACpB,MAAM,CAAU,iBAAiB,GAAW,GAAG,CAAC;IAEvC,aAAa,CAAS;IACtB,IAAI,CAAS;IACtB,KAAK,CAAqB;IAC1B,WAAW,CAAqB;IAChC,IAAI,CAAmC;IACvC,KAAK,CAAqB;IAEjC,YAAsB,IAAY,EAAE,aAAsB;QACtD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,SAAS,CAAC,iBAAiB,CAAC;IACtE,CAAC"}
package/dist/Group.d.ts CHANGED
@@ -1,14 +1,16 @@
1
- import { AbstractBase } from './AbstractBase.js';
2
- import { Tool } from './Tool.js';
3
- import { Prompt } from './Prompt.js';
4
- import { Resource } from './Resource.js';
5
- export declare class Group extends AbstractBase {
1
+ import { BaseModel } from './BaseModel.js';
2
+ import { type Tool } from './Tool.js';
3
+ import { type Prompt } from './Prompt.js';
4
+ import { type Resource } from './Resource.js';
5
+ export declare class Group extends BaseModel {
6
6
  parent: Group | null;
7
7
  readonly childGroups: Group[];
8
8
  readonly childTools: Tool[];
9
9
  readonly childPrompts: Prompt[];
10
10
  readonly childResources: Resource[];
11
11
  constructor(name: string, nameSeparator?: string);
12
+ private addChild;
13
+ private removeChild;
12
14
  getRoot(): Group;
13
15
  isRoot(): boolean;
14
16
  addChildGroup(childGroup: Group): boolean;
@@ -21,6 +23,5 @@ export declare class Group extends AbstractBase {
21
23
  removeChildResource(childResource: Resource): boolean;
22
24
  protected getFullyQualifiedNameRecursive(tg: Group): string;
23
25
  getFullyQualifiedName(): string;
24
- toString(): string;
25
26
  }
26
27
  //# sourceMappingURL=Group.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Group.d.ts","sourceRoot":"","sources":["../src/Group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,qBAAa,KAAM,SAAQ,YAAY;IAC5B,MAAM,EAAE,KAAK,GAAG,IAAI,CAAQ;IACnC,SAAgB,WAAW,EAAE,KAAK,EAAE,CAAC;IACrC,SAAgB,UAAU,EAAE,IAAI,EAAE,CAAC;IACnC,SAAgB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvC,SAAgB,cAAc,EAAE,QAAQ,EAAE,CAAC;gBAExB,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;IAQhD,OAAO,IAAI,KAAK;IAShB,MAAM,IAAI,OAAO;IAIjB,aAAa,CAAC,UAAU,EAAE,KAAK,GAAG,OAAO;IAOzC,gBAAgB,CAAC,UAAU,EAAE,KAAK,GAAG,OAAO;IAU5C,YAAY,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO;IAOtC,eAAe,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO;IAUzC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAO5C,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAU/C,gBAAgB,CAAC,aAAa,EAAE,QAAQ,GAAG,OAAO;IAOlD,mBAAmB,CAAC,aAAa,EAAE,QAAQ,GAAG,OAAO;IAU5D,SAAS,CAAC,8BAA8B,CAAC,EAAE,EAAE,KAAK,GAAG,MAAM;IASpD,qBAAqB,IAAI,MAAM;IAI/B,QAAQ,IAAI,MAAM;CAG5B"}
1
+ {"version":3,"file":"Group.d.ts","sourceRoot":"","sources":["../src/Group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,qBAAa,KAAM,SAAQ,SAAS;IACzB,MAAM,EAAE,KAAK,GAAG,IAAI,CAAQ;IACnC,SAAgB,WAAW,EAAE,KAAK,EAAE,CAAC;IACrC,SAAgB,UAAU,EAAE,IAAI,EAAE,CAAC;IACnC,SAAgB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvC,SAAgB,cAAc,EAAE,QAAQ,EAAE,CAAC;gBAExB,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;IAUvD,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,WAAW;IAQZ,OAAO,IAAI,KAAK;IAIhB,MAAM,IAAI,OAAO;IAMjB,aAAa,CAAC,UAAU,EAAE,KAAK,GAAG,OAAO;IAOzC,gBAAgB,CAAC,UAAU,EAAE,KAAK,GAAG,OAAO;IAQ5C,YAAY,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO;IAItC,eAAe,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO;IAIzC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAI5C,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAI/C,gBAAgB,CAAC,aAAa,EAAE,QAAQ,GAAG,OAAO;IAIlD,mBAAmB,CAAC,aAAa,EAAE,QAAQ,GAAG,OAAO;IAM5D,SAAS,CAAC,8BAA8B,CAAC,EAAE,EAAE,KAAK,GAAG,MAAM;IASpD,qBAAqB,IAAI,MAAM;CAGzC"}
package/dist/Group.js CHANGED
@@ -1,25 +1,40 @@
1
- import { AbstractBase } from './AbstractBase.js';
2
- export class Group extends AbstractBase {
1
+ import { BaseModel } from './BaseModel.js';
2
+ import { removeFromArray } from './utils.js';
3
+ export class Group extends BaseModel {
4
+ parent = null;
5
+ childGroups;
6
+ childTools;
7
+ childPrompts;
8
+ childResources;
3
9
  constructor(name, nameSeparator) {
4
- super(name, nameSeparator !== undefined ? nameSeparator : AbstractBase.DEFAULT_SEPARATOR);
5
- this.parent = null;
10
+ super(name, nameSeparator !== undefined ? nameSeparator : BaseModel.DEFAULT_SEPARATOR);
6
11
  this.childGroups = [];
7
12
  this.childTools = [];
8
13
  this.childPrompts = [];
9
14
  this.childResources = [];
10
15
  }
16
+ // ── Private helpers to eliminate add/remove repetition ──
17
+ addChild(list, child) {
18
+ if (list.includes(child))
19
+ return false;
20
+ list.push(child);
21
+ child.addParentGroup(this);
22
+ return true;
23
+ }
24
+ removeChild(list, child) {
25
+ if (!removeFromArray(list, child))
26
+ return false;
27
+ child.removeParentGroup(this);
28
+ return true;
29
+ }
30
+ // ── Tree navigation ──
11
31
  getRoot() {
12
- const parent = this.parent;
13
- if (parent === null) {
14
- return this;
15
- }
16
- else {
17
- return parent.getRoot();
18
- }
32
+ return this.parent === null ? this : this.parent.getRoot();
19
33
  }
20
34
  isRoot() {
21
35
  return this.parent === null;
22
36
  }
37
+ // ── Child groups (special: sets parent, not parentGroup) ──
23
38
  addChildGroup(childGroup) {
24
39
  if (this.childGroups.includes(childGroup))
25
40
  return false;
@@ -28,62 +43,31 @@ export class Group extends AbstractBase {
28
43
  return true;
29
44
  }
30
45
  removeChildGroup(childGroup) {
31
- const index = this.childGroups.indexOf(childGroup);
32
- if (index !== -1) {
33
- this.childGroups.splice(index, 1);
34
- childGroup.parent = null;
35
- return true;
36
- }
37
- return false;
38
- }
39
- addChildTool(childTool) {
40
- if (this.childTools.includes(childTool))
46
+ if (!removeFromArray(this.childGroups, childGroup))
41
47
  return false;
42
- this.childTools.push(childTool);
43
- childTool.addParentGroup(this);
48
+ childGroup.parent = null;
44
49
  return true;
45
50
  }
51
+ // ── Child items (delegated to helpers) ──
52
+ addChildTool(childTool) {
53
+ return this.addChild(this.childTools, childTool);
54
+ }
46
55
  removeChildTool(childTool) {
47
- const index = this.childTools.indexOf(childTool);
48
- if (index !== -1) {
49
- this.childTools.splice(index, 1);
50
- childTool.removeParentGroup(this);
51
- return true;
52
- }
53
- return false;
56
+ return this.removeChild(this.childTools, childTool);
54
57
  }
55
58
  addChildPrompt(childPrompt) {
56
- if (this.childPrompts.includes(childPrompt))
57
- return false;
58
- this.childPrompts.push(childPrompt);
59
- childPrompt.addParentGroup(this);
60
- return true;
59
+ return this.addChild(this.childPrompts, childPrompt);
61
60
  }
62
61
  removeChildPrompt(childPrompt) {
63
- const index = this.childPrompts.indexOf(childPrompt);
64
- if (index !== -1) {
65
- this.childPrompts.splice(index, 1);
66
- childPrompt.removeParentGroup(this);
67
- return true;
68
- }
69
- return false;
62
+ return this.removeChild(this.childPrompts, childPrompt);
70
63
  }
71
64
  addChildResource(childResource) {
72
- if (this.childResources.includes(childResource))
73
- return false;
74
- this.childResources.push(childResource);
75
- childResource.addParentGroup(this);
76
- return true;
65
+ return this.addChild(this.childResources, childResource);
77
66
  }
78
67
  removeChildResource(childResource) {
79
- const index = this.childResources.indexOf(childResource);
80
- if (index !== -1) {
81
- this.childResources.splice(index, 1);
82
- childResource.removeParentGroup(this);
83
- return true;
84
- }
85
- return false;
68
+ return this.removeChild(this.childResources, childResource);
86
69
  }
70
+ // ── FQN ──
87
71
  getFullyQualifiedNameRecursive(tg) {
88
72
  const parent = tg.parent;
89
73
  if (parent !== null) {
@@ -95,8 +79,5 @@ export class Group extends AbstractBase {
95
79
  getFullyQualifiedName() {
96
80
  return this.getFullyQualifiedNameRecursive(this);
97
81
  }
98
- toString() {
99
- return `Group [name=${this.name}, fqName=${this.getFullyQualifiedName()}, isRoot=${this.isRoot()}, title=${this.title}, description=${this.description}, meta=${this.meta}, childGroups=${this.childGroups}, childTools=${this.childTools}, childPrompts=${this.childPrompts}]`;
100
- }
101
82
  }
102
83
  //# sourceMappingURL=Group.js.map
package/dist/Group.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Group.js","sourceRoot":"","sources":["../src/Group.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Group.js","sourceRoot":"","sources":["../src/Group.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import { AbstractBase } from './AbstractBase.js';
1
+ import { BaseModel } from './BaseModel.js';
2
2
  import type { Group } from './Group.js';
3
- export declare class AbstractLeaf extends AbstractBase {
3
+ export declare class GroupItem extends BaseModel {
4
4
  readonly parentGroups: Group[];
5
5
  protected constructor(name: string, nameSeparator?: string);
6
6
  addParentGroup(parentGroup: Group): boolean;
7
7
  removeParentGroup(parentGroup: Group): boolean;
8
8
  getFullyQualifiedName(): string;
9
9
  }
10
- //# sourceMappingURL=AbstractLeaf.d.ts.map
10
+ //# sourceMappingURL=GroupItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupItem.d.ts","sourceRoot":"","sources":["../src/GroupItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxC,qBAAa,SAAU,SAAQ,SAAS;IACpC,SAAgB,YAAY,EAAE,KAAK,EAAE,CAAC;IAEtC,SAAS,aAAa,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;IAKnD,cAAc,CAAC,WAAW,EAAE,KAAK,GAAG,OAAO;IAM3C,iBAAiB,CAAC,WAAW,EAAE,KAAK,GAAG,OAAO;IAI9C,qBAAqB,IAAI,MAAM;CAGzC"}
@@ -0,0 +1,22 @@
1
+ import { BaseModel } from './BaseModel.js';
2
+ import { removeFromArray } from './utils.js';
3
+ export class GroupItem extends BaseModel {
4
+ parentGroups;
5
+ constructor(name, nameSeparator) {
6
+ super(name, nameSeparator);
7
+ this.parentGroups = [];
8
+ }
9
+ addParentGroup(parentGroup) {
10
+ if (this.parentGroups.includes(parentGroup))
11
+ return false;
12
+ this.parentGroups.push(parentGroup);
13
+ return true;
14
+ }
15
+ removeParentGroup(parentGroup) {
16
+ return removeFromArray(this.parentGroups, parentGroup);
17
+ }
18
+ getFullyQualifiedName() {
19
+ return this.name;
20
+ }
21
+ }
22
+ //# sourceMappingURL=GroupItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupItem.js","sourceRoot":"","sources":["../src/GroupItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,OAAO,SAAU,SAAQ,SAAS;IACpB,YAAY,CAAU;IAEtC,YAAsB,IAAY,EAAE,aAAsB;QACtD,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IAC3B,CAAC;IAEM,cAAc,CAAC,WAAkB;QACpC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,iBAAiB,CAAC,WAAkB;QACvC,OAAO,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC;IAEM,qBAAqB;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;CACJ"}
package/dist/Icon.d.ts CHANGED
@@ -1,11 +1,12 @@
1
1
  /**
2
- * Icon definition
2
+ * Icon definition for group and tool metadata.
3
3
  */
4
- export declare class Icon {
5
- src: string | undefined;
6
- mimeType: string | undefined;
7
- sizes: string[] | undefined;
8
- theme: string | undefined;
9
- toString(): string;
4
+ export interface Icon {
5
+ readonly src?: string;
6
+ readonly mimeType?: string;
7
+ readonly sizes?: readonly string[];
8
+ readonly theme?: string;
10
9
  }
10
+ /** Create an Icon from partial properties. */
11
+ export declare function createIcon(props?: Icon): Icon;
11
12
  //# sourceMappingURL=Icon.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../src/Icon.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,IAAI;IACN,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAE1B,QAAQ,IAAI,MAAM;CAG5B"}
1
+ {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../src/Icon.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,IAAI;IACjB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,8CAA8C;AAC9C,wBAAgB,UAAU,CAAC,KAAK,GAAE,IAAS,GAAG,IAAI,CAEjD"}
package/dist/Icon.js CHANGED
@@ -1,9 +1,5 @@
1
- /**
2
- * Icon definition
3
- */
4
- export class Icon {
5
- toString() {
6
- return `Icon [src=${this.src}, mimeType=${this.mimeType}, sizes=${this.sizes}, theme=${this.theme}]`;
7
- }
1
+ /** Create an Icon from partial properties. */
2
+ export function createIcon(props = {}) {
3
+ return { ...props };
8
4
  }
9
5
  //# sourceMappingURL=Icon.js.map
package/dist/Icon.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.js","sourceRoot":"","sources":["../src/Icon.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,IAAI;IAMN,QAAQ;QACX,OAAO,aAAa,IAAI,CAAC,GAAG,cAAc,IAAI,CAAC,QAAQ,WAAW,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,GAAG,CAAC;IACzG,CAAC;CACJ"}
1
+ {"version":3,"file":"Icon.js","sourceRoot":"","sources":["../src/Icon.ts"],"names":[],"mappings":"AAUA,8CAA8C;AAC9C,MAAM,UAAU,UAAU,CAAC,QAAc,EAAE;IACvC,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;AACxB,CAAC"}
package/dist/Prompt.d.ts CHANGED
@@ -1,10 +1,9 @@
1
- import { AbstractLeaf } from './AbstractLeaf.js';
2
- import { PromptArgument } from './PromptArgument.js';
3
- export declare class Prompt extends AbstractLeaf {
1
+ import { GroupItem } from './GroupItem.js';
2
+ import { type PromptArgument } from './PromptArgument.js';
3
+ export declare class Prompt extends GroupItem {
4
4
  readonly promptArguments: PromptArgument[];
5
5
  constructor(name: string);
6
6
  addPromptArgument(promptArgument: PromptArgument): boolean;
7
7
  removePromptArgument(promptArgument: PromptArgument): boolean;
8
- toString(): string;
9
8
  }
10
9
  //# sourceMappingURL=Prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Prompt.d.ts","sourceRoot":"","sources":["../src/Prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,qBAAa,MAAO,SAAQ,YAAY;IACpC,SAAgB,eAAe,EAAE,cAAc,EAAE,CAAM;gBAEpC,IAAI,EAAE,MAAM;IAIxB,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO;IAS1D,oBAAoB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO;IAS7D,QAAQ,IAAI,MAAM;CAG5B"}
1
+ {"version":3,"file":"Prompt.d.ts","sourceRoot":"","sources":["../src/Prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG1D,qBAAa,MAAO,SAAQ,SAAS;IACjC,SAAgB,eAAe,EAAE,cAAc,EAAE,CAAM;gBAEpC,IAAI,EAAE,MAAM;IAIxB,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO;IAM1D,oBAAoB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO;CAGvE"}
package/dist/Prompt.js CHANGED
@@ -1,28 +1,18 @@
1
- import { AbstractLeaf } from './AbstractLeaf.js';
2
- export class Prompt extends AbstractLeaf {
1
+ import { GroupItem } from './GroupItem.js';
2
+ import { removeFromArray } from './utils.js';
3
+ export class Prompt extends GroupItem {
4
+ promptArguments = [];
3
5
  constructor(name) {
4
6
  super(name);
5
- this.promptArguments = [];
6
7
  }
7
8
  addPromptArgument(promptArgument) {
8
- if (promptArgument === null || promptArgument === undefined) {
9
- throw new Error("promptArgument must not be null");
10
- }
11
9
  if (this.promptArguments.includes(promptArgument))
12
10
  return false;
13
11
  this.promptArguments.push(promptArgument);
14
12
  return true;
15
13
  }
16
14
  removePromptArgument(promptArgument) {
17
- const index = this.promptArguments.indexOf(promptArgument);
18
- if (index !== -1) {
19
- this.promptArguments.splice(index, 1);
20
- return true;
21
- }
22
- return false;
23
- }
24
- toString() {
25
- return `Prompt [promptArguments=${this.promptArguments}, name=${this.name}, fqName=${this.getFullyQualifiedName()}, title=${this.title}, description=${this.description}, meta=${this.meta}]`;
15
+ return removeFromArray(this.promptArguments, promptArgument);
26
16
  }
27
17
  }
28
18
  //# sourceMappingURL=Prompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Prompt.js","sourceRoot":"","sources":["../src/Prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,MAAM,OAAO,MAAO,SAAQ,YAAY;IAGpC,YAAmB,IAAY;QAC3B,KAAK,CAAC,IAAI,CAAC,CAAC;QAHA,oBAAe,GAAqB,EAAE,CAAC;IAIvD,CAAC;IAEM,iBAAiB,CAAC,cAA8B;QACnD,IAAI,cAAc,KAAK,IAAI,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC;YAAE,OAAO,KAAK,CAAC;QAChE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,oBAAoB,CAAC,cAA8B;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC3D,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,QAAQ;QACX,OAAO,2BAA2B,IAAI,CAAC,eAAe,UAAU,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,qBAAqB,EAAE,WAAW,IAAI,CAAC,KAAK,iBAAiB,IAAI,CAAC,WAAW,UAAU,IAAI,CAAC,IAAI,GAAG,CAAC;IAClM,CAAC;CACJ"}
1
+ {"version":3,"file":"Prompt.js","sourceRoot":"","sources":["../src/Prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,OAAO,MAAO,SAAQ,SAAS;IACjB,eAAe,GAAqB,EAAE,CAAC;IAEvD,YAAmB,IAAY;QAC3B,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEM,iBAAiB,CAAC,cAA8B;QACnD,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC;YAAE,OAAO,KAAK,CAAC;QAChE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,oBAAoB,CAAC,cAA8B;QACtD,OAAO,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;IACjE,CAAC;CACJ"}
@@ -1,8 +1,7 @@
1
- import { AbstractBase } from './AbstractBase.js';
2
- export declare class PromptArgument extends AbstractBase {
1
+ import { BaseModel } from './BaseModel.js';
2
+ export declare class PromptArgument extends BaseModel {
3
3
  required: boolean;
4
4
  constructor(name: string);
5
- toString(): string;
6
5
  getFullyQualifiedName(): string;
7
6
  }
8
7
  //# sourceMappingURL=PromptArgument.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PromptArgument.d.ts","sourceRoot":"","sources":["../src/PromptArgument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,qBAAa,cAAe,SAAQ,YAAY;IACrC,QAAQ,EAAE,OAAO,CAAS;gBAEd,IAAI,EAAE,MAAM;IAIxB,QAAQ,IAAI,MAAM;IAIlB,qBAAqB,IAAI,MAAM;CAGzC"}
1
+ {"version":3,"file":"PromptArgument.d.ts","sourceRoot":"","sources":["../src/PromptArgument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,qBAAa,cAAe,SAAQ,SAAS;IAClC,QAAQ,EAAE,OAAO,CAAS;gBAEd,IAAI,EAAE,MAAM;IAIxB,qBAAqB,IAAI,MAAM;CAGzC"}
@@ -1,11 +1,8 @@
1
- import { AbstractBase } from './AbstractBase.js';
2
- export class PromptArgument extends AbstractBase {
1
+ import { BaseModel } from './BaseModel.js';
2
+ export class PromptArgument extends BaseModel {
3
+ required = false;
3
4
  constructor(name) {
4
5
  super(name);
5
- this.required = false;
6
- }
7
- toString() {
8
- return `PromptArgument [required=${this.required}, name=${this.name}, title=${this.title}, description=${this.description}, meta=${this.meta}]`;
9
6
  }
10
7
  getFullyQualifiedName() {
11
8
  return this.name;
@@ -1 +1 @@
1
- {"version":3,"file":"PromptArgument.js","sourceRoot":"","sources":["../src/PromptArgument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,OAAO,cAAe,SAAQ,YAAY;IAG5C,YAAmB,IAAY;QAC3B,KAAK,CAAC,IAAI,CAAC,CAAC;QAHT,aAAQ,GAAY,KAAK,CAAC;IAIjC,CAAC;IAEM,QAAQ;QACX,OAAO,4BAA4B,IAAI,CAAC,QAAQ,UAAU,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC,KAAK,iBAAiB,IAAI,CAAC,WAAW,UAAU,IAAI,CAAC,IAAI,GAAG,CAAC;IACpJ,CAAC;IAEM,qBAAqB;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;CACJ"}
1
+ {"version":3,"file":"PromptArgument.js","sourceRoot":"","sources":["../src/PromptArgument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,OAAO,cAAe,SAAQ,SAAS;IAClC,QAAQ,GAAY,KAAK,CAAC;IAEjC,YAAmB,IAAY;QAC3B,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEM,qBAAqB;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;CACJ"}
@@ -1,11 +1,10 @@
1
- import { AbstractLeaf } from './AbstractLeaf.js';
2
- import { Annotations } from './Annotations.js';
3
- export declare class Resource extends AbstractLeaf {
1
+ import { type Annotations } from './Annotations.js';
2
+ import { GroupItem } from './GroupItem.js';
3
+ export declare class Resource extends GroupItem {
4
4
  uri: string | undefined;
5
5
  size: number | undefined;
6
6
  mimeType: string | undefined;
7
7
  annotations: Annotations | undefined;
8
8
  constructor(name: string);
9
- toString(): string;
10
9
  }
11
10
  //# sourceMappingURL=Resource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Resource.d.ts","sourceRoot":"","sources":["../src/Resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,QAAS,SAAQ,YAAY;IAC/B,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;gBAEzB,IAAI,EAAE,MAAM;IAIxB,QAAQ,IAAI,MAAM;CAG5B"}
1
+ {"version":3,"file":"Resource.d.ts","sourceRoot":"","sources":["../src/Resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,qBAAa,QAAS,SAAQ,SAAS;IAC5B,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;gBAEzB,IAAI,EAAE,MAAM;CAGlC"}
package/dist/Resource.js CHANGED
@@ -1,10 +1,11 @@
1
- import { AbstractLeaf } from './AbstractLeaf.js';
2
- export class Resource extends AbstractLeaf {
1
+ import { GroupItem } from './GroupItem.js';
2
+ export class Resource extends GroupItem {
3
+ uri;
4
+ size;
5
+ mimeType;
6
+ annotations;
3
7
  constructor(name) {
4
8
  super(name);
5
9
  }
6
- toString() {
7
- return `Resource [name=${this.name}, fqName=${this.getFullyQualifiedName()}, title=${this.title}, description=${this.description}, meta=${this.meta}, uri=${this.uri}, size=${this.size}, mimeType=${this.mimeType}, annotations=${this.annotations}]`;
8
- }
9
10
  }
10
11
  //# sourceMappingURL=Resource.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Resource.js","sourceRoot":"","sources":["../src/Resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,MAAM,OAAO,QAAS,SAAQ,YAAY;IAMtC,YAAmB,IAAY;QAC3B,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEM,QAAQ;QACX,OAAO,kBAAkB,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,qBAAqB,EAAE,WAAW,IAAI,CAAC,KAAK,iBAAiB,IAAI,CAAC,WAAW,UAAU,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,GAAG,UAAU,IAAI,CAAC,IAAI,cAAc,IAAI,CAAC,QAAQ,iBAAiB,IAAI,CAAC,WAAW,GAAG,CAAC;IAC3P,CAAC;CACJ"}
1
+ {"version":3,"file":"Resource.js","sourceRoot":"","sources":["../src/Resource.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,OAAO,QAAS,SAAQ,SAAS;IAC5B,GAAG,CAAqB;IACxB,IAAI,CAAqB;IACzB,QAAQ,CAAqB;IAC7B,WAAW,CAA0B;IAE5C,YAAmB,IAAY;QAC3B,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;CACJ"}
package/dist/Tool.d.ts CHANGED
@@ -1,10 +1,9 @@
1
- import { AbstractLeaf } from './AbstractLeaf.js';
2
- import { ToolAnnotations } from './ToolAnnotations.js';
3
- export declare class Tool extends AbstractLeaf {
1
+ import { type ToolAnnotations } from './ToolAnnotations.js';
2
+ import { GroupItem } from './GroupItem.js';
3
+ export declare class Tool extends GroupItem {
4
4
  inputSchema: string | undefined;
5
5
  outputSchema: string | undefined;
6
6
  toolAnnotations: ToolAnnotations | undefined;
7
7
  constructor(name: string);
8
- toString(): string;
9
8
  }
10
9
  //# sourceMappingURL=Tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tool.d.ts","sourceRoot":"","sources":["../src/Tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,qBAAa,IAAK,SAAQ,YAAY;IAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,eAAe,EAAE,eAAe,GAAG,SAAS,CAAC;gBAEjC,IAAI,EAAE,MAAM;IAIxB,QAAQ,IAAI,MAAM;CAG5B"}
1
+ {"version":3,"file":"Tool.d.ts","sourceRoot":"","sources":["../src/Tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,qBAAa,IAAK,SAAQ,SAAS;IACxB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,eAAe,EAAE,eAAe,GAAG,SAAS,CAAC;gBAEjC,IAAI,EAAE,MAAM;CAGlC"}
package/dist/Tool.js CHANGED
@@ -1,10 +1,10 @@
1
- import { AbstractLeaf } from './AbstractLeaf.js';
2
- export class Tool extends AbstractLeaf {
1
+ import { GroupItem } from './GroupItem.js';
2
+ export class Tool extends GroupItem {
3
+ inputSchema;
4
+ outputSchema;
5
+ toolAnnotations;
3
6
  constructor(name) {
4
7
  super(name);
5
8
  }
6
- toString() {
7
- return `Tool [name=${this.name}, fqName=${this.getFullyQualifiedName()}, title=${this.title}, description=${this.description}, meta=${this.meta}, inputSchema=${this.inputSchema}, outputSchema=${this.outputSchema}, toolAnnotation=${this.toolAnnotations}]`;
8
- }
9
9
  }
10
10
  //# sourceMappingURL=Tool.js.map
package/dist/Tool.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Tool.js","sourceRoot":"","sources":["../src/Tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,MAAM,OAAO,IAAK,SAAQ,YAAY;IAKlC,YAAmB,IAAY;QAC3B,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEM,QAAQ;QACX,OAAO,cAAc,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,qBAAqB,EAAE,WAAW,IAAI,CAAC,KAAK,iBAAiB,IAAI,CAAC,WAAW,UAAU,IAAI,CAAC,IAAI,iBAAiB,IAAI,CAAC,WAAW,kBAAkB,IAAI,CAAC,YAAY,oBAAoB,IAAI,CAAC,eAAe,GAAG,CAAC;IACnQ,CAAC;CACJ"}
1
+ {"version":3,"file":"Tool.js","sourceRoot":"","sources":["../src/Tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,OAAO,IAAK,SAAQ,SAAS;IACxB,WAAW,CAAqB;IAChC,YAAY,CAAqB;IACjC,eAAe,CAA8B;IAEpD,YAAmB,IAAY;QAC3B,KAAK,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;CACJ"}
@@ -1,10 +1,14 @@
1
- export declare class ToolAnnotations {
2
- title: string | undefined;
3
- readOnlyHint: boolean | undefined;
4
- destructiveHint: boolean | undefined;
5
- idempotentHint: boolean | undefined;
6
- openWorldHint: boolean | undefined;
7
- returnDirect: boolean | undefined;
8
- toString(): string;
1
+ /**
2
+ * MCP Tool Annotations — hints for LLM behavior.
3
+ */
4
+ export interface ToolAnnotations {
5
+ readonly title?: string;
6
+ readonly readOnlyHint?: boolean;
7
+ readonly destructiveHint?: boolean;
8
+ readonly idempotentHint?: boolean;
9
+ readonly openWorldHint?: boolean;
10
+ readonly returnDirect?: boolean;
9
11
  }
12
+ /** Create ToolAnnotations from partial properties. */
13
+ export declare function createToolAnnotations(props?: ToolAnnotations): ToolAnnotations;
10
14
  //# sourceMappingURL=ToolAnnotations.d.ts.map