File size: 1,988 Bytes
a992a28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73

export enum ToolType {
  REST_API = 'REST_API',
  CLI = 'CLI',
  DATABASE = 'DATABASE',
  CUSTOM = 'CUSTOM',
  UTILITY = 'UTILITY',
  CALCULATOR = 'CALCULATOR',
  CONVERTER = 'CONVERTER'
}

export enum ParameterType {
  STRING = 'str',
  INTEGER = 'int',
  FLOAT = 'float',
  BOOLEAN = 'bool',
  LIST = 'list',
  DICTIONARY = 'dict'
}

export interface ParameterDefinition {
  id: string;
  name: string;
  type: ParameterType;
  description: string;
  required: boolean;
}

export interface FunctionDefinition {
  id: string;
  name: string;
  description: string;
  parameters: ParameterDefinition[];
  returnType: ParameterType;
  returnDescription: string;
}

export interface ToolDefinition {
  name: string;
  type: ToolType;
  dependencies: string;
  functions: FunctionDefinition[];
}

export interface GeneratedCode {
  setupPy: string;
  serverPy: string;
  settingsJson: string;
  geminiMd: string;
  examplesMd: string;
}

// Экспортируем для использования в AI промпте
export const initialFunctionForPrompt: Omit<FunctionDefinition, 'id'> = {
  name: 'example_function',
  description: 'Краткое описание того, что делает эта функция.',
  parameters: [
    {
      id: 'param-id-1', // id здесь для примера, в реальности он генерируется
      name: 'example_param',
      type: ParameterType.STRING,
      description: 'Описание параметра.',
      required: true,
    },
  ],
  returnType: ParameterType.STRING,
  returnDescription: 'Описание возвращаемого значения.',
};