@theia/ai-core 1.59.0-next.72 → 1.59.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.
@@ -5,10 +5,14 @@ import { AIVariableContribution, AIVariableResolver, AIVariableService, AIVariab
5
5
  * Integrates the Theia VariableRegistry with the Theia AI VariableService
6
6
  */
7
7
  export declare class TheiaVariableContribution implements AIVariableContribution, AIVariableResolver {
8
+ private static readonly THEIA_PREFIX;
8
9
  protected readonly variableResolverService: VariableResolverService;
9
10
  protected readonly variableRegistry: VariableRegistry;
10
11
  protected readonly stateService: FrontendApplicationStateService;
11
- protected variableRenameMap: Map<string, string>;
12
+ protected variableRenameMap: Map<string, {
13
+ name?: string;
14
+ description?: string;
15
+ }>;
12
16
  registerVariables(service: AIVariableService): void;
13
17
  protected toTheiaVariable(request: AIVariableResolutionRequest): string;
14
18
  canResolve(request: AIVariableResolutionRequest, context: AIVariableContext): Promise<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"theia-variable-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/theia-variable-contribution.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,+BAA+B,EAAE,MAAM,oDAAoD,CAAC;AAGrG,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AACjG,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE9J;;GAEG;AACH,qBACa,yBAA0B,YAAW,sBAAsB,EAAE,kBAAkB;IAExF,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;IAGpE,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,+BAA+B,CAAC;IAEjE,SAAS,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAE7C;IAEH,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAenD,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,2BAA2B,GAAG,MAAM;IAIjE,UAAU,CAAC,OAAO,EAAE,2BAA2B,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAO7F,OAAO,CAAC,OAAO,EAAE,2BAA2B,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;CAI3H"}
1
+ {"version":3,"file":"theia-variable-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/theia-variable-contribution.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,+BAA+B,EAAE,MAAM,oDAAoD,CAAC;AAGrG,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AACjG,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE9J;;GAEG;AACH,qBACa,yBAA0B,YAAW,sBAAsB,EAAE,kBAAkB;IAExF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAY;IAGhD,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;IAGpE,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAGtD,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,+BAA+B,CAAC;IAIjE,SAAS,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAyB9E;IAEH,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAuBnD,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,2BAA2B,GAAG,MAAM;IAOjE,UAAU,CAAC,OAAO,EAAE,2BAA2B,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAU7F,OAAO,CAAC,OAAO,EAAE,2BAA2B,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;CAI3H"}
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ var TheiaVariableContribution_1;
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.TheiaVariableContribution = void 0;
4
5
  const tslib_1 = require("tslib");
@@ -24,10 +25,35 @@ const browser_1 = require("@theia/variable-resolver/lib/browser");
24
25
  /**
25
26
  * Integrates the Theia VariableRegistry with the Theia AI VariableService
26
27
  */
27
- let TheiaVariableContribution = class TheiaVariableContribution {
28
+ let TheiaVariableContribution = TheiaVariableContribution_1 = class TheiaVariableContribution {
28
29
  constructor() {
30
+ // Map original variable name to new name and description. If a mapped value is not present then the original will be kept.
31
+ // Only variables present in this map are registered.
29
32
  this.variableRenameMap = new Map([
30
- ['file', 'currentFilePath'],
33
+ ['file', {
34
+ name: 'currentAbsoluteFilePath', description: nls_1.nls.localize('theia/ai/core/variable-contribution/currentAbsoluteFilePath', 'The absolute path of the \
35
+ currently opened file. Please note that most agents will expect a relative file path (relative to the current workspace).')
36
+ }],
37
+ ['selectedText', {
38
+ description: nls_1.nls.localize('theia/ai/core/variable-contribution/currentSelectedText', 'The plain text that is currently selected in the \
39
+ opened file. This excludes the information where the content is coming from. Please note that most agents will work better with a relative file path \
40
+ (relative to the current workspace).')
41
+ }],
42
+ ['currentText', {
43
+ name: 'currentFileContent', description: nls_1.nls.localize('theia/ai/core/variable-contribution/currentFileContent', 'The plain content of the \
44
+ currently opened file. This excludes the information where the content is coming from. Please note that most agents will work better with a relative file path \
45
+ (relative to the current workspace).')
46
+ }],
47
+ ['relativeFile', {
48
+ name: 'currentRelativeFilePath', description: nls_1.nls.localize('theia/ai/core/variable-contribution/currentRelativeFilePath', 'The relative path of the \
49
+ currently opened file.')
50
+ }],
51
+ ['relativeFileDirname', {
52
+ name: 'currentRelativeDirPath', description: nls_1.nls.localize('theia/ai/core/variable-contribution/currentRelativeDirPath', 'The relative path of the directory \
53
+ containing the currently opened file.')
54
+ }],
55
+ ['lineNumber', {}],
56
+ ['workspaceFolder', {}]
31
57
  ]);
32
58
  }
33
59
  registerVariables(service) {
@@ -35,20 +61,32 @@ let TheiaVariableContribution = class TheiaVariableContribution {
35
61
  // some variable contributions in Theia are done as part of the onStart, same as our AI variable contributions
36
62
  // we therefore wait for all of them to be registered before we register we map them to our own
37
63
  this.variableRegistry.getVariables().forEach(variable => {
38
- var _a;
39
- const variableName = this.variableRenameMap.has(variable.name) ? this.variableRenameMap.get(variable.name) : variable.name;
64
+ if (!this.variableRenameMap.has(variable.name)) {
65
+ return; // Do not register variables not part of the map
66
+ }
67
+ const mapping = this.variableRenameMap.get(variable.name);
68
+ const newName = (mapping.name && mapping.name.trim() !== '') ? mapping.name : variable.name;
69
+ const newDescription = (mapping.description && mapping.description.trim() !== '') ? mapping.description
70
+ : (variable.description && variable.description.trim() !== '' ? variable.description
71
+ : nls_1.nls.localize('theia/ai/core/variable-contribution/builtInVariable', 'Theia Built-in Variable'));
40
72
  service.registerResolver({
41
- id: `theia-${variable.name}`,
42
- name: variableName,
43
- description: (_a = variable.description) !== null && _a !== void 0 ? _a : nls_1.nls.localize('theia/ai/core/variable-contribution/builtInVariable', 'Theia Built-in Variable')
73
+ id: `${TheiaVariableContribution_1.THEIA_PREFIX}${variable.name}`,
74
+ name: newName,
75
+ description: newDescription
44
76
  }, this);
45
77
  });
46
78
  });
47
79
  }
48
80
  toTheiaVariable(request) {
49
- return `$\{${request.variable.name}${request.arg ? ':' + request.arg : ''}}`;
81
+ // Remove the THEIA_PREFIX if present before constructing the variable string
82
+ const variableId = request.variable.id.startsWith(TheiaVariableContribution_1.THEIA_PREFIX) ? request.variable.id.slice(TheiaVariableContribution_1.THEIA_PREFIX.length) :
83
+ request.variable.id;
84
+ return `\${${variableId}${request.arg ? ':' + request.arg : ''}}`;
50
85
  }
51
86
  async canResolve(request, context) {
87
+ if (!request.variable.id.startsWith(TheiaVariableContribution_1.THEIA_PREFIX)) {
88
+ return 0;
89
+ }
52
90
  // some variables are not resolvable without providing a specific context
53
91
  // this may be expensive but was not a problem for Theia's built-in variables
54
92
  const resolved = await this.variableResolverService.resolve(this.toTheiaVariable(request), context);
@@ -60,6 +98,7 @@ let TheiaVariableContribution = class TheiaVariableContribution {
60
98
  }
61
99
  };
62
100
  exports.TheiaVariableContribution = TheiaVariableContribution;
101
+ TheiaVariableContribution.THEIA_PREFIX = 'theia-';
63
102
  tslib_1.__decorate([
64
103
  (0, inversify_1.inject)(browser_1.VariableResolverService),
65
104
  tslib_1.__metadata("design:type", browser_1.VariableResolverService)
@@ -72,7 +111,7 @@ tslib_1.__decorate([
72
111
  (0, inversify_1.inject)(frontend_application_state_1.FrontendApplicationStateService),
73
112
  tslib_1.__metadata("design:type", frontend_application_state_1.FrontendApplicationStateService)
74
113
  ], TheiaVariableContribution.prototype, "stateService", void 0);
75
- exports.TheiaVariableContribution = TheiaVariableContribution = tslib_1.__decorate([
114
+ exports.TheiaVariableContribution = TheiaVariableContribution = TheiaVariableContribution_1 = tslib_1.__decorate([
76
115
  (0, inversify_1.injectable)()
77
116
  ], TheiaVariableContribution);
78
117
  //# sourceMappingURL=theia-variable-contribution.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"theia-variable-contribution.js","sourceRoot":"","sources":["../../src/browser/theia-variable-contribution.ts"],"names":[],"mappings":";;;;AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,mGAAqG;AACrG,oDAAiD;AACjD,4DAAkE;AAClE,kEAAiG;AAGjG;;GAEG;AAEI,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IAA/B;QAUO,sBAAiB,GAAwB,IAAI,GAAG,CAAC;YACvD,CAAC,MAAM,EAAE,iBAAiB,CAAC;SAC9B,CAAC,CAAC;IAgCP,CAAC;IA9BG,iBAAiB,CAAC,OAA0B;QACxC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YAC3D,8GAA8G;YAC9G,+FAA+F;YAC/F,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;;gBACpD,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC5H,OAAO,CAAC,gBAAgB,CAAC;oBACrB,EAAE,EAAE,SAAS,QAAQ,CAAC,IAAI,EAAE;oBAC5B,IAAI,EAAE,YAAY;oBAClB,WAAW,EAAE,MAAA,QAAQ,CAAC,WAAW,mCAAI,SAAG,CAAC,QAAQ,CAAC,qDAAqD,EAAE,yBAAyB,CAAC;iBACtI,EAAE,IAAI,CAAC,CAAC;YACb,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAES,eAAe,CAAC,OAAoC;QAC1D,OAAO,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAoC,EAAE,OAA0B;QAC7E,yEAAyE;QACzE,6EAA6E;QAC7E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;QACpG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAoC,EAAE,OAA0B;QAC1E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;QACpG,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAClF,CAAC;CACJ,CAAA;AA5CY,8DAAyB;AAEf;IADlB,IAAA,kBAAM,EAAC,iCAAuB,CAAC;sCACY,iCAAuB;0EAAC;AAGjD;IADlB,IAAA,kBAAM,EAAC,0BAAgB,CAAC;sCACY,0BAAgB;mEAAC;AAGnC;IADlB,IAAA,kBAAM,EAAC,4DAA+B,CAAC;sCACP,4DAA+B;+DAAC;oCARxD,yBAAyB;IADrC,IAAA,sBAAU,GAAE;GACA,yBAAyB,CA4CrC"}
1
+ {"version":3,"file":"theia-variable-contribution.js","sourceRoot":"","sources":["../../src/browser/theia-variable-contribution.ts"],"names":[],"mappings":"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"}
@@ -6,10 +6,12 @@ export interface LanguageModelRequestMessage {
6
6
  query: string;
7
7
  }
8
8
  export declare const isLanguageModelRequestMessage: (obj: unknown) => obj is LanguageModelRequestMessage;
9
- export type ToolRequestParametersProperties = Record<string, {
10
- type: string;
9
+ export interface ToolRequestParameterProperty {
10
+ type?: string;
11
+ anyOf?: ToolRequestParameterProperty[];
11
12
  [key: string]: unknown;
12
- }>;
13
+ }
14
+ export type ToolRequestParametersProperties = Record<string, ToolRequestParameterProperty>;
13
15
  export interface ToolRequestParameters {
14
16
  type?: 'object';
15
17
  properties: ToolRequestParametersProperties;
@@ -1 +1 @@
1
- {"version":3,"file":"language-model.d.ts","sourceRoot":"","sources":["../../src/common/language-model.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAwB,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,IAAI,GAAG,QAAQ,CAAC;AAEpD,MAAM,WAAW,2BAA2B;IACxC,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACjB;AACD,eAAO,MAAM,6BAA6B,QAAS,OAAO,uCAOrD,CAAC;AACN,MAAM,MAAM,+BAA+B,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC,CAAC;AACvG,MAAM,WAAW,qBAAqB;IAClC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,UAAU,EAAE,+BAA+B,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AACD,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,qBAAqB,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,yBAAiB,WAAW,CAAC;IACzB,SAAgB,iCAAiC,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,+BAA+B,CAWtG;IACD,SAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,qBAAqB,CAKlF;CACJ;AAED,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,2BAA2B,EAAE,CAAC;IACxC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,GAAG,wBAAwB,CAAC;IACxF,QAAQ,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CACzC;AACD,MAAM,WAAW,wBAAwB;IACrC,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;KAC1B,CAAC;CACL;AAED,MAAM,WAAW,yBAAyB;IACtC,IAAI,EAAE,MAAM,CAAC;CAChB;AACD,eAAO,MAAM,2BAA2B,QAAS,OAAO,qCACsD,CAAC;AAE/G,MAAM,WAAW,+BAA+B;IAC5C,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,QAAQ;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,2BAA2B;IACxC,MAAM,EAAE,aAAa,CAAC,+BAA+B,CAAC,CAAC;CAC1D;AACD,eAAO,MAAM,6BAA6B,QAAS,OAAO,uCACD,CAAC;AAE1D,MAAM,WAAW,2BAA2B;IACxC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACnB;AACD,eAAO,MAAM,6BAA6B,QAAS,OAAO,uCACmB,CAAC;AAE9E,MAAM,MAAM,qBAAqB,GAAG,yBAAyB,GAAG,2BAA2B,GAAG,2BAA2B,CAAC;AAM1H,eAAO,MAAM,qBAAqB,eAAkC,CAAC;AACrE,MAAM,MAAM,qBAAqB,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;AAGnE,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,sBAAsB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CAChE;AAED,yBAAiB,qBAAqB,CAAC;IACnC,SAAgB,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,qBAAqB,CAE7D;CACJ;AAED,MAAM,WAAW,aAAc,SAAQ,qBAAqB;IACxD,OAAO,CAAC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACjH;AAED,yBAAiB,aAAa,CAAC;IAC3B,SAAgB,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,aAAa,CAErD;CACJ;AAGD,UAAU,2BAA2B;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAsB,SAAQ,2BAA2B;IACtE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;AAE5E,eAAO,MAAM,qBAAqB,eAAkC,CAAC;AACrE,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,aAAa,EAAE,CAAA;KAAE,CAAC,CAAC;IAC7C,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IACjD,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC9C,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IACjE,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACzC,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IACxF,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;CAClF;AAED,qBACa,gCAAiC,YAAW,qBAAqB;IAE1E,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAE1B,SAAS,CAAC,QAAQ,CAAC,0BAA0B,EAAE,oBAAoB,CAAC,qBAAqB,CAAC,CAAC;IAE3F,SAAS,CAAC,cAAc,EAAE,aAAa,EAAE,CAAM;IAE/C,SAAS,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC;IACtC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAA+D;IAEnG,SAAS,CAAC,aAAa;gBAAyB,aAAa,EAAE;OAAM;IACrE,QAAQ;gBADwC,aAAa,EAAE;OAC3B;IAGpC,SAAS,CAAC,IAAI,IAAI,IAAI;IAetB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI;IAW1C,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAK7C,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAKtE,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI;IAYnC,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAM9E,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;CAGhG;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAM7F"}
1
+ {"version":3,"file":"language-model.d.ts","sourceRoot":"","sources":["../../src/common/language-model.ts"],"names":[],"mappings":"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"}
@@ -28,17 +28,42 @@ const isLanguageModelRequestMessage = (obj) => !!(obj && typeof obj === 'object'
28
28
  exports.isLanguageModelRequestMessage = isLanguageModelRequestMessage;
29
29
  var ToolRequest;
30
30
  (function (ToolRequest) {
31
+ function isToolRequestParameterProperty(obj) {
32
+ if (!obj || typeof obj !== 'object') {
33
+ return false;
34
+ }
35
+ const record = obj;
36
+ // Check that at least one of "type" or "anyOf" exists
37
+ if (!('type' in record) && !('anyOf' in record)) {
38
+ return false;
39
+ }
40
+ // If an "anyOf" field is present, it must be an array where each item is also a valid property.
41
+ if ('anyOf' in record) {
42
+ if (!Array.isArray(record.anyOf)) {
43
+ return false;
44
+ }
45
+ for (const item of record.anyOf) {
46
+ if (!isToolRequestParameterProperty(item)) {
47
+ return false;
48
+ }
49
+ }
50
+ }
51
+ if ('type' in record && typeof record.type !== 'string') {
52
+ return false;
53
+ }
54
+ // No further checks required for additional properties.
55
+ return true;
56
+ }
31
57
  function isToolRequestParametersProperties(obj) {
32
58
  if (!obj || typeof obj !== 'object') {
33
59
  return false;
34
60
  }
35
- ;
36
- return Object.entries(obj).every(([key, value]) => typeof key === 'string' &&
37
- value &&
38
- typeof value === 'object' &&
39
- 'type' in value &&
40
- typeof value.type === 'string' &&
41
- Object.keys(value).every(k => typeof k === 'string'));
61
+ return Object.entries(obj).every(([key, value]) => {
62
+ if (typeof key !== 'string') {
63
+ return false;
64
+ }
65
+ return isToolRequestParameterProperty(value);
66
+ });
42
67
  }
43
68
  ToolRequest.isToolRequestParametersProperties = isToolRequestParametersProperties;
44
69
  function isToolRequestParameters(obj) {
@@ -1 +1 @@
1
- {"version":3,"file":"language-model.js","sourceRoot":"","sources":["../../src/common/language-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"language-model.js","sourceRoot":"","sources":["../../src/common/language-model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tool-request-parameters.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-request-parameters.spec.d.ts","sourceRoot":"","sources":["../../src/node/tool-request-parameters.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // *****************************************************************************
4
+ // Copyright (C) 2025 EclipseSource GmbH.
5
+ //
6
+ // This program and the accompanying materials are made available under the
7
+ // terms of the Eclipse Public License v. 2.0 which is available at
8
+ // http://www.eclipse.org/legal/epl-2.0.
9
+ //
10
+ // This Source Code may also be made available under the following Secondary
11
+ // Licenses when the conditions for such availability set forth in the Eclipse
12
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
13
+ // with the GNU Classpath Exception which is available at
14
+ // https://www.gnu.org/software/classpath/license.html.
15
+ //
16
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
17
+ // *****************************************************************************
18
+ const chai_1 = require("chai");
19
+ const language_model_1 = require("../common/language-model");
20
+ describe('isToolRequestParameters', () => {
21
+ it('should return true for valid ToolRequestParameters', () => {
22
+ const validParams = {
23
+ type: 'object',
24
+ properties: {
25
+ param1: {
26
+ type: 'string'
27
+ },
28
+ param2: {
29
+ type: 'number'
30
+ }
31
+ },
32
+ required: ['param1']
33
+ };
34
+ (0, chai_1.expect)(language_model_1.ToolRequest.isToolRequestParameters(validParams)).to.be.true;
35
+ });
36
+ it('should return false for ToolRequestParameters without type or anyOf', () => {
37
+ const paramsWithoutType = {
38
+ properties: {
39
+ param1: {
40
+ description: 'string'
41
+ }
42
+ },
43
+ required: ['param1']
44
+ };
45
+ (0, chai_1.expect)(language_model_1.ToolRequest.isToolRequestParameters(paramsWithoutType)).to.be.false;
46
+ });
47
+ it('should return false for invalid ToolRequestParameters with wrong property type', () => {
48
+ const invalidParams = {
49
+ type: 'object',
50
+ properties: {
51
+ param1: {
52
+ type: 123
53
+ }
54
+ }
55
+ };
56
+ (0, chai_1.expect)(language_model_1.ToolRequest.isToolRequestParameters(invalidParams)).to.be.false;
57
+ });
58
+ it('should return false if properties is not an object', () => {
59
+ const invalidParams = {
60
+ type: 'object',
61
+ properties: 'not-an-object',
62
+ };
63
+ (0, chai_1.expect)(language_model_1.ToolRequest.isToolRequestParameters(invalidParams)).to.be.false;
64
+ });
65
+ it('should return true if required is missing', () => {
66
+ const missingRequiredParams = {
67
+ type: 'object',
68
+ properties: {
69
+ param1: {
70
+ type: 'string'
71
+ }
72
+ }
73
+ };
74
+ (0, chai_1.expect)(language_model_1.ToolRequest.isToolRequestParameters(missingRequiredParams)).to.be.true;
75
+ });
76
+ it('should return false if required is not an array', () => {
77
+ const invalidRequiredParams = {
78
+ type: 'object',
79
+ properties: {
80
+ param1: {
81
+ type: 'string'
82
+ }
83
+ },
84
+ required: 'param1'
85
+ };
86
+ (0, chai_1.expect)(language_model_1.ToolRequest.isToolRequestParameters(invalidRequiredParams)).to.be.false;
87
+ });
88
+ it('should return false if a required field is not a string', () => {
89
+ const invalidRequiredParams = {
90
+ type: 'object',
91
+ properties: {
92
+ param1: {
93
+ type: 'string'
94
+ }
95
+ },
96
+ required: [123]
97
+ };
98
+ (0, chai_1.expect)(language_model_1.ToolRequest.isToolRequestParameters(invalidRequiredParams)).to.be.false;
99
+ });
100
+ it('should validate properties with anyOf correctly', () => {
101
+ const paramsWithAnyOf = {
102
+ type: 'object',
103
+ properties: {
104
+ param1: {
105
+ anyOf: [
106
+ { type: 'string' },
107
+ { type: 'number' }
108
+ ]
109
+ }
110
+ },
111
+ required: ['param1']
112
+ };
113
+ (0, chai_1.expect)(language_model_1.ToolRequest.isToolRequestParameters(paramsWithAnyOf)).to.be.true;
114
+ });
115
+ });
116
+ //# sourceMappingURL=tool-request-parameters.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-request-parameters.spec.js","sourceRoot":"","sources":["../../src/node/tool-request-parameters.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@theia/ai-core",
3
- "version": "1.59.0-next.72+f41d8efcd",
3
+ "version": "1.59.0",
4
4
  "description": "Theia - AI Core",
5
5
  "dependencies": {
6
- "@theia/core": "1.59.0-next.72+f41d8efcd",
7
- "@theia/editor": "1.59.0-next.72+f41d8efcd",
8
- "@theia/filesystem": "1.59.0-next.72+f41d8efcd",
9
- "@theia/monaco": "1.59.0-next.72+f41d8efcd",
6
+ "@theia/core": "1.59.0",
7
+ "@theia/editor": "1.59.0",
8
+ "@theia/filesystem": "1.59.0",
9
+ "@theia/monaco": "1.59.0",
10
10
  "@theia/monaco-editor-core": "1.96.302",
11
- "@theia/output": "1.59.0-next.72+f41d8efcd",
12
- "@theia/variable-resolver": "1.59.0-next.72+f41d8efcd",
13
- "@theia/workspace": "1.59.0-next.72+f41d8efcd",
11
+ "@theia/output": "1.59.0",
12
+ "@theia/variable-resolver": "1.59.0",
13
+ "@theia/workspace": "1.59.0",
14
14
  "@types/js-yaml": "^4.0.9",
15
15
  "js-yaml": "^4.1.0",
16
16
  "minimatch": "^5.1.0",
@@ -52,10 +52,10 @@
52
52
  "watch": "theiaext watch"
53
53
  },
54
54
  "devDependencies": {
55
- "@theia/ext-scripts": "1.58.0"
55
+ "@theia/ext-scripts": "1.59.0"
56
56
  },
57
57
  "nyc": {
58
58
  "extends": "../../configs/nyc.json"
59
59
  },
60
- "gitHead": "f41d8efcd4abb79167b74bf476eafc7857e97306"
60
+ "gitHead": "21358137e41342742707f660b8e222f940a27652"
61
61
  }
@@ -24,6 +24,9 @@ import { AIVariableContribution, AIVariableResolver, AIVariableService, AIVariab
24
24
  */
25
25
  @injectable()
26
26
  export class TheiaVariableContribution implements AIVariableContribution, AIVariableResolver {
27
+
28
+ private static readonly THEIA_PREFIX = 'theia-';
29
+
27
30
  @inject(VariableResolverService)
28
31
  protected readonly variableResolverService: VariableResolverService;
29
32
 
@@ -33,8 +36,33 @@ export class TheiaVariableContribution implements AIVariableContribution, AIVari
33
36
  @inject(FrontendApplicationStateService)
34
37
  protected readonly stateService: FrontendApplicationStateService;
35
38
 
36
- protected variableRenameMap: Map<string, string> = new Map([
37
- ['file', 'currentFilePath'],
39
+ // Map original variable name to new name and description. If a mapped value is not present then the original will be kept.
40
+ // Only variables present in this map are registered.
41
+ protected variableRenameMap: Map<string, { name?: string, description?: string }> = new Map([
42
+ ['file', {
43
+ name: 'currentAbsoluteFilePath', description: nls.localize('theia/ai/core/variable-contribution/currentAbsoluteFilePath', 'The absolute path of the \
44
+ currently opened file. Please note that most agents will expect a relative file path (relative to the current workspace).')
45
+ }],
46
+ ['selectedText', {
47
+ description: nls.localize('theia/ai/core/variable-contribution/currentSelectedText', 'The plain text that is currently selected in the \
48
+ opened file. This excludes the information where the content is coming from. Please note that most agents will work better with a relative file path \
49
+ (relative to the current workspace).')
50
+ }],
51
+ ['currentText', {
52
+ name: 'currentFileContent', description: nls.localize('theia/ai/core/variable-contribution/currentFileContent', 'The plain content of the \
53
+ currently opened file. This excludes the information where the content is coming from. Please note that most agents will work better with a relative file path \
54
+ (relative to the current workspace).')
55
+ }],
56
+ ['relativeFile', {
57
+ name: 'currentRelativeFilePath', description: nls.localize('theia/ai/core/variable-contribution/currentRelativeFilePath', 'The relative path of the \
58
+ currently opened file.')
59
+ }],
60
+ ['relativeFileDirname', {
61
+ name: 'currentRelativeDirPath', description: nls.localize('theia/ai/core/variable-contribution/currentRelativeDirPath', 'The relative path of the directory \
62
+ containing the currently opened file.')
63
+ }],
64
+ ['lineNumber', {}],
65
+ ['workspaceFolder', {}]
38
66
  ]);
39
67
 
40
68
  registerVariables(service: AIVariableService): void {
@@ -42,21 +70,35 @@ export class TheiaVariableContribution implements AIVariableContribution, AIVari
42
70
  // some variable contributions in Theia are done as part of the onStart, same as our AI variable contributions
43
71
  // we therefore wait for all of them to be registered before we register we map them to our own
44
72
  this.variableRegistry.getVariables().forEach(variable => {
45
- const variableName = this.variableRenameMap.has(variable.name) ? this.variableRenameMap.get(variable.name)! : variable.name;
73
+ if (!this.variableRenameMap.has(variable.name)) {
74
+ return; // Do not register variables not part of the map
75
+ }
76
+ const mapping = this.variableRenameMap.get(variable.name)!;
77
+ const newName = (mapping.name && mapping.name.trim() !== '') ? mapping.name : variable.name;
78
+ const newDescription = (mapping.description && mapping.description.trim() !== '') ? mapping.description
79
+ : (variable.description && variable.description.trim() !== '' ? variable.description
80
+ : nls.localize('theia/ai/core/variable-contribution/builtInVariable', 'Theia Built-in Variable'));
81
+
46
82
  service.registerResolver({
47
- id: `theia-${variable.name}`,
48
- name: variableName,
49
- description: variable.description ?? nls.localize('theia/ai/core/variable-contribution/builtInVariable', 'Theia Built-in Variable')
83
+ id: `${TheiaVariableContribution.THEIA_PREFIX}${variable.name}`,
84
+ name: newName,
85
+ description: newDescription
50
86
  }, this);
51
87
  });
52
88
  });
53
89
  }
54
90
 
55
91
  protected toTheiaVariable(request: AIVariableResolutionRequest): string {
56
- return `$\{${request.variable.name}${request.arg ? ':' + request.arg : ''}}`;
92
+ // Remove the THEIA_PREFIX if present before constructing the variable string
93
+ const variableId = request.variable.id.startsWith(TheiaVariableContribution.THEIA_PREFIX) ? request.variable.id.slice(TheiaVariableContribution.THEIA_PREFIX.length) :
94
+ request.variable.id;
95
+ return `\${${variableId}${request.arg ? ':' + request.arg : ''}}`;
57
96
  }
58
97
 
59
98
  async canResolve(request: AIVariableResolutionRequest, context: AIVariableContext): Promise<number> {
99
+ if (!request.variable.id.startsWith(TheiaVariableContribution.THEIA_PREFIX)) {
100
+ return 0;
101
+ }
60
102
  // some variables are not resolvable without providing a specific context
61
103
  // this may be expensive but was not a problem for Theia's built-in variables
62
104
  const resolved = await this.variableResolverService.resolve(this.toTheiaVariable(request), context);
@@ -68,4 +110,3 @@ export class TheiaVariableContribution implements AIVariableContribution, AIVari
68
110
  return resolved ? { value: resolved, variable: request.variable } : undefined;
69
111
  }
70
112
  }
71
-
@@ -32,7 +32,14 @@ export const isLanguageModelRequestMessage = (obj: unknown): obj is LanguageMode
32
32
  'query' in obj &&
33
33
  typeof (obj as { query: unknown }).query === 'string'
34
34
  );
35
- export type ToolRequestParametersProperties = Record<string, { type: string, [key: string]: unknown }>;
35
+
36
+ export interface ToolRequestParameterProperty {
37
+ type?: string;
38
+ anyOf?: ToolRequestParameterProperty[];
39
+ [key: string]: unknown;
40
+ }
41
+
42
+ export type ToolRequestParametersProperties = Record<string, ToolRequestParameterProperty>;
36
43
  export interface ToolRequestParameters {
37
44
  type?: 'object';
38
45
  properties: ToolRequestParametersProperties;
@@ -48,17 +55,45 @@ export interface ToolRequest {
48
55
  }
49
56
 
50
57
  export namespace ToolRequest {
58
+ function isToolRequestParameterProperty(obj: unknown): obj is ToolRequestParameterProperty {
59
+ if (!obj || typeof obj !== 'object') {
60
+ return false;
61
+ }
62
+ const record = obj as Record<string, unknown>;
63
+
64
+ // Check that at least one of "type" or "anyOf" exists
65
+ if (!('type' in record) && !('anyOf' in record)) {
66
+ return false;
67
+ }
68
+
69
+ // If an "anyOf" field is present, it must be an array where each item is also a valid property.
70
+ if ('anyOf' in record) {
71
+ if (!Array.isArray(record.anyOf)) {
72
+ return false;
73
+ }
74
+ for (const item of record.anyOf) {
75
+ if (!isToolRequestParameterProperty(item)) {
76
+ return false;
77
+ }
78
+ }
79
+ }
80
+ if ('type' in record && typeof record.type !== 'string') {
81
+ return false;
82
+ }
83
+
84
+ // No further checks required for additional properties.
85
+ return true;
86
+ }
51
87
  export function isToolRequestParametersProperties(obj: unknown): obj is ToolRequestParametersProperties {
52
- if (!obj || typeof obj !== 'object') { return false; };
53
-
54
- return Object.entries(obj).every(([key, value]) =>
55
- typeof key === 'string' &&
56
- value &&
57
- typeof value === 'object' &&
58
- 'type' in value &&
59
- typeof value.type === 'string' &&
60
- Object.keys(value).every(k => typeof k === 'string')
61
- );
88
+ if (!obj || typeof obj !== 'object') {
89
+ return false;
90
+ }
91
+ return Object.entries(obj).every(([key, value]) => {
92
+ if (typeof key !== 'string') {
93
+ return false;
94
+ }
95
+ return isToolRequestParameterProperty(value);
96
+ });
62
97
  }
63
98
  export function isToolRequestParameters(obj: unknown): obj is ToolRequestParameters {
64
99
  return !!obj && typeof obj === 'object' &&
@@ -0,0 +1,121 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2025 EclipseSource GmbH.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+ import { expect } from 'chai';
17
+ import { ToolRequest } from '../common/language-model';
18
+
19
+ describe('isToolRequestParameters', () => {
20
+ it('should return true for valid ToolRequestParameters', () => {
21
+ const validParams = {
22
+ type: 'object',
23
+ properties: {
24
+ param1: {
25
+ type: 'string'
26
+ },
27
+ param2: {
28
+ type: 'number'
29
+ }
30
+ },
31
+ required: ['param1']
32
+ };
33
+ expect(ToolRequest.isToolRequestParameters(validParams)).to.be.true;
34
+ });
35
+
36
+ it('should return false for ToolRequestParameters without type or anyOf', () => {
37
+ const paramsWithoutType = {
38
+ properties: {
39
+ param1: {
40
+ description: 'string'
41
+ }
42
+ },
43
+ required: ['param1']
44
+ };
45
+ expect(ToolRequest.isToolRequestParameters(paramsWithoutType)).to.be.false;
46
+ });
47
+
48
+ it('should return false for invalid ToolRequestParameters with wrong property type', () => {
49
+ const invalidParams = {
50
+ type: 'object',
51
+ properties: {
52
+ param1: {
53
+ type: 123
54
+ }
55
+ }
56
+ };
57
+ expect(ToolRequest.isToolRequestParameters(invalidParams)).to.be.false;
58
+ });
59
+
60
+ it('should return false if properties is not an object', () => {
61
+ const invalidParams = {
62
+ type: 'object',
63
+ properties: 'not-an-object',
64
+ };
65
+ expect(ToolRequest.isToolRequestParameters(invalidParams)).to.be.false;
66
+ });
67
+
68
+ it('should return true if required is missing', () => {
69
+ const missingRequiredParams = {
70
+ type: 'object',
71
+ properties: {
72
+ param1: {
73
+ type: 'string'
74
+ }
75
+ }
76
+ };
77
+ expect(ToolRequest.isToolRequestParameters(missingRequiredParams)).to.be.true;
78
+ });
79
+
80
+ it('should return false if required is not an array', () => {
81
+ const invalidRequiredParams = {
82
+ type: 'object',
83
+ properties: {
84
+ param1: {
85
+ type: 'string'
86
+ }
87
+ },
88
+ required: 'param1'
89
+ };
90
+ expect(ToolRequest.isToolRequestParameters(invalidRequiredParams)).to.be.false;
91
+ });
92
+
93
+ it('should return false if a required field is not a string', () => {
94
+ const invalidRequiredParams = {
95
+ type: 'object',
96
+ properties: {
97
+ param1: {
98
+ type: 'string'
99
+ }
100
+ },
101
+ required: [123]
102
+ };
103
+ expect(ToolRequest.isToolRequestParameters(invalidRequiredParams)).to.be.false;
104
+ });
105
+
106
+ it('should validate properties with anyOf correctly', () => {
107
+ const paramsWithAnyOf = {
108
+ type: 'object',
109
+ properties: {
110
+ param1: {
111
+ anyOf: [
112
+ { type: 'string' },
113
+ { type: 'number' }
114
+ ]
115
+ }
116
+ },
117
+ required: ['param1']
118
+ };
119
+ expect(ToolRequest.isToolRequestParameters(paramsWithAnyOf)).to.be.true;
120
+ });
121
+ });