dochub-sdk 0.1.386 → 0.1.388

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.
package/index.ts CHANGED
@@ -27,7 +27,9 @@ export * from './interfaces/libraries';
27
27
  export * from './interfaces/shared';
28
28
 
29
29
  export * from './schemas/basetypes';
30
+ export * from './schemas/formats';
30
31
  export * from './schemas/dochub-yaml';
32
+ export * from './schemas/schema';
31
33
 
32
34
  export * from './plugins/manifest';
33
35
  export * from './plugins/module';
package/interfaces/ai.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { description } from '@front/lang/en/validators';
2
1
  import { DocHubJSONSchema } from '../schemas/basetypes';
3
2
  import { DataLakePath } from './datalake';
4
3
  import { DocHubEditorContext } from './editors';
4
+ import { DocHubLangString } from './lang';
5
5
 
6
6
  /**
7
7
  * События AI
@@ -10,11 +10,15 @@ export enum DocHubAIEvents {
10
10
  /**
11
11
  * Глобальные события
12
12
  */
13
- setDefaultDriver = '$ai-change-default-driver', // Драйвер AI по умолчанию изменился
13
+ changedDefaultDriver = '$ai-changed-default-driver', // Драйвер AI по умолчанию изменился
14
+ /**
15
+ * Изменены настройки AI-агента
16
+ */
17
+ changedDriverConfig = '$ai-changed-driver-config', // Изменилась конфигурация драйвера
14
18
  /**
15
19
  * Локальные события
16
20
  */
17
- registeredDriver = '#ai-registered-driver', // Зарегистрирован драйвер AI
21
+ registeredDriver = '#ai-registered-driver', // Зарегистрирован драйвер AI
18
22
  };
19
23
 
20
24
  /**
@@ -61,7 +65,7 @@ export interface IDocHubAIRequest {
61
65
  * Отправляет следующий запрос в AI
62
66
  * @returns
63
67
  */
64
- next(question: string): Promise<void>;
68
+ next(question: string, attachment?: DocHubAIAskAttachment): Promise<void>;
65
69
  }
66
70
 
67
71
  export type DocHubAIAskAttachmentFileContent = string;
@@ -233,16 +237,16 @@ export enum DocHubAICapabilityID {
233
237
  contextWindow = 'context-window'
234
238
  }
235
239
 
236
- export type DocHubAIAttachmentFileContentType = string;
240
+ export type DocHubAIAttachmentFileContentType = string; // Тип файла в формате расширения (.png) или в формате MIME type (image/*)
237
241
 
238
242
  /**
239
243
  * Метаинформация о возможностях AI-агента
240
244
  */
241
245
  export interface IDocHubAICapabilities {
242
246
  /**
243
- * Текстовое резюме от AI
247
+ * Текстовое резюме от AI о себе
244
248
  */
245
- description?: string;
249
+ description?: DocHubLangString;
246
250
  /**
247
251
  * Способность обрабатывать прикрепленные файлы к сообщению
248
252
  */
@@ -257,7 +261,6 @@ export interface IDocHubAICapabilities {
257
261
  [DocHubAICapabilityID.contextWindow]?: number;
258
262
  }
259
263
 
260
-
261
264
  /**
262
265
  * Интерфейс AI ассистента
263
266
  */
@@ -2,6 +2,8 @@ import { IProtocolResponseOptions, IDocHubProtocolResponse, IDocHubResourceVersi
2
2
  import { DocHubDataSetProfileSource, DocHubJSONataQuery, IDocHubDataSetProfile } from './jsonata';
3
3
  import { DocHubUITargetWindow } from './ui';
4
4
  import { DocHubJSONSchema } from '../schemas/basetypes';
5
+ import { DocHubJSONSchemaFormat, DocHubJSONSchemaFormatCollection, DocHubJSONSchemaFormatController } from '../schemas/formats';
6
+ import { IDocHubDataLakeSchema } from '../schemas/schema';
5
7
 
6
8
  export enum DataLakeChange {
7
9
  update = 'update', // Обновление данных по указанному пути
@@ -539,11 +541,16 @@ export interface IDocHubDataLake {
539
541
  * @param file - Полный путь к файлу. Например: README.md
540
542
  * @returns - Тип контента. Например: text/markdown
541
543
  */
542
- getContentTypeForFile(file: string): string | null;
544
+ getContentTypeForFile(uri: string): string | null;
545
+
546
+ /**********************************************************************
547
+ * Работа с схемой данных DataLake
548
+ *********************************************************************/
549
+
543
550
 
544
551
  /**
545
- * Возвращает JSONSchema DataLake
552
+ * Возвращает интерфейс доступа к схеме данных DataLake
546
553
  */
547
- fetchSchema(): Promise<DocHubJSONSchema>;
554
+ schema(): Promise<IDocHubDataLakeSchema>;
548
555
  }
549
556
 
@@ -1,3 +1,16 @@
1
+ /**
2
+ * Строковое значение для нескольких языков
3
+ */
4
+ export type DocHubLangStringMultilang = {
5
+ [lang: string]: string;
6
+ }
7
+
8
+ /**
9
+ * Строковое значение для организации мультиязычности.
10
+ * Если имеет простой тип string - предполагается, что строка на английском.
11
+ */
12
+ export type DocHubLangString = string | DocHubLangStringMultilang;
13
+
1
14
  /**
2
15
  * События языковых пакетов
3
16
  */
@@ -52,4 +65,5 @@ export interface IDocHubLang {
52
65
  * @returns - Возвращает действующий язык
53
66
  */
54
67
  switchTo(lang: string): Promise<string>;
68
+
55
69
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dochub-sdk",
3
- "version": "0.1.386",
3
+ "version": "0.1.388",
4
4
  "description": "The DocHub System Development Kit.",
5
5
  "private": false,
6
6
  "main": "index.ts",
@@ -108,6 +108,7 @@ export interface IDocHubJSONSchemaObject extends IDocHubJSONSchemaBase {
108
108
  examples?: any[];
109
109
  }
110
110
 
111
+
111
112
  export type DocHubJSONSchema =
112
113
  IDocHubJSONSchemaArray
113
114
  | IDocHubJSONSchemaString
@@ -118,4 +119,3 @@ export type DocHubJSONSchema =
118
119
  | IDocHubJSONSchemaAllOf
119
120
  | IDocHubJSONSchemaOneOf
120
121
  | IDocHubJSONSchemaAnyOf;
121
-
@@ -0,0 +1,80 @@
1
+ import { DocHubJSONSchema } from "./basetypes";
2
+
3
+ /**
4
+ * Идентификатор применяемого формата
5
+ */
6
+ export type DocHubJSONSchemaFormat = string;
7
+
8
+ /**
9
+ * Идентификатор подсказки
10
+ */
11
+ export type DocHubJSONSchemaFormatSuggestId = string;
12
+
13
+ /**
14
+ * Структура подсказки
15
+ */
16
+ export interface DocHubJSONSchemaFormatSuggest {
17
+ // Идентификатор
18
+ id: DocHubJSONSchemaFormatSuggestId;
19
+ // Значение, которое будет вставлено в структуру, при выборе подсказки
20
+ value: any;
21
+ // Краткое название для вывода в списке. Если поля нет, берется value
22
+ title?: string;
23
+ // Описание элемента подсказки
24
+ description?: string;
25
+ }
26
+
27
+ /**
28
+ * Метод получения следующей порции подсказок
29
+ * @param limit - лимит на количество подсказок
30
+ */
31
+ export type DocHubJSONSchemaFormatSuggestFetch = (limit?: number) => Promise<DocHubJSONSchemaFormatSuggests>;
32
+
33
+ /**
34
+ * Список подсказок.
35
+ * Если элемент списка является функцией, это является промисом на вставку элементов списка при ее вызове
36
+ */
37
+ export type DocHubJSONSchemaFormatSuggests = (DocHubJSONSchemaFormatSuggest | DocHubJSONSchemaFormatSuggestFetch)[];
38
+
39
+ export interface DocHubJSONSchemaFormatControllerParams {
40
+ // Значение
41
+ value: any;
42
+ // Схема, которая применяется к значению
43
+ valueSchema: DocHubJSONSchema;
44
+ // Контекст в котором происходит валидация значения
45
+ context?: any;
46
+ // Схема контекста
47
+ contextSchema?: DocHubJSONSchema;
48
+ }
49
+
50
+ /**
51
+ * Интерфейс для кастомного формата
52
+ */
53
+ export interface DocHubJSONSchemaFormatController {
54
+ /**
55
+ * Валидатор значения
56
+ * @returns - true если все в порядке, иначе false
57
+ */
58
+ validate(params: DocHubJSONSchemaFormatControllerParams): Promise<boolean>;
59
+ /**
60
+ * Возвращает список простых подсказок в виде списка
61
+ * @param params - параметры для выбора
62
+ * @returns - список подсказок
63
+ */
64
+ suggests?: (params: DocHubJSONSchemaFormatControllerParams) => Promise<DocHubJSONSchemaFormatSuggests>;
65
+ /**
66
+ * Если метод определен, его вызов должен открыть специальный UI,
67
+ * который позволит пользователю осуществить корректный ввод или выбор значения
68
+ * @param params - параметры для выбора
69
+ * @returns - значение для заполнения поля
70
+ */
71
+ input?: (params: DocHubJSONSchemaFormatControllerParams) => Promise<any>;
72
+ }
73
+
74
+ /**
75
+ * Коллекция форматов
76
+ */
77
+ export interface DocHubJSONSchemaFormatCollection {
78
+ [id: DocHubJSONSchemaFormat]: DocHubJSONSchemaFormatController;
79
+ }
80
+
@@ -0,0 +1,29 @@
1
+ import { DocHubJSONSchema } from "./basetypes";
2
+ import {
3
+ DocHubJSONSchemaFormat,
4
+ DocHubJSONSchemaFormatCollection,
5
+ DocHubJSONSchemaFormatController
6
+ } from "./formats";
7
+
8
+ /**
9
+ * Схема данных DataLake
10
+ */
11
+ export interface IDocHubDataLakeSchema {
12
+ /**
13
+ * Возвращает JSONSchema DataLake
14
+ * @param path - Путь к необходимому сегменту схемы
15
+ */
16
+ fetch(): Promise<DocHubJSONSchema>;
17
+
18
+ /**
19
+ * Регистрирует кастомный формат для валидации JSONSchema и реализации подсказок в редакторах
20
+ * @param format - Идентификатор формата
21
+ * @param controller - Контроллер обрабатывающий запросы к формату
22
+ */
23
+ registerSchemaFormat(format: DocHubJSONSchemaFormat, controller: DocHubJSONSchemaFormatController);
24
+
25
+ /**
26
+ * Возвращает коллекцию доступных форматов
27
+ */
28
+ fetchSchemaFormats(): Promise<DocHubJSONSchemaFormatCollection>;
29
+ }