neuland-hub-sdk 1.0.3

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 (311) hide show
  1. package/.openapi-generator/FILES +314 -0
  2. package/.openapi-generator/VERSION +1 -0
  3. package/.openapi-generator-ignore +27 -0
  4. package/LICENSE +10 -0
  5. package/README.md +619 -0
  6. package/api.ts +32704 -0
  7. package/base.ts +62 -0
  8. package/common.ts +127 -0
  9. package/configuration.ts +121 -0
  10. package/dist/api.d.ts +17739 -0
  11. package/dist/api.js +35085 -0
  12. package/dist/base.d.ts +42 -0
  13. package/dist/base.js +67 -0
  14. package/dist/common.d.ts +34 -0
  15. package/dist/common.js +231 -0
  16. package/dist/configuration.d.ts +98 -0
  17. package/dist/configuration.js +57 -0
  18. package/dist/index.d.ts +13 -0
  19. package/dist/index.js +31 -0
  20. package/docs/AccessItemOut.md +31 -0
  21. package/docs/AccessKind.md +13 -0
  22. package/docs/Alert.md +416 -0
  23. package/docs/ApiKey.md +123 -0
  24. package/docs/ApiKeyCreateRequest.md +23 -0
  25. package/docs/ApiKeyCreateResponse.md +27 -0
  26. package/docs/ApiKeyInventoryRequest.md +21 -0
  27. package/docs/ApiKeyInventoryResponse.md +22 -0
  28. package/docs/ApiKeyInventoryRow.md +36 -0
  29. package/docs/Application.md +308 -0
  30. package/docs/ApplicationAccessIn.md +23 -0
  31. package/docs/ApplicationCatalog.md +43 -0
  32. package/docs/ApplicationCatalogIn.md +29 -0
  33. package/docs/ApplicationCatalogUpdate.md +29 -0
  34. package/docs/ApplicationGroupOut.md +31 -0
  35. package/docs/ApplicationIn.md +37 -0
  36. package/docs/ApplicationMarketplace.md +490 -0
  37. package/docs/ApplicationMemberOut.md +31 -0
  38. package/docs/Assistant.md +1269 -0
  39. package/docs/AssistantCatalog.md +53 -0
  40. package/docs/AssistantCatalogIn.md +38 -0
  41. package/docs/AssistantCatalogToolOut.md +27 -0
  42. package/docs/AssistantCatalogUpdate.md +38 -0
  43. package/docs/AssistantGroupOut.md +31 -0
  44. package/docs/AssistantGroupsIn.md +20 -0
  45. package/docs/AssistantIn.md +42 -0
  46. package/docs/AssistantInputTypeEnum.md +10 -0
  47. package/docs/AssistantLibrary.md +30 -0
  48. package/docs/AssistantMarketplace.md +644 -0
  49. package/docs/AssistantMemberGrantedViaEnum.md +10 -0
  50. package/docs/AssistantMemberOut.md +29 -0
  51. package/docs/AssistantMembersIn.md +20 -0
  52. package/docs/AssistantTool.md +26 -0
  53. package/docs/AssistantVisibilityEnum.md +10 -0
  54. package/docs/AssistantVisibilityUpdate.md +21 -0
  55. package/docs/Atlassian.md +69 -0
  56. package/docs/Auth.md +816 -0
  57. package/docs/AuthConnector.md +622 -0
  58. package/docs/Bcc.md +19 -0
  59. package/docs/BudgetAlert.md +41 -0
  60. package/docs/BudgetAlertRequest.md +23 -0
  61. package/docs/BudgetAlertUpdate.md +25 -0
  62. package/docs/BudgetForecast.md +35 -0
  63. package/docs/BudgetSummary.md +43 -0
  64. package/docs/BudgetTopUpOut.md +29 -0
  65. package/docs/BudgetTopUpRequest.md +21 -0
  66. package/docs/BulkResult.md +22 -0
  67. package/docs/CatalogIn.md +46 -0
  68. package/docs/CatalogUpdate.md +46 -0
  69. package/docs/Category.md +61 -0
  70. package/docs/CategoryOut.md +33 -0
  71. package/docs/Cc.md +19 -0
  72. package/docs/Chat.md +555 -0
  73. package/docs/ChatIn.md +34 -0
  74. package/docs/ChatInactiveDocumentOut.md +27 -0
  75. package/docs/ChatLibrary.md +30 -0
  76. package/docs/ClarificationAnswer.md +25 -0
  77. package/docs/ConnectSharedMailboxIn.md +22 -0
  78. package/docs/Connector.md +44 -0
  79. package/docs/ConnectorAuthType.md +13 -0
  80. package/docs/ConnectorConsentOut.md +22 -0
  81. package/docs/ConnectorOut.md +30 -0
  82. package/docs/ConnectorStatusOut.md +38 -0
  83. package/docs/ConnectorUpdate.md +20 -0
  84. package/docs/CostAudioPerMinute.md +19 -0
  85. package/docs/CostByModel.md +32 -0
  86. package/docs/CostBySource.md +30 -0
  87. package/docs/CostCacheCreationTokens.md +19 -0
  88. package/docs/CostCacheCreationTokensAboveTier.md +19 -0
  89. package/docs/CostCachedTokens.md +19 -0
  90. package/docs/CostCachedTokensAboveTier.md +19 -0
  91. package/docs/CostCompletionTokens.md +19 -0
  92. package/docs/CostCompletionTokens1.md +19 -0
  93. package/docs/CostCompletionTokensAboveTier.md +19 -0
  94. package/docs/CostPromptTokens.md +19 -0
  95. package/docs/CostPromptTokens1.md +19 -0
  96. package/docs/CostPromptTokensAboveTier.md +19 -0
  97. package/docs/CostTimeseriesPoint.md +26 -0
  98. package/docs/CreateOutlookDraftRequest.md +35 -0
  99. package/docs/CreateOutlookDraftResponse.md +31 -0
  100. package/docs/CredentialIn.md +20 -0
  101. package/docs/CredentialPartOut.md +26 -0
  102. package/docs/CredentialTemplateOut.md +30 -0
  103. package/docs/CustomConnector.md +231 -0
  104. package/docs/CustomConnectorCreate.md +27 -0
  105. package/docs/CustomConnectorOut.md +30 -0
  106. package/docs/CustomConnectorUpdate.md +22 -0
  107. package/docs/DataSourceCapabilities.md +25 -0
  108. package/docs/DataSourceDriveModel.md +31 -0
  109. package/docs/DataSourceFolderModel.md +21 -0
  110. package/docs/DataSourceItemModel.md +47 -0
  111. package/docs/DataSourceSiteModel.md +31 -0
  112. package/docs/DataSourceUserModel.md +29 -0
  113. package/docs/DateWindowRequest.md +23 -0
  114. package/docs/Default.md +240 -0
  115. package/docs/DirectFileUrl.md +22 -0
  116. package/docs/Document.md +533 -0
  117. package/docs/DocumentMetrics.md +26 -0
  118. package/docs/DocumentTextOut.md +21 -0
  119. package/docs/DocumentUsageRequest.md +31 -0
  120. package/docs/DocumentUsageResponse.md +32 -0
  121. package/docs/DocumentUsageRow.md +30 -0
  122. package/docs/Dropbox.md +458 -0
  123. package/docs/EmailCatalogOut.md +25 -0
  124. package/docs/EmailSpec.md +27 -0
  125. package/docs/EmailTemplateKey.md +35 -0
  126. package/docs/Example.md +19 -0
  127. package/docs/FeatureFlag.md +194 -0
  128. package/docs/FeatureFlagOut.md +28 -0
  129. package/docs/FeatureFlagSetIn.md +20 -0
  130. package/docs/File.md +125 -0
  131. package/docs/FormField.md +33 -0
  132. package/docs/FormFieldTypeEnum.md +20 -0
  133. package/docs/GoogleDrive.md +458 -0
  134. package/docs/GroupAppAccessIn.md +23 -0
  135. package/docs/GroupIn.md +27 -0
  136. package/docs/GroupSyncOut.md +25 -0
  137. package/docs/HTTPValidationError.md +20 -0
  138. package/docs/IdleAssistant.md +24 -0
  139. package/docs/Invitation.md +293 -0
  140. package/docs/InvitationIn.md +28 -0
  141. package/docs/InvitationOut.md +44 -0
  142. package/docs/LLMConnectionTestIn.md +43 -0
  143. package/docs/LLMConnectionTestOut.md +25 -0
  144. package/docs/LLMSettingsIn.md +68 -0
  145. package/docs/LLMSettingsUpdate.md +68 -0
  146. package/docs/Library.md +437 -0
  147. package/docs/LibraryIn.md +22 -0
  148. package/docs/LibraryMemberBulkDelete.md +20 -0
  149. package/docs/LibraryMemberBulkIn.md +20 -0
  150. package/docs/LibraryMemberIn.md +22 -0
  151. package/docs/LibraryMemberOut.md +29 -0
  152. package/docs/LibraryUpdateIn.md +22 -0
  153. package/docs/LicenseUtilization.md +26 -0
  154. package/docs/Llm.md +540 -0
  155. package/docs/LlmCatalog.md +188 -0
  156. package/docs/LlmSetting.md +331 -0
  157. package/docs/LocationInner.md +18 -0
  158. package/docs/MarketplaceCatalogStateEnum.md +11 -0
  159. package/docs/MarketplaceCatalogStateUpdate.md +21 -0
  160. package/docs/Message.md +602 -0
  161. package/docs/MessageDetailOut.md +57 -0
  162. package/docs/MessageFileOut.md +26 -0
  163. package/docs/MessageIn.md +50 -0
  164. package/docs/MessageSubmitOut.md +65 -0
  165. package/docs/MessageTokensResponse.md +32 -0
  166. package/docs/MessageTurnOut.md +22 -0
  167. package/docs/ModelDelta.md +26 -0
  168. package/docs/ModelTierEnum.md +13 -0
  169. package/docs/MoversResponse.md +34 -0
  170. package/docs/NeulandAssistantsTaggingOut.md +29 -0
  171. package/docs/NeulandMarketplaceAssistantSchemasTaggingOut.md +29 -0
  172. package/docs/Nextcloud.md +458 -0
  173. package/docs/OAuth2ProviderEnum.md +35 -0
  174. package/docs/OAuthClient.md +40 -0
  175. package/docs/OAuthClientUpdate.md +26 -0
  176. package/docs/OneDrive.md +458 -0
  177. package/docs/OutputFormat.md +20 -0
  178. package/docs/PasswordResetIn.md +22 -0
  179. package/docs/PasswordResetRequestIn.md +20 -0
  180. package/docs/PlanStatus.md +19 -0
  181. package/docs/Project.md +615 -0
  182. package/docs/ProjectIn.md +24 -0
  183. package/docs/ProjectLibrary.md +30 -0
  184. package/docs/ProjectMember.md +28 -0
  185. package/docs/ProjectMemberBulkDelete.md +20 -0
  186. package/docs/ProjectMemberBulkIn.md +20 -0
  187. package/docs/ProjectMemberIn.md +22 -0
  188. package/docs/Prompt.md +248 -0
  189. package/docs/PromptIn.md +26 -0
  190. package/docs/PromptOptimizeIn.md +22 -0
  191. package/docs/PromptOptimizeOut.md +20 -0
  192. package/docs/Query.md +123 -0
  193. package/docs/RateableTypeEnum.md +13 -0
  194. package/docs/Rating.md +129 -0
  195. package/docs/RatingIn.md +27 -0
  196. package/docs/ReasoningEffortEnum.md +13 -0
  197. package/docs/RephraseStyleEnum.md +12 -0
  198. package/docs/ResourceAccess.md +197 -0
  199. package/docs/ResponseAuthGetEntraGroupsValue.md +18 -0
  200. package/docs/ResponseDropboxListRoots.md +18 -0
  201. package/docs/ResponseGoogledriveListRoots.md +18 -0
  202. package/docs/ResponseNextcloudListRoots.md +18 -0
  203. package/docs/ResponseOnedriveListRoots.md +18 -0
  204. package/docs/ResponseSharepointv1ListRoots.md +18 -0
  205. package/docs/ResumeIn.md +26 -0
  206. package/docs/Role.md +495 -0
  207. package/docs/RoleIn.md +39 -0
  208. package/docs/RoleUpdateIn.md +36 -0
  209. package/docs/RunCreateOut.md +22 -0
  210. package/docs/SecretUpdateIn.md +20 -0
  211. package/docs/SendEmailRequest.md +35 -0
  212. package/docs/SendEmailResponse.md +27 -0
  213. package/docs/SetAtlassianCloudIdRequest.md +21 -0
  214. package/docs/Settings.md +183 -0
  215. package/docs/SettingsIn.md +52 -0
  216. package/docs/SharedMailbox.md +29 -0
  217. package/docs/SharedMailboxCandidateOut.md +26 -0
  218. package/docs/SharedMailboxListOut.md +20 -0
  219. package/docs/SharedMailboxSearchOut.md +20 -0
  220. package/docs/Sharepoint.md +402 -0
  221. package/docs/SharepointDriveModel.md +31 -0
  222. package/docs/SharepointFolderModel.md +21 -0
  223. package/docs/SharepointItemModel.md +47 -0
  224. package/docs/SharepointSiteModel.md +31 -0
  225. package/docs/SharepointUserModel.md +29 -0
  226. package/docs/SharepointV1.md +458 -0
  227. package/docs/SsoExchangeIn.md +22 -0
  228. package/docs/SsoInitOut.md +24 -0
  229. package/docs/SsoResolveOut.md +22 -0
  230. package/docs/Storage.md +66 -0
  231. package/docs/StreamTokenOut.md +20 -0
  232. package/docs/SubtenantUsageResponse.md +26 -0
  233. package/docs/SubtenantUsageRow.md +34 -0
  234. package/docs/System.md +122 -0
  235. package/docs/SystemSettings.md +44 -0
  236. package/docs/SystemSettingsUpdate.md +41 -0
  237. package/docs/Tag.md +187 -0
  238. package/docs/TagIn.md +20 -0
  239. package/docs/TaggableTypeEnum.md +12 -0
  240. package/docs/Tagging.md +32 -0
  241. package/docs/Tarif.md +189 -0
  242. package/docs/TarifIn.md +39 -0
  243. package/docs/TarifStatusEnum.md +11 -0
  244. package/docs/Template.md +243 -0
  245. package/docs/TemplateIn.md +31 -0
  246. package/docs/TemplateOut.md +35 -0
  247. package/docs/TemplateUpdate.md +31 -0
  248. package/docs/Tenant.md +1189 -0
  249. package/docs/TenantIn.md +68 -0
  250. package/docs/TenantLLM.md +33 -0
  251. package/docs/TenantModelBulkIn.md +22 -0
  252. package/docs/TenantModelIn.md +20 -0
  253. package/docs/TenantOAuthClientIn.md +32 -0
  254. package/docs/TenantOAuthClientOut.md +36 -0
  255. package/docs/TenantOAuthClientUpdate.md +30 -0
  256. package/docs/TenantOut.md +76 -0
  257. package/docs/TenantThemeOut.md +46 -0
  258. package/docs/TenantUpdateIn.md +66 -0
  259. package/docs/ThemeModeEnum.md +12 -0
  260. package/docs/TimeseriesPoint.md +23 -0
  261. package/docs/TimeseriesResponse.md +23 -0
  262. package/docs/To.md +19 -0
  263. package/docs/To1.md +19 -0
  264. package/docs/TokenOut.md +22 -0
  265. package/docs/TokenTimeseriesPerModel.md +23 -0
  266. package/docs/TokenTimeseriesPoint.md +23 -0
  267. package/docs/TokensPerModel.md +31 -0
  268. package/docs/TokensTimeseriesResponse.md +31 -0
  269. package/docs/Tool.md +188 -0
  270. package/docs/ToolAction.md +355 -0
  271. package/docs/ToolCallOut.md +38 -0
  272. package/docs/ToolCallProgressStepOut.md +24 -0
  273. package/docs/ToolCreate.md +27 -0
  274. package/docs/ToolOut.md +35 -0
  275. package/docs/ToolUpdate.md +27 -0
  276. package/docs/Transcription.md +114 -0
  277. package/docs/TranscriptionOut.md +27 -0
  278. package/docs/TranscriptionSegment.md +27 -0
  279. package/docs/Translation.md +20 -0
  280. package/docs/UsageCostRequest.md +30 -0
  281. package/docs/UsageCostResponse.md +40 -0
  282. package/docs/UsageMetrics.md +28 -0
  283. package/docs/UsageQueryRequest.md +41 -0
  284. package/docs/UsageQueryResponse.md +32 -0
  285. package/docs/UsageRequest.md +25 -0
  286. package/docs/UsageRow.md +32 -0
  287. package/docs/User.md +786 -0
  288. package/docs/UserAccessOut.md +31 -0
  289. package/docs/UserGrantIn.md +21 -0
  290. package/docs/UserGrantOut.md +27 -0
  291. package/docs/UserGroup.md +39 -0
  292. package/docs/UserGroupMember.md +29 -0
  293. package/docs/UserGroupSource.md +11 -0
  294. package/docs/UserIn.md +34 -0
  295. package/docs/UserMeOut.md +51 -0
  296. package/docs/UserOut.md +48 -0
  297. package/docs/UserPreferenceOut.md +28 -0
  298. package/docs/UserPreferenceUpdateIn.md +24 -0
  299. package/docs/UserUpdateIn.md +34 -0
  300. package/docs/UtilizationRequest.md +24 -0
  301. package/docs/UtilizationResponse.md +28 -0
  302. package/docs/ValidationError.md +28 -0
  303. package/docs/VariableSpec.md +27 -0
  304. package/docs/Workflow.md +411 -0
  305. package/docs/WorkflowChatIn.md +20 -0
  306. package/docs/WorkflowChatOut.md +26 -0
  307. package/docs/WorkflowIn.md +30 -0
  308. package/docs/WorkflowUpdateIn.md +28 -0
  309. package/index.ts +18 -0
  310. package/package.json +31 -0
  311. package/tsconfig.json +21 -0
package/dist/base.d.ts ADDED
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Neuland AI Hub API
3
+ * The **Neuland AI Hub API** powers chat, retrieval-augmented document Q&A, assistants, and the surrounding workspace, tenant, and integration features of the platform. Most endpoints require authentication. Obtain a token via the **Auth** endpoints (or use an **ApiKey**) and send it as a bearer token in the `Authorization` header. Endpoints are grouped by resource — see the tag groups below.
4
+ *
5
+ * The version of the OpenAPI document: 0.1.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import type { Configuration } from './configuration';
13
+ import type { AxiosInstance, RawAxiosRequestConfig } from 'axios';
14
+ export declare const BASE_PATH: string;
15
+ export declare const COLLECTION_FORMATS: {
16
+ csv: string;
17
+ ssv: string;
18
+ tsv: string;
19
+ pipes: string;
20
+ };
21
+ export interface RequestArgs {
22
+ url: string;
23
+ options: RawAxiosRequestConfig;
24
+ }
25
+ export declare class BaseAPI {
26
+ protected basePath: string;
27
+ protected axios: AxiosInstance;
28
+ protected configuration: Configuration | undefined;
29
+ constructor(configuration?: Configuration, basePath?: string, axios?: AxiosInstance);
30
+ }
31
+ export declare class RequiredError extends Error {
32
+ field: string;
33
+ constructor(field: string, msg?: string);
34
+ }
35
+ interface ServerMap {
36
+ [key: string]: {
37
+ url: string;
38
+ description: string;
39
+ }[];
40
+ }
41
+ export declare const operationServerMap: ServerMap;
42
+ export {};
package/dist/base.js ADDED
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * Neuland AI Hub API
6
+ * The **Neuland AI Hub API** powers chat, retrieval-augmented document Q&A, assistants, and the surrounding workspace, tenant, and integration features of the platform. Most endpoints require authentication. Obtain a token via the **Auth** endpoints (or use an **ApiKey**) and send it as a bearer token in the `Authorization` header. Endpoints are grouped by resource — see the tag groups below.
7
+ *
8
+ * The version of the OpenAPI document: 0.1.0
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ var __extends = (this && this.__extends) || (function () {
16
+ var extendStatics = function (d, b) {
17
+ extendStatics = Object.setPrototypeOf ||
18
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
19
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
20
+ return extendStatics(d, b);
21
+ };
22
+ return function (d, b) {
23
+ if (typeof b !== "function" && b !== null)
24
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
25
+ extendStatics(d, b);
26
+ function __() { this.constructor = d; }
27
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
28
+ };
29
+ })();
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ exports.operationServerMap = exports.RequiredError = exports.BaseAPI = exports.COLLECTION_FORMATS = exports.BASE_PATH = void 0;
32
+ var axios_1 = require("axios");
33
+ exports.BASE_PATH = "http://localhost".replace(/\/+$/, "");
34
+ exports.COLLECTION_FORMATS = {
35
+ csv: ",",
36
+ ssv: " ",
37
+ tsv: "\t",
38
+ pipes: "|",
39
+ };
40
+ var BaseAPI = /** @class */ (function () {
41
+ function BaseAPI(configuration, basePath, axios) {
42
+ if (basePath === void 0) { basePath = exports.BASE_PATH; }
43
+ if (axios === void 0) { axios = axios_1.default; }
44
+ var _a;
45
+ this.basePath = basePath;
46
+ this.axios = axios;
47
+ if (configuration) {
48
+ this.configuration = configuration;
49
+ this.basePath = (_a = configuration.basePath) !== null && _a !== void 0 ? _a : basePath;
50
+ }
51
+ }
52
+ return BaseAPI;
53
+ }());
54
+ exports.BaseAPI = BaseAPI;
55
+ ;
56
+ var RequiredError = /** @class */ (function (_super) {
57
+ __extends(RequiredError, _super);
58
+ function RequiredError(field, msg) {
59
+ var _this = _super.call(this, msg) || this;
60
+ _this.field = field;
61
+ _this.name = "RequiredError";
62
+ return _this;
63
+ }
64
+ return RequiredError;
65
+ }(Error));
66
+ exports.RequiredError = RequiredError;
67
+ exports.operationServerMap = {};
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Neuland AI Hub API
3
+ * The **Neuland AI Hub API** powers chat, retrieval-augmented document Q&A, assistants, and the surrounding workspace, tenant, and integration features of the platform. Most endpoints require authentication. Obtain a token via the **Auth** endpoints (or use an **ApiKey**) and send it as a bearer token in the `Authorization` header. Endpoints are grouped by resource — see the tag groups below.
4
+ *
5
+ * The version of the OpenAPI document: 0.1.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import type { Configuration } from "./configuration";
13
+ import type { RequestArgs } from "./base";
14
+ import type { AxiosInstance, AxiosResponse } from 'axios';
15
+ export declare const DUMMY_BASE_URL = "https://example.com";
16
+ /**
17
+ *
18
+ * @throws {RequiredError}
19
+ */
20
+ export declare const assertParamExists: (functionName: string, paramName: string, paramValue: unknown) => void;
21
+ export declare const setApiKeyToObject: (object: any, keyParamName: string, configuration?: Configuration) => Promise<void>;
22
+ export declare const setBasicAuthToObject: (object: any, configuration?: Configuration) => void;
23
+ export declare const setBearerAuthToObject: (object: any, configuration?: Configuration) => Promise<void>;
24
+ export declare const setOAuthToObject: (object: any, name: string, scopes: string[], configuration?: Configuration) => Promise<void>;
25
+ export declare const setSearchParams: (url: URL, ...objects: any[]) => void;
26
+ /**
27
+ * JSON serialization helper function which replaces instances of unserializable types with serializable ones.
28
+ * This function will run for every key-value pair encountered by JSON.stringify while traversing an object.
29
+ * Converting a set to a string will return an empty object, so an intermediate conversion to an array is required.
30
+ */
31
+ export declare const replaceWithSerializableTypeIfNeeded: (key: string, value: any) => any;
32
+ export declare const serializeDataIfNeeded: (value: any, requestOptions: any, configuration?: Configuration) => any;
33
+ export declare const toPathString: (url: URL) => string;
34
+ export declare const createRequestFunction: (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) => <T = unknown, R = AxiosResponse<T>>(axios?: AxiosInstance, basePath?: string) => Promise<R>;
package/dist/common.js ADDED
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * Neuland AI Hub API
6
+ * The **Neuland AI Hub API** powers chat, retrieval-augmented document Q&A, assistants, and the surrounding workspace, tenant, and integration features of the platform. Most endpoints require authentication. Obtain a token via the **Auth** endpoints (or use an **ApiKey**) and send it as a bearer token in the `Authorization` header. Endpoints are grouped by resource — see the tag groups below.
7
+ *
8
+ * The version of the OpenAPI document: 0.1.0
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ var __assign = (this && this.__assign) || function () {
16
+ __assign = Object.assign || function(t) {
17
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
18
+ s = arguments[i];
19
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20
+ t[p] = s[p];
21
+ }
22
+ return t;
23
+ };
24
+ return __assign.apply(this, arguments);
25
+ };
26
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
27
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
28
+ return new (P || (P = Promise))(function (resolve, reject) {
29
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
30
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
31
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
32
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
33
+ });
34
+ };
35
+ var __generator = (this && this.__generator) || function (thisArg, body) {
36
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
37
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
38
+ function verb(n) { return function (v) { return step([n, v]); }; }
39
+ function step(op) {
40
+ if (f) throw new TypeError("Generator is already executing.");
41
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
42
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
43
+ if (y = 0, t) op = [op[0] & 2, t.value];
44
+ switch (op[0]) {
45
+ case 0: case 1: t = op; break;
46
+ case 4: _.label++; return { value: op[1], done: false };
47
+ case 5: _.label++; y = op[1]; op = [0]; continue;
48
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
49
+ default:
50
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
51
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
52
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
53
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
54
+ if (t[2]) _.ops.pop();
55
+ _.trys.pop(); continue;
56
+ }
57
+ op = body.call(thisArg, _);
58
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
59
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
60
+ }
61
+ };
62
+ Object.defineProperty(exports, "__esModule", { value: true });
63
+ exports.createRequestFunction = exports.toPathString = exports.serializeDataIfNeeded = exports.replaceWithSerializableTypeIfNeeded = exports.setSearchParams = exports.setOAuthToObject = exports.setBearerAuthToObject = exports.setBasicAuthToObject = exports.setApiKeyToObject = exports.assertParamExists = exports.DUMMY_BASE_URL = void 0;
64
+ var base_1 = require("./base");
65
+ exports.DUMMY_BASE_URL = 'https://example.com';
66
+ /**
67
+ *
68
+ * @throws {RequiredError}
69
+ */
70
+ var assertParamExists = function (functionName, paramName, paramValue) {
71
+ if (paramValue === null || paramValue === undefined) {
72
+ throw new base_1.RequiredError(paramName, "Required parameter ".concat(paramName, " was null or undefined when calling ").concat(functionName, "."));
73
+ }
74
+ };
75
+ exports.assertParamExists = assertParamExists;
76
+ var setApiKeyToObject = function (object, keyParamName, configuration) {
77
+ return __awaiter(this, void 0, void 0, function () {
78
+ var localVarApiKeyValue, _a;
79
+ return __generator(this, function (_b) {
80
+ switch (_b.label) {
81
+ case 0:
82
+ if (!(configuration && configuration.apiKey)) return [3 /*break*/, 5];
83
+ if (!(typeof configuration.apiKey === 'function')) return [3 /*break*/, 2];
84
+ return [4 /*yield*/, configuration.apiKey(keyParamName)];
85
+ case 1:
86
+ _a = _b.sent();
87
+ return [3 /*break*/, 4];
88
+ case 2: return [4 /*yield*/, configuration.apiKey];
89
+ case 3:
90
+ _a = _b.sent();
91
+ _b.label = 4;
92
+ case 4:
93
+ localVarApiKeyValue = _a;
94
+ object[keyParamName] = localVarApiKeyValue;
95
+ _b.label = 5;
96
+ case 5: return [2 /*return*/];
97
+ }
98
+ });
99
+ });
100
+ };
101
+ exports.setApiKeyToObject = setApiKeyToObject;
102
+ var setBasicAuthToObject = function (object, configuration) {
103
+ if (configuration && (configuration.username || configuration.password)) {
104
+ object["auth"] = { username: configuration.username, password: configuration.password };
105
+ }
106
+ };
107
+ exports.setBasicAuthToObject = setBasicAuthToObject;
108
+ var setBearerAuthToObject = function (object, configuration) {
109
+ return __awaiter(this, void 0, void 0, function () {
110
+ var accessToken, _a;
111
+ return __generator(this, function (_b) {
112
+ switch (_b.label) {
113
+ case 0:
114
+ if (!(configuration && configuration.accessToken)) return [3 /*break*/, 5];
115
+ if (!(typeof configuration.accessToken === 'function')) return [3 /*break*/, 2];
116
+ return [4 /*yield*/, configuration.accessToken()];
117
+ case 1:
118
+ _a = _b.sent();
119
+ return [3 /*break*/, 4];
120
+ case 2: return [4 /*yield*/, configuration.accessToken];
121
+ case 3:
122
+ _a = _b.sent();
123
+ _b.label = 4;
124
+ case 4:
125
+ accessToken = _a;
126
+ object["Authorization"] = "Bearer " + accessToken;
127
+ _b.label = 5;
128
+ case 5: return [2 /*return*/];
129
+ }
130
+ });
131
+ });
132
+ };
133
+ exports.setBearerAuthToObject = setBearerAuthToObject;
134
+ var setOAuthToObject = function (object, name, scopes, configuration) {
135
+ return __awaiter(this, void 0, void 0, function () {
136
+ var localVarAccessTokenValue, _a;
137
+ return __generator(this, function (_b) {
138
+ switch (_b.label) {
139
+ case 0:
140
+ if (!(configuration && configuration.accessToken)) return [3 /*break*/, 5];
141
+ if (!(typeof configuration.accessToken === 'function')) return [3 /*break*/, 2];
142
+ return [4 /*yield*/, configuration.accessToken(name, scopes)];
143
+ case 1:
144
+ _a = _b.sent();
145
+ return [3 /*break*/, 4];
146
+ case 2: return [4 /*yield*/, configuration.accessToken];
147
+ case 3:
148
+ _a = _b.sent();
149
+ _b.label = 4;
150
+ case 4:
151
+ localVarAccessTokenValue = _a;
152
+ object["Authorization"] = "Bearer " + localVarAccessTokenValue;
153
+ _b.label = 5;
154
+ case 5: return [2 /*return*/];
155
+ }
156
+ });
157
+ });
158
+ };
159
+ exports.setOAuthToObject = setOAuthToObject;
160
+ function setFlattenedQueryParams(urlSearchParams, parameter, key) {
161
+ if (key === void 0) { key = ""; }
162
+ if (parameter == null)
163
+ return;
164
+ if (typeof parameter === "object") {
165
+ if (Array.isArray(parameter) || parameter instanceof Set) {
166
+ parameter.forEach(function (item) { return setFlattenedQueryParams(urlSearchParams, item, key); });
167
+ }
168
+ else {
169
+ Object.keys(parameter).forEach(function (currentKey) {
170
+ return setFlattenedQueryParams(urlSearchParams, parameter[currentKey], "".concat(key).concat(key !== '' ? '.' : '').concat(currentKey));
171
+ });
172
+ }
173
+ }
174
+ else {
175
+ if (urlSearchParams.has(key)) {
176
+ urlSearchParams.append(key, parameter);
177
+ }
178
+ else {
179
+ urlSearchParams.set(key, parameter);
180
+ }
181
+ }
182
+ }
183
+ var setSearchParams = function (url) {
184
+ var objects = [];
185
+ for (var _i = 1; _i < arguments.length; _i++) {
186
+ objects[_i - 1] = arguments[_i];
187
+ }
188
+ var searchParams = new URLSearchParams(url.search);
189
+ setFlattenedQueryParams(searchParams, objects);
190
+ url.search = searchParams.toString();
191
+ };
192
+ exports.setSearchParams = setSearchParams;
193
+ /**
194
+ * JSON serialization helper function which replaces instances of unserializable types with serializable ones.
195
+ * This function will run for every key-value pair encountered by JSON.stringify while traversing an object.
196
+ * Converting a set to a string will return an empty object, so an intermediate conversion to an array is required.
197
+ */
198
+ // @ts-ignore
199
+ var replaceWithSerializableTypeIfNeeded = function (key, value) {
200
+ if (value instanceof Set) {
201
+ return Array.from(value);
202
+ }
203
+ else {
204
+ return value;
205
+ }
206
+ };
207
+ exports.replaceWithSerializableTypeIfNeeded = replaceWithSerializableTypeIfNeeded;
208
+ var serializeDataIfNeeded = function (value, requestOptions, configuration) {
209
+ var nonString = typeof value !== 'string';
210
+ var needsSerialization = nonString && configuration && configuration.isJsonMime
211
+ ? configuration.isJsonMime(requestOptions.headers['Content-Type'])
212
+ : nonString;
213
+ return needsSerialization
214
+ ? JSON.stringify(value !== undefined ? value : {}, exports.replaceWithSerializableTypeIfNeeded)
215
+ : (value || "");
216
+ };
217
+ exports.serializeDataIfNeeded = serializeDataIfNeeded;
218
+ var toPathString = function (url) {
219
+ return url.pathname + url.search + url.hash;
220
+ };
221
+ exports.toPathString = toPathString;
222
+ var createRequestFunction = function (axiosArgs, globalAxios, BASE_PATH, configuration) {
223
+ return function (axios, basePath) {
224
+ var _a;
225
+ if (axios === void 0) { axios = globalAxios; }
226
+ if (basePath === void 0) { basePath = BASE_PATH; }
227
+ var axiosRequestArgs = __assign(__assign({}, axiosArgs.options), { url: (axios.defaults.baseURL ? '' : (_a = configuration === null || configuration === void 0 ? void 0 : configuration.basePath) !== null && _a !== void 0 ? _a : basePath) + axiosArgs.url });
228
+ return axios.request(axiosRequestArgs);
229
+ };
230
+ };
231
+ exports.createRequestFunction = createRequestFunction;
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Neuland AI Hub API
3
+ * The **Neuland AI Hub API** powers chat, retrieval-augmented document Q&A, assistants, and the surrounding workspace, tenant, and integration features of the platform. Most endpoints require authentication. Obtain a token via the **Auth** endpoints (or use an **ApiKey**) and send it as a bearer token in the `Authorization` header. Endpoints are grouped by resource — see the tag groups below.
4
+ *
5
+ * The version of the OpenAPI document: 0.1.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ interface AWSv4Configuration {
13
+ options?: {
14
+ region?: string;
15
+ service?: string;
16
+ };
17
+ credentials?: {
18
+ accessKeyId?: string;
19
+ secretAccessKey?: string;
20
+ sessionToken?: string;
21
+ };
22
+ }
23
+ export interface ConfigurationParameters {
24
+ apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
25
+ username?: string;
26
+ password?: string;
27
+ accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
28
+ awsv4?: AWSv4Configuration;
29
+ basePath?: string;
30
+ serverIndex?: number;
31
+ baseOptions?: any;
32
+ formDataCtor?: new () => any;
33
+ }
34
+ export declare class Configuration {
35
+ /**
36
+ * parameter for apiKey security
37
+ * @param name security name
38
+ */
39
+ apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
40
+ /**
41
+ * parameter for basic security
42
+ */
43
+ username?: string;
44
+ /**
45
+ * parameter for basic security
46
+ */
47
+ password?: string;
48
+ /**
49
+ * parameter for oauth2 security
50
+ * @param name security name
51
+ * @param scopes oauth2 scope
52
+ */
53
+ accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
54
+ /**
55
+ * parameter for aws4 signature security
56
+ * @param {Object} AWS4Signature - AWS4 Signature security
57
+ * @param {string} options.region - aws region
58
+ * @param {string} options.service - name of the service.
59
+ * @param {string} credentials.accessKeyId - aws access key id
60
+ * @param {string} credentials.secretAccessKey - aws access key
61
+ * @param {string} credentials.sessionToken - aws session token
62
+ * @memberof Configuration
63
+ */
64
+ awsv4?: AWSv4Configuration;
65
+ /**
66
+ * override base path
67
+ */
68
+ basePath?: string;
69
+ /**
70
+ * override server index
71
+ */
72
+ serverIndex?: number;
73
+ /**
74
+ * base options for axios calls
75
+ */
76
+ baseOptions?: any;
77
+ /**
78
+ * The FormData constructor that will be used to create multipart form data
79
+ * requests. You can inject this here so that execution environments that
80
+ * do not support the FormData class can still run the generated client.
81
+ *
82
+ * @type {new () => FormData}
83
+ */
84
+ formDataCtor?: new () => any;
85
+ constructor(param?: ConfigurationParameters);
86
+ /**
87
+ * Check if the given MIME is a JSON MIME.
88
+ * JSON MIME examples:
89
+ * application/json
90
+ * application/json; charset=UTF8
91
+ * APPLICATION/JSON
92
+ * application/vnd.company+json
93
+ * @param mime - MIME (Multipurpose Internet Mail Extensions)
94
+ * @return True if the given MIME is JSON, false otherwise.
95
+ */
96
+ isJsonMime(mime: string): boolean;
97
+ }
98
+ export {};
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /**
4
+ * Neuland AI Hub API
5
+ * The **Neuland AI Hub API** powers chat, retrieval-augmented document Q&A, assistants, and the surrounding workspace, tenant, and integration features of the platform. Most endpoints require authentication. Obtain a token via the **Auth** endpoints (or use an **ApiKey**) and send it as a bearer token in the `Authorization` header. Endpoints are grouped by resource — see the tag groups below.
6
+ *
7
+ * The version of the OpenAPI document: 0.1.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ var __assign = (this && this.__assign) || function () {
15
+ __assign = Object.assign || function(t) {
16
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
17
+ s = arguments[i];
18
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19
+ t[p] = s[p];
20
+ }
21
+ return t;
22
+ };
23
+ return __assign.apply(this, arguments);
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.Configuration = void 0;
27
+ var Configuration = /** @class */ (function () {
28
+ function Configuration(param) {
29
+ if (param === void 0) { param = {}; }
30
+ var _a;
31
+ this.apiKey = param.apiKey;
32
+ this.username = param.username;
33
+ this.password = param.password;
34
+ this.accessToken = param.accessToken;
35
+ this.awsv4 = param.awsv4;
36
+ this.basePath = param.basePath;
37
+ this.serverIndex = param.serverIndex;
38
+ this.baseOptions = __assign(__assign({}, param.baseOptions), { headers: __assign({}, (_a = param.baseOptions) === null || _a === void 0 ? void 0 : _a.headers) });
39
+ this.formDataCtor = param.formDataCtor;
40
+ }
41
+ /**
42
+ * Check if the given MIME is a JSON MIME.
43
+ * JSON MIME examples:
44
+ * application/json
45
+ * application/json; charset=UTF8
46
+ * APPLICATION/JSON
47
+ * application/vnd.company+json
48
+ * @param mime - MIME (Multipurpose Internet Mail Extensions)
49
+ * @return True if the given MIME is JSON, false otherwise.
50
+ */
51
+ Configuration.prototype.isJsonMime = function (mime) {
52
+ var jsonMime = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i');
53
+ return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');
54
+ };
55
+ return Configuration;
56
+ }());
57
+ exports.Configuration = Configuration;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Neuland AI Hub API
3
+ * The **Neuland AI Hub API** powers chat, retrieval-augmented document Q&A, assistants, and the surrounding workspace, tenant, and integration features of the platform. Most endpoints require authentication. Obtain a token via the **Auth** endpoints (or use an **ApiKey**) and send it as a bearer token in the `Authorization` header. Endpoints are grouped by resource — see the tag groups below.
4
+ *
5
+ * The version of the OpenAPI document: 0.1.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ export * from "./api";
13
+ export * from "./configuration";
package/dist/index.js ADDED
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * Neuland AI Hub API
6
+ * The **Neuland AI Hub API** powers chat, retrieval-augmented document Q&A, assistants, and the surrounding workspace, tenant, and integration features of the platform. Most endpoints require authentication. Obtain a token via the **Auth** endpoints (or use an **ApiKey**) and send it as a bearer token in the `Authorization` header. Endpoints are grouped by resource — see the tag groups below.
7
+ *
8
+ * The version of the OpenAPI document: 0.1.0
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ var desc = Object.getOwnPropertyDescriptor(m, k);
18
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
19
+ desc = { enumerable: true, get: function() { return m[k]; } };
20
+ }
21
+ Object.defineProperty(o, k2, desc);
22
+ }) : (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ o[k2] = m[k];
25
+ }));
26
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
27
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ __exportStar(require("./api"), exports);
31
+ __exportStar(require("./configuration"), exports);
@@ -0,0 +1,31 @@
1
+ # AccessItemOut
2
+
3
+ One item a user may use, and what put it there.
4
+
5
+ ## Properties
6
+
7
+ Name | Type | Description | Notes
8
+ ------------ | ------------- | ------------- | -------------
9
+ **item_id** | **number** | Internal id of the model, tool or connector. | [default to undefined]
10
+ **item_public_id** | **string** | Public id of the model, tool or connector. | [default to undefined]
11
+ **name** | **string** | Name of the model, tool or connector. | [default to undefined]
12
+ **roles** | **Array&lt;string | null&gt;** | Names of the user\&#39;s roles that grant this item. | [optional] [default to undefined]
13
+ **granted_directly** | **boolean** | Whether the user holds an unrevoked direct grant for it. | [optional] [default to false]
14
+ **always_available** | **boolean** | Whether the item reaches every user whatever their roles say. Only default tools do — they are bound in code for every chat — so an empty &#x60;roles&#x60; with no direct grant is expected rather than unexplained. | [optional] [default to false]
15
+
16
+ ## Example
17
+
18
+ ```typescript
19
+ import { AccessItemOut } from 'neuland-hub-sdk';
20
+
21
+ const instance: AccessItemOut = {
22
+ item_id,
23
+ item_public_id,
24
+ name,
25
+ roles,
26
+ granted_directly,
27
+ always_available,
28
+ };
29
+ ```
30
+
31
+ [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
@@ -0,0 +1,13 @@
1
+ # AccessKind
2
+
3
+ The resource kinds access is resolved for.
4
+
5
+ ## Enum
6
+
7
+ * `model` (value: `'model'`)
8
+
9
+ * `tool` (value: `'tool'`)
10
+
11
+ * `connector` (value: `'connector'`)
12
+
13
+ [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)