dochub-sdk 0.1.381 → 0.1.383

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
@@ -24,11 +24,13 @@ export * from './metamodel/index';
24
24
  export * from './interfaces/ai';
25
25
  export * from './interfaces/explainer';
26
26
  export * from './interfaces/libraries';
27
+ export * from './interfaces/shared';
27
28
 
28
29
  export * from './schemas/basetypes';
29
30
  export * from './schemas/dochub-yaml';
30
31
 
31
32
  export * from './plugins/manifest';
33
+ export * from './plugins/module';
32
34
 
33
35
  export * from './environments/variables';
34
36
 
package/interfaces/ai.ts CHANGED
@@ -50,6 +50,24 @@ export interface IDocHubAIRequest {
50
50
  next(question: string): Promise<void>;
51
51
  }
52
52
 
53
+ export type DocHubAIAskAttachmentFileContent = string;
54
+
55
+
56
+ /**
57
+ * Метаданные файла
58
+ */
59
+ export interface DocHubAIAskAttachmentFile {
60
+ url: URL; // Ссылка на файл, либо base64 кодированный файл
61
+ source?: URL; // Источник информации для задач AI при указании ссылок на источники
62
+ description?: string; // Контекстное описание файла
63
+ }
64
+
65
+ /**
66
+ * Структура прикрепляемых файлов к запросу
67
+ */
68
+
69
+ export type DocHubAIAskAttachment = DocHubAIAskAttachmentFile[];
70
+
53
71
  /**
54
72
  * Опции выполнения AI запроса
55
73
  */
@@ -66,6 +84,10 @@ export interface IDocHubAIAskOptions {
66
84
  * Признак отображения внутреннего диалога IDE и AI-агента
67
85
  */
68
86
  trace?: boolean;
87
+ /**
88
+ * Файлы прикрепляемые к запросу
89
+ */
90
+ attachment?: DocHubAIAskAttachment;
69
91
  }
70
92
 
71
93
  /**
@@ -88,6 +110,10 @@ export interface IDocHubAIDriver {
88
110
  * @returns - Запрос к AI
89
111
  */
90
112
  ask: DocHubAskFunction;
113
+ /**
114
+ * Возвращает информацию о способностях AI
115
+ */
116
+ getCapabilities(): Promise<IDocHubAICapabilities>;
91
117
  }
92
118
 
93
119
  export interface IDocHubAITextPartition {
@@ -187,6 +213,37 @@ export interface IDocHubComposerProvider {
187
213
  fetchCommands(): Promise<IDocHubAIComposerCommand[]>;
188
214
  }
189
215
 
216
+ export enum IDocHubAICapabilityID {
217
+ text = 'text',
218
+ attachment = 'attachment',
219
+ contextWindow = 'context-window'
220
+ }
221
+
222
+ export type DocHubAIAttachmentFileContentType = string;
223
+
224
+ /**
225
+ * Метаинформация о возможностях AI-агента
226
+ */
227
+ export interface IDocHubAICapabilities {
228
+ /**
229
+ * Текстовое резюме от AI
230
+ */
231
+ description?: string;
232
+ /**
233
+ * Способность обрабатывать прикрепленные файлы к сообщению
234
+ */
235
+ [IDocHubAICapabilityID.attachment]?: DocHubAIAttachmentFileContentType[];
236
+ /**
237
+ * Способность воспринимать текс в запросе
238
+ */
239
+ [IDocHubAICapabilityID.text]?: boolean;
240
+ /**
241
+ * Размер контекстного окна
242
+ */
243
+ [IDocHubAICapabilityID.contextWindow]?: number;
244
+ }
245
+
246
+
190
247
  /**
191
248
  * Интерфейс AI ассистента
192
249
  */
@@ -2,32 +2,25 @@ export type IDocHubLibrary = any;
2
2
  export type DocHubLibraryID = string;
3
3
  export type DocHubLibraryVersion = string;
4
4
  export type DocHubLibraryRequireVersion = string;
5
+ export type DocHubLibraryExportVersion = string;
6
+
5
7
  /**
6
- * Интерфейсы публикуемых плагинами библиотек
8
+ * Декларирует публикуемые плагином библиотеки
7
9
  */
8
- export interface IDocHubLibraryExportProfile {
9
- /**
10
- * Если библиотека имеет исходники для сборки, здесь указывается путь к ним.
11
- * Ссылка на исходники позволяет при разработке обращаться к декларациям интерфейсов и функций библиотек,
12
- * а также, при необходимости внедрять библиотеки непосредственно в плагины.
13
- */
14
- srcPath?: string;
15
- /**
16
- * Реализация загрузки модуля.
17
- * В результате вызова данной функции необходимо вернуть ссылку на загруженный модуль.
18
- */
19
- import(): Promise<IDocHubLibrary>;
20
- /**
21
- * Версия библиотеки
22
- */
23
- version: DocHubLibraryVersion;
10
+ export interface IDocHubLibrariesExport {
11
+ [id: DocHubLibraryID]: DocHubLibraryExportVersion;
24
12
  }
25
13
 
26
14
  /**
27
- * Декларирует публикуемые плагином библиотеки
15
+ * Ручка для разрешения зависимости от библиотеки. Должна возвращать объект module.
28
16
  */
29
- export interface IDocHubLibrariesExport {
30
- [id: DocHubLibraryID]: IDocHubLibraryExportProfile;
17
+ export type IDocHubLibraryResolver = (library: DocHubLibraryID) => Promise<IDocHubLibrary>;
18
+
19
+ /**
20
+ * Интерфейс доступа к общим библиотекам, которые предоставляет плагин
21
+ */
22
+ export interface IDocHubSharedLibraries {
23
+ resolve: IDocHubLibraryResolver;
31
24
  }
32
25
 
33
26
  /**
@@ -41,17 +34,6 @@ export interface IDocHubLibraryRequires {
41
34
  * Интерфейс управления библиотеками
42
35
  */
43
36
  export interface IDocHubLibraries {
44
- /**
45
- * Публикует библиотеки для всех желающих
46
- * @param libraries - структура экспорта
47
- */
48
- export(libraries: IDocHubLibrariesExport);
49
- /**
50
- * При вызове будет ожидать загрузки необходимых библиотек.
51
- * Если загрузка хотя бы одной библиотеки не удастся, возникнет ошибка.
52
- * @param libraries - список необходимых библиотек
53
- */
54
- requires(libraries: IDocHubLibraryRequires): Promise<void>;
55
37
  /**
56
38
  * Проверяет доступна ли библиотека.
57
39
  * Возвращает структуру где для каждой библиотеки указывается true если она доступна, либо false
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Интерфейс для экспорта общих ресурсов из плагинов
3
+ */
4
+ import { IDocHubLibraryResolver } from "./libraries";
5
+
6
+ /**
7
+ * Экспортный метод общих ресурсов плагина
8
+ */
9
+ export type DocHubSharedResources = () => Promise<IDocHubSharedResources>;
10
+
11
+ /**
12
+ * Интерфейс общих ресурсов поставляемый плагином
13
+ */
14
+ export interface IDocHubSharedResources {
15
+ /**
16
+ * Возвращает объект module для экспортируемой библиотеки
17
+ */
18
+ libraries?: {
19
+ resolve: IDocHubLibraryResolver;
20
+ }
21
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dochub-sdk",
3
- "version": "0.1.381",
3
+ "version": "0.1.383",
4
4
  "description": "The DocHub System Development Kit.",
5
5
  "private": false,
6
6
  "main": "index.ts",
@@ -1,3 +1,4 @@
1
+ import { IDocHubLibrariesExport, IDocHubLibraryRequires } from "../interfaces/libraries";
1
2
  import { DocHubJSONSchema, IDocHubJSONSchemaAllOf, IDocHubJSONSchemaAnyOf, IDocHubJSONSchemaArray, IDocHubJSONSchemaBase, IDocHubJSONSchemaBoolean, IDocHubJSONSchemaInteger, IDocHubJSONSchemaNumber, IDocHubJSONSchemaObject, IDocHubJSONSchemaOneOf, IDocHubJSONSchemaString } from "../schemas/basetypes";
2
3
 
3
4
  /**
@@ -68,8 +69,10 @@ export interface IDocHubPluginManifest {
68
69
  }
69
70
  // Свойства приложения
70
71
  app_props: IDocHubManifestProps;
71
- // Подключаемые плагины
72
- app_plugins?: IDocHubManifestPlugins;
73
72
  // Переменные среды исполнения
74
73
  app_environments?: IDocHubManifestEnvironments;
74
+ // Зависимость от общих библиотек в DocHub
75
+ DocHubDependencies?: IDocHubLibraryRequires;
76
+ // Экспортируемые общие библиотеки в DocHub
77
+ DocHubExport?: IDocHubLibrariesExport;
75
78
  }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Декларирует интерфейс, который должен реализовать js-модуль плагина
3
+ */
4
+
5
+ import { IDocHubSharedResources } from "../interfaces/shared";
6
+
7
+ /**
8
+ * Функция инициализации плагина в режиме frontend
9
+ */
10
+ export type DocHubFrontendBootstrap = () => Promise<void>;
11
+
12
+ /**
13
+ * Функция инициализации плагина в режиме backend
14
+ */
15
+ export type DocHubBackendBootstrap = () => Promise<void>;
16
+
17
+ /**
18
+ * Загрузочный интерфейс плагина
19
+ */
20
+ export interface IDocHubPluginBootstrap {
21
+ frontend?: DocHubFrontendBootstrap;
22
+ backend?: DocHubBackendBootstrap;
23
+ }
24
+
25
+ /**
26
+ * Интерфейс, который обязан реализовать плагин
27
+ */
28
+ export interface IDocHubPlugin {
29
+ bootstrap?: IDocHubPluginBootstrap;
30
+ shared?: IDocHubSharedResources;
31
+ }