@picteus/extension-sdk 0.14.0 → 0.15.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.
Files changed (231) hide show
  1. package/dist/intents.d.ts +64 -1
  2. package/dist/intents.js +6 -0
  3. package/dist/picteus-ws-client/apis/AdministrationApi.d.ts +1 -1
  4. package/dist/picteus-ws-client/apis/AdministrationApi.js +1 -1
  5. package/dist/picteus-ws-client/apis/ApiSecretApi.d.ts +1 -1
  6. package/dist/picteus-ws-client/apis/ApiSecretApi.js +1 -1
  7. package/dist/picteus-ws-client/apis/CollectionApi.d.ts +1 -1
  8. package/dist/picteus-ws-client/apis/CollectionApi.js +1 -1
  9. package/dist/picteus-ws-client/apis/ExtensionApi.d.ts +35 -10
  10. package/dist/picteus-ws-client/apis/ExtensionApi.js +38 -10
  11. package/dist/picteus-ws-client/apis/ImageApi.d.ts +87 -33
  12. package/dist/picteus-ws-client/apis/ImageApi.js +99 -32
  13. package/dist/picteus-ws-client/apis/ImageAttachmentApi.d.ts +1 -1
  14. package/dist/picteus-ws-client/apis/ImageAttachmentApi.js +1 -1
  15. package/dist/picteus-ws-client/apis/MiscellaneousApi.d.ts +1 -1
  16. package/dist/picteus-ws-client/apis/MiscellaneousApi.js +1 -1
  17. package/dist/picteus-ws-client/apis/RepositoryApi.d.ts +1 -1
  18. package/dist/picteus-ws-client/apis/RepositoryApi.js +1 -1
  19. package/dist/picteus-ws-client/apis/SettingsApi.d.ts +1 -1
  20. package/dist/picteus-ws-client/apis/SettingsApi.js +1 -1
  21. package/dist/picteus-ws-client/models/ApiSecret.d.ts +1 -1
  22. package/dist/picteus-ws-client/models/ApiSecret.js +1 -1
  23. package/dist/picteus-ws-client/models/ApiSecretSummary.d.ts +1 -1
  24. package/dist/picteus-ws-client/models/ApiSecretSummary.js +1 -1
  25. package/dist/picteus-ws-client/models/ApiSecretType.d.ts +1 -1
  26. package/dist/picteus-ws-client/models/ApiSecretType.js +1 -1
  27. package/dist/picteus-ws-client/models/ApplicationConfiguration.d.ts +1 -1
  28. package/dist/picteus-ws-client/models/ApplicationConfiguration.js +1 -1
  29. package/dist/picteus-ws-client/models/ApplicationMetadata.d.ts +1 -1
  30. package/dist/picteus-ws-client/models/ApplicationMetadata.js +1 -1
  31. package/dist/picteus-ws-client/models/ApplicationMetadataItem.d.ts +1 -1
  32. package/dist/picteus-ws-client/models/ApplicationMetadataItem.js +1 -1
  33. package/dist/picteus-ws-client/models/ApplicationMetadataItemValue.d.ts +1 -1
  34. package/dist/picteus-ws-client/models/ApplicationMetadataItemValue.js +1 -1
  35. package/dist/picteus-ws-client/models/ApplicationSettings.d.ts +1 -1
  36. package/dist/picteus-ws-client/models/ApplicationSettings.js +1 -1
  37. package/dist/picteus-ws-client/models/Collection.d.ts +1 -1
  38. package/dist/picteus-ws-client/models/Collection.js +1 -1
  39. package/dist/picteus-ws-client/models/CommandEntity.d.ts +1 -1
  40. package/dist/picteus-ws-client/models/CommandEntity.js +1 -1
  41. package/dist/picteus-ws-client/models/ComputedImageFormat.d.ts +1 -1
  42. package/dist/picteus-ws-client/models/ComputedImageFormat.js +1 -1
  43. package/dist/picteus-ws-client/models/ConfigurationCapability.d.ts +1 -1
  44. package/dist/picteus-ws-client/models/ConfigurationCapability.js +1 -1
  45. package/dist/picteus-ws-client/models/ConfigurationExtensionCommand.d.ts +1 -1
  46. package/dist/picteus-ws-client/models/ConfigurationExtensionCommand.js +1 -1
  47. package/dist/picteus-ws-client/models/ConstantsRegistry.d.ts +1 -1
  48. package/dist/picteus-ws-client/models/ConstantsRegistry.js +1 -1
  49. package/dist/picteus-ws-client/models/Dates.d.ts +1 -1
  50. package/dist/picteus-ws-client/models/Dates.js +1 -1
  51. package/dist/picteus-ws-client/models/Extension.d.ts +1 -1
  52. package/dist/picteus-ws-client/models/Extension.js +1 -1
  53. package/dist/picteus-ws-client/models/ExtensionActivity.d.ts +1 -1
  54. package/dist/picteus-ws-client/models/ExtensionActivity.js +1 -1
  55. package/dist/picteus-ws-client/models/ExtensionActivityKind.d.ts +1 -1
  56. package/dist/picteus-ws-client/models/ExtensionActivityKind.js +1 -1
  57. package/dist/picteus-ws-client/models/ExtensionAndManual.d.ts +1 -1
  58. package/dist/picteus-ws-client/models/ExtensionAndManual.js +1 -1
  59. package/dist/picteus-ws-client/models/ExtensionCategory.d.ts +1 -1
  60. package/dist/picteus-ws-client/models/ExtensionCategory.js +1 -1
  61. package/dist/picteus-ws-client/models/ExtensionGenerationOptions.d.ts +1 -1
  62. package/dist/picteus-ws-client/models/ExtensionGenerationOptions.js +1 -1
  63. package/dist/picteus-ws-client/models/ExtensionIdImageEmbeddingName.d.ts +1 -1
  64. package/dist/picteus-ws-client/models/ExtensionIdImageEmbeddingName.js +1 -1
  65. package/dist/picteus-ws-client/models/ExtensionImageEmbeddings.d.ts +1 -1
  66. package/dist/picteus-ws-client/models/ExtensionImageEmbeddings.js +1 -1
  67. package/dist/picteus-ws-client/models/ExtensionImageFeature.d.ts +1 -1
  68. package/dist/picteus-ws-client/models/ExtensionImageFeature.js +1 -1
  69. package/dist/picteus-ws-client/models/ExtensionImageFeatureName.d.ts +1 -1
  70. package/dist/picteus-ws-client/models/ExtensionImageFeatureName.js +1 -1
  71. package/dist/picteus-ws-client/models/ExtensionImageFeaturesAttribute.d.ts +1 -1
  72. package/dist/picteus-ws-client/models/ExtensionImageFeaturesAttribute.js +1 -1
  73. package/dist/picteus-ws-client/models/ExtensionImageTag.d.ts +1 -1
  74. package/dist/picteus-ws-client/models/ExtensionImageTag.js +1 -1
  75. package/dist/picteus-ws-client/models/ExtensionImageTagsAttribute.d.ts +1 -1
  76. package/dist/picteus-ws-client/models/ExtensionImageTagsAttribute.js +1 -1
  77. package/dist/picteus-ws-client/models/ExtensionManual.d.ts +1 -1
  78. package/dist/picteus-ws-client/models/ExtensionManual.js +1 -1
  79. package/dist/picteus-ws-client/models/ExtensionSettings.d.ts +1 -1
  80. package/dist/picteus-ws-client/models/ExtensionSettings.js +1 -1
  81. package/dist/picteus-ws-client/models/ExtensionStatus.d.ts +1 -1
  82. package/dist/picteus-ws-client/models/ExtensionStatus.js +1 -1
  83. package/dist/picteus-ws-client/models/ExtensionsConfiguration.d.ts +1 -1
  84. package/dist/picteus-ws-client/models/ExtensionsConfiguration.js +1 -1
  85. package/dist/picteus-ws-client/models/GenerationRecipe.d.ts +1 -1
  86. package/dist/picteus-ws-client/models/GenerationRecipe.js +1 -1
  87. package/dist/picteus-ws-client/models/GenerationRecipePrompt.d.ts +1 -1
  88. package/dist/picteus-ws-client/models/GenerationRecipePrompt.js +1 -1
  89. package/dist/picteus-ws-client/models/Image.d.ts +1 -1
  90. package/dist/picteus-ws-client/models/Image.js +1 -1
  91. package/dist/picteus-ws-client/models/ImageDimensions.d.ts +1 -1
  92. package/dist/picteus-ws-client/models/ImageDimensions.js +1 -1
  93. package/dist/picteus-ws-client/models/ImageDistance.d.ts +1 -1
  94. package/dist/picteus-ws-client/models/ImageDistance.js +1 -1
  95. package/dist/picteus-ws-client/models/ImageEmbedding.d.ts +1 -1
  96. package/dist/picteus-ws-client/models/ImageEmbedding.js +1 -1
  97. package/dist/picteus-ws-client/models/ImageFeature.d.ts +1 -1
  98. package/dist/picteus-ws-client/models/ImageFeature.js +1 -1
  99. package/dist/picteus-ws-client/models/ImageFeatureFormat.d.ts +1 -1
  100. package/dist/picteus-ws-client/models/ImageFeatureFormat.js +1 -1
  101. package/dist/picteus-ws-client/models/ImageFeatureNullValue.d.ts +1 -1
  102. package/dist/picteus-ws-client/models/ImageFeatureNullValue.js +1 -1
  103. package/dist/picteus-ws-client/models/ImageFeatureType.d.ts +1 -1
  104. package/dist/picteus-ws-client/models/ImageFeatureType.js +1 -1
  105. package/dist/picteus-ws-client/models/ImageFeatureValue.d.ts +1 -1
  106. package/dist/picteus-ws-client/models/ImageFeatureValue.js +1 -1
  107. package/dist/picteus-ws-client/models/ImageFormat.d.ts +2 -2
  108. package/dist/picteus-ws-client/models/ImageFormat.js +2 -2
  109. package/dist/picteus-ws-client/models/ImageMediaUrl.d.ts +1 -1
  110. package/dist/picteus-ws-client/models/ImageMediaUrl.js +1 -1
  111. package/dist/picteus-ws-client/models/ImageMetadata.d.ts +1 -1
  112. package/dist/picteus-ws-client/models/ImageMetadata.js +1 -1
  113. package/dist/picteus-ws-client/models/ImageResizeRender.d.ts +1 -1
  114. package/dist/picteus-ws-client/models/ImageResizeRender.js +1 -1
  115. package/dist/picteus-ws-client/models/ImageSummary.d.ts +1 -1
  116. package/dist/picteus-ws-client/models/ImageSummary.js +1 -1
  117. package/dist/picteus-ws-client/models/InstructionsPrompt.d.ts +1 -1
  118. package/dist/picteus-ws-client/models/InstructionsPrompt.js +1 -1
  119. package/dist/picteus-ws-client/models/Manifest.d.ts +1 -1
  120. package/dist/picteus-ws-client/models/Manifest.js +1 -1
  121. package/dist/picteus-ws-client/models/ManifestCapability.d.ts +1 -1
  122. package/dist/picteus-ws-client/models/ManifestCapability.js +1 -1
  123. package/dist/picteus-ws-client/models/ManifestCapabilityId.d.ts +1 -1
  124. package/dist/picteus-ws-client/models/ManifestCapabilityId.js +1 -1
  125. package/dist/picteus-ws-client/models/ManifestEvent.d.ts +3 -1
  126. package/dist/picteus-ws-client/models/ManifestEvent.js +3 -1
  127. package/dist/picteus-ws-client/models/ManifestExecution.d.ts +1 -1
  128. package/dist/picteus-ws-client/models/ManifestExecution.js +1 -1
  129. package/dist/picteus-ws-client/models/ManifestExtensionCommand.d.ts +1 -1
  130. package/dist/picteus-ws-client/models/ManifestExtensionCommand.js +1 -1
  131. package/dist/picteus-ws-client/models/ManifestExtensionCommandOn.d.ts +1 -1
  132. package/dist/picteus-ws-client/models/ManifestExtensionCommandOn.js +1 -1
  133. package/dist/picteus-ws-client/models/ManifestExtensionCommandSpecification.d.ts +1 -1
  134. package/dist/picteus-ws-client/models/ManifestExtensionCommandSpecification.js +1 -1
  135. package/dist/picteus-ws-client/models/ManifestExtensionCommandUi.d.ts +1 -1
  136. package/dist/picteus-ws-client/models/ManifestExtensionCommandUi.js +1 -1
  137. package/dist/picteus-ws-client/models/ManifestInstructions.d.ts +1 -1
  138. package/dist/picteus-ws-client/models/ManifestInstructions.js +1 -1
  139. package/dist/picteus-ws-client/models/ManifestInterfaceElement.d.ts +1 -1
  140. package/dist/picteus-ws-client/models/ManifestInterfaceElement.js +1 -1
  141. package/dist/picteus-ws-client/models/ManifestInterfaceElementIntegration.d.ts +1 -1
  142. package/dist/picteus-ws-client/models/ManifestInterfaceElementIntegration.js +1 -1
  143. package/dist/picteus-ws-client/models/ManifestRuntime.d.ts +1 -1
  144. package/dist/picteus-ws-client/models/ManifestRuntime.js +1 -1
  145. package/dist/picteus-ws-client/models/ManifestRuntimeEnvironment.d.ts +1 -1
  146. package/dist/picteus-ws-client/models/ManifestRuntimeEnvironment.js +1 -1
  147. package/dist/picteus-ws-client/models/ManifestThrottlingPolicy.d.ts +1 -1
  148. package/dist/picteus-ws-client/models/ManifestThrottlingPolicy.js +1 -1
  149. package/dist/picteus-ws-client/models/ManifestUserInterface.d.ts +1 -1
  150. package/dist/picteus-ws-client/models/ManifestUserInterface.js +1 -1
  151. package/dist/picteus-ws-client/models/PromptKind.d.ts +1 -1
  152. package/dist/picteus-ws-client/models/PromptKind.js +1 -1
  153. package/dist/picteus-ws-client/models/Repository.d.ts +1 -1
  154. package/dist/picteus-ws-client/models/Repository.js +1 -1
  155. package/dist/picteus-ws-client/models/RepositoryActivity.d.ts +1 -1
  156. package/dist/picteus-ws-client/models/RepositoryActivity.js +1 -1
  157. package/dist/picteus-ws-client/models/RepositoryActivityKind.d.ts +1 -1
  158. package/dist/picteus-ws-client/models/RepositoryActivityKind.js +1 -1
  159. package/dist/picteus-ws-client/models/RepositoryLocationType.d.ts +1 -1
  160. package/dist/picteus-ws-client/models/RepositoryLocationType.js +1 -1
  161. package/dist/picteus-ws-client/models/RepositoryStatus.d.ts +1 -1
  162. package/dist/picteus-ws-client/models/RepositoryStatus.js +1 -1
  163. package/dist/picteus-ws-client/models/RunCommandParameters.d.ts +39 -0
  164. package/dist/picteus-ws-client/models/RunCommandParameters.js +46 -0
  165. package/dist/picteus-ws-client/models/SearchCriteria.d.ts +1 -1
  166. package/dist/picteus-ws-client/models/SearchCriteria.js +1 -1
  167. package/dist/picteus-ws-client/models/SearchFeatureComparisonOperator.d.ts +1 -1
  168. package/dist/picteus-ws-client/models/SearchFeatureComparisonOperator.js +1 -1
  169. package/dist/picteus-ws-client/models/SearchFeatureCondition.d.ts +1 -1
  170. package/dist/picteus-ws-client/models/SearchFeatureCondition.js +1 -1
  171. package/dist/picteus-ws-client/models/SearchFeatureConditionValue.d.ts +1 -1
  172. package/dist/picteus-ws-client/models/SearchFeatureConditionValue.js +1 -1
  173. package/dist/picteus-ws-client/models/SearchFeatureLogicalOperator.d.ts +1 -1
  174. package/dist/picteus-ws-client/models/SearchFeatureLogicalOperator.js +1 -1
  175. package/dist/picteus-ws-client/models/SearchFeatures.d.ts +1 -1
  176. package/dist/picteus-ws-client/models/SearchFeatures.js +1 -1
  177. package/dist/picteus-ws-client/models/SearchFeaturesResult.d.ts +1 -1
  178. package/dist/picteus-ws-client/models/SearchFeaturesResult.js +1 -1
  179. package/dist/picteus-ws-client/models/SearchFilter.d.ts +1 -1
  180. package/dist/picteus-ws-client/models/SearchFilter.js +1 -1
  181. package/dist/picteus-ws-client/models/SearchFilterOrigin.d.ts +1 -1
  182. package/dist/picteus-ws-client/models/SearchFilterOrigin.js +1 -1
  183. package/dist/picteus-ws-client/models/SearchImageIdResult.d.ts +1 -1
  184. package/dist/picteus-ws-client/models/SearchImageIdResult.js +1 -1
  185. package/dist/picteus-ws-client/models/SearchImageResult.d.ts +1 -1
  186. package/dist/picteus-ws-client/models/SearchImageResult.js +1 -1
  187. package/dist/picteus-ws-client/models/SearchImageSummaryResult.d.ts +1 -1
  188. package/dist/picteus-ws-client/models/SearchImageSummaryResult.js +1 -1
  189. package/dist/picteus-ws-client/models/SearchImagesOrigin.d.ts +1 -1
  190. package/dist/picteus-ws-client/models/SearchImagesOrigin.js +1 -1
  191. package/dist/picteus-ws-client/models/SearchKeyword.d.ts +1 -1
  192. package/dist/picteus-ws-client/models/SearchKeyword.js +1 -1
  193. package/dist/picteus-ws-client/models/SearchMediaUrlResult.d.ts +1 -1
  194. package/dist/picteus-ws-client/models/SearchMediaUrlResult.js +1 -1
  195. package/dist/picteus-ws-client/models/SearchOriginNature.d.ts +1 -1
  196. package/dist/picteus-ws-client/models/SearchOriginNature.js +1 -1
  197. package/dist/picteus-ws-client/models/SearchParameters.d.ts +1 -1
  198. package/dist/picteus-ws-client/models/SearchParameters.js +1 -1
  199. package/dist/picteus-ws-client/models/SearchProperties.d.ts +1 -1
  200. package/dist/picteus-ws-client/models/SearchProperties.js +1 -1
  201. package/dist/picteus-ws-client/models/SearchPropertyRange.d.ts +1 -1
  202. package/dist/picteus-ws-client/models/SearchPropertyRange.js +1 -1
  203. package/dist/picteus-ws-client/models/SearchRange.d.ts +1 -1
  204. package/dist/picteus-ws-client/models/SearchRange.js +1 -1
  205. package/dist/picteus-ws-client/models/SearchRepositoriesOrigin.d.ts +1 -1
  206. package/dist/picteus-ws-client/models/SearchRepositoriesOrigin.js +1 -1
  207. package/dist/picteus-ws-client/models/SearchSorting.d.ts +1 -1
  208. package/dist/picteus-ws-client/models/SearchSorting.js +1 -1
  209. package/dist/picteus-ws-client/models/SearchSortingProperty.d.ts +1 -1
  210. package/dist/picteus-ws-client/models/SearchSortingProperty.js +1 -1
  211. package/dist/picteus-ws-client/models/SearchTags.d.ts +1 -1
  212. package/dist/picteus-ws-client/models/SearchTags.js +1 -1
  213. package/dist/picteus-ws-client/models/SearchTagsResult.d.ts +1 -1
  214. package/dist/picteus-ws-client/models/SearchTagsResult.js +1 -1
  215. package/dist/picteus-ws-client/models/Software.d.ts +1 -1
  216. package/dist/picteus-ws-client/models/Software.js +1 -1
  217. package/dist/picteus-ws-client/models/TextualPrompt.d.ts +1 -1
  218. package/dist/picteus-ws-client/models/TextualPrompt.js +1 -1
  219. package/dist/picteus-ws-client/models/UserInterfaceAnchor.d.ts +1 -1
  220. package/dist/picteus-ws-client/models/UserInterfaceAnchor.js +1 -1
  221. package/dist/picteus-ws-client/models/UserInterfaceSidebarIntegration.d.ts +1 -1
  222. package/dist/picteus-ws-client/models/UserInterfaceSidebarIntegration.js +1 -1
  223. package/dist/picteus-ws-client/models/UserInterfaceWindowIntegration.d.ts +1 -1
  224. package/dist/picteus-ws-client/models/UserInterfaceWindowIntegration.js +1 -1
  225. package/dist/picteus-ws-client/models/index.d.ts +1 -0
  226. package/dist/picteus-ws-client/models/index.js +1 -0
  227. package/dist/picteus-ws-client/runtime.d.ts +1 -1
  228. package/dist/picteus-ws-client/runtime.js +1 -1
  229. package/dist/picteusExtension.d.ts +46 -23
  230. package/dist/picteusExtension.js +156 -50
  231. package/package.json +1 -1
@@ -1,28 +1,35 @@
1
1
  import { Socket } from "socket.io-client";
2
2
  import { ApiSecretApi, CollectionApi, Configuration, ExtensionApi, ImageApi, ImageAttachmentApi, Manifest, MiscellaneousApi, RepositoryApi } from "./index.js";
3
3
  import { Intent } from "./intents.js";
4
- export type NotificationValue = Record<string, any>;
5
- export declare enum NotificationReturnedErrorCause {
6
- Cancel = 0,
7
- Error = 1
4
+ export type EventValue = Record<string, any>;
5
+ export declare const InstructionReturnedErrorCause: {
6
+ readonly Cancel: 0;
7
+ readonly Error: 1;
8
+ };
9
+ export type InstructionReturnedErrorCause = (typeof InstructionReturnedErrorCause)[keyof typeof InstructionReturnedErrorCause];
10
+ export declare class InstructionReturnedError extends Error {
11
+ readonly reason: InstructionReturnedErrorCause;
12
+ constructor(message: string, reason: InstructionReturnedErrorCause);
8
13
  }
9
- export declare class NotificationReturnedError extends Error {
10
- readonly reason: NotificationReturnedErrorCause;
11
- constructor(message: string, reason: NotificationReturnedErrorCause);
12
- }
13
- export declare enum NotificationEvent {
14
- ProcessRunCommand = "process.runCommand",
15
- ImageCreated = "image.created",
16
- ImageUpdated = "image.updated",
17
- ImageTagsUpdated = "image.tags.updated",
18
- ImageFeaturesUpdated = "image.features.updated",
19
- ImageDeleted = "image.deleted",
20
- ImageComputeFeatures = "image.computeFeatures",
21
- ImageComputeEmbeddings = "image.computeEmbeddings",
22
- ImageComputeTags = "image.computeTags",
23
- ImageRunCommand = "image.runCommand",
24
- TextComputeEmbeddings = "text.computeEmbeddings"
14
+ export type CommandParameters = Record<string, any>;
15
+ export declare class CommandError extends Error {
16
+ static fromError(error: CommandParameters): CommandError;
17
+ constructor(message: string);
25
18
  }
19
+ export declare const EventName: {
20
+ readonly ProcessRunCommand: "process.runCommand";
21
+ readonly ImageCreated: "image.created";
22
+ readonly ImageUpdated: "image.updated";
23
+ readonly ImageTagsUpdated: "image.tags.updated";
24
+ readonly ImageFeaturesUpdated: "image.features.updated";
25
+ readonly ImageDeleted: "image.deleted";
26
+ readonly ImageComputeFeatures: "image.computeFeatures";
27
+ readonly ImageComputeEmbeddings: "image.computeEmbeddings";
28
+ readonly ImageComputeTags: "image.computeTags";
29
+ readonly ImageRunCommand: "image.runCommand";
30
+ readonly TextComputeEmbeddings: "text.computeEmbeddings";
31
+ };
32
+ export type EventName = (typeof EventName)[keyof typeof EventName];
26
33
  export declare class Helper {
27
34
  static readonly GENERATION_RECIPE_SCHEMA_VERSION = 1;
28
35
  }
@@ -61,7 +68,7 @@ declare class MessageSender {
61
68
  private _maximumPayloadSizeInBytes?;
62
69
  constructor(logger: Logger, parameters: ExtensionParameters, socket: Socket, toString: () => string, contextId?: string);
63
70
  set maximumPayloadSizeInBytes(value: number);
64
- sendMessage(channel: string, body: Record<string, any>, callback?: (result: any) => Promise<void>): void;
71
+ sendMessage(event: string, body: Record<string, any>, callback?: (result: any) => Promise<void>): void;
65
72
  }
66
73
  export declare class Communicator {
67
74
  private readonly logger;
@@ -73,6 +80,10 @@ export declare class Communicator {
73
80
  private sendMessage;
74
81
  }
75
82
  export type SettingsValue = Record<string, any>;
83
+ export type Versions = {
84
+ previous: string | undefined;
85
+ current: string;
86
+ };
76
87
  export declare class PicteusExtension {
77
88
  static getManifest(): Manifest;
78
89
  static getSdkVersion(): string;
@@ -86,15 +97,26 @@ export declare class PicteusExtension {
86
97
  protected readonly apiKey: string;
87
98
  protected readonly configuration: Configuration;
88
99
  private socket?;
89
- private globalCommunicator?;
90
100
  constructor();
91
101
  run(): Promise<void>;
92
102
  protected toString(): string;
93
103
  protected initialize(): Promise<boolean>;
104
+ protected onUpgrade(_communicator: Communicator, _versions: Versions): Promise<void>;
94
105
  protected onReady(_communicator?: Communicator): Promise<void>;
95
106
  protected onTerminate(): Promise<void>;
96
107
  protected onSettings(_communicator: Communicator, _value: SettingsValue): Promise<void>;
97
- protected onEvent(_communicator: Communicator, _event: string, _value: NotificationValue): Promise<any>;
108
+ protected onEvent(communicator: Communicator, event: EventName, value: EventValue): Promise<any>;
109
+ protected onImageCreated(_communicator: Communicator, _imageId: string): Promise<void>;
110
+ protected onImageUpdated(_communicator: Communicator, _imageId: string): Promise<void>;
111
+ protected onImageDeleted(_communicator: Communicator, _imageId: string): Promise<void>;
112
+ protected onImageTagsUpdated(_communicator: Communicator, _imageId: string): Promise<void>;
113
+ protected onImageFeaturesUpdated(_communicator: Communicator, _imageId: string): Promise<void>;
114
+ protected onComputeImageTags(_communicator: Communicator, _imageId: string): Promise<void>;
115
+ protected onComputeImageFeatures(_communicator: Communicator, _imageId: string): Promise<void>;
116
+ protected onComputeImageEmbeddings(_communicator: Communicator, _imageId: string): Promise<void>;
117
+ protected onImagesCommand(_communicator: Communicator, _commandId: string, _imageIds: string[], _parameters: CommandParameters): Promise<void>;
118
+ protected onProcessCommand(_communicator: Communicator, _commandId: string, _parameters: CommandParameters): Promise<void>;
119
+ protected onComputeTextEmbeddings(_communicator: Communicator, _text: string): Promise<number[]>;
98
120
  protected getMiscellaneousApi(): MiscellaneousApi;
99
121
  protected getApiSecretApi(): ApiSecretApi;
100
122
  protected getExtensionApi(): ExtensionApi;
@@ -106,6 +128,7 @@ export declare class PicteusExtension {
106
128
  private getParameters;
107
129
  private connectSocket;
108
130
  private disconnectSocket;
131
+ private exit;
109
132
  private getApiConfiguration;
110
133
  }
111
134
  export {};
@@ -4,35 +4,39 @@ import { fileURLToPath } from "node:url";
4
4
  // We do not import the "process" package on purpose, otherwise we get the runtime error "process.on is not a function"
5
5
  import console from "node:console";
6
6
  import { io } from "socket.io-client";
7
- import { ApiSecretApi, CollectionApi, Configuration, ExtensionApi, ImageApi, ImageAttachmentApi, ManifestFromJSON, MiscellaneousApi, RepositoryApi } from "./index.js";
8
- export var NotificationReturnedErrorCause;
9
- (function (NotificationReturnedErrorCause) {
10
- NotificationReturnedErrorCause[NotificationReturnedErrorCause["Cancel"] = 0] = "Cancel";
11
- NotificationReturnedErrorCause[NotificationReturnedErrorCause["Error"] = 1] = "Error";
12
- })(NotificationReturnedErrorCause || (NotificationReturnedErrorCause = {}));
13
- export class NotificationReturnedError extends Error {
7
+ import { ApiSecretApi, CollectionApi, Configuration, ExtensionApi, ImageApi, ImageAttachmentApi, IntentToastType, ManifestFromJSON, MiscellaneousApi, RepositoryApi } from "./index.js";
8
+ export const InstructionReturnedErrorCause = { Cancel: 0, Error: 1 };
9
+ export class InstructionReturnedError extends Error {
14
10
  reason;
15
11
  constructor(message, reason) {
16
12
  super(message);
17
13
  this.reason = reason;
18
14
  }
19
15
  }
20
- // noinspection JSUnusedGlobalSymbols
21
- export var NotificationEvent;
22
- (function (NotificationEvent) {
23
- NotificationEvent["ProcessRunCommand"] = "process.runCommand";
24
- NotificationEvent["ImageCreated"] = "image.created";
25
- NotificationEvent["ImageUpdated"] = "image.updated";
26
- NotificationEvent["ImageTagsUpdated"] = "image.tags.updated";
27
- NotificationEvent["ImageFeaturesUpdated"] = "image.features.updated";
28
- NotificationEvent["ImageDeleted"] = "image.deleted";
29
- NotificationEvent["ImageComputeFeatures"] = "image.computeFeatures";
30
- NotificationEvent["ImageComputeEmbeddings"] = "image.computeEmbeddings";
31
- NotificationEvent["ImageComputeTags"] = "image.computeTags";
32
- NotificationEvent["ImageRunCommand"] = "image.runCommand";
33
- NotificationEvent["TextComputeEmbeddings"] = "text.computeEmbeddings";
34
- })(NotificationEvent || (NotificationEvent = {}));
35
- const extensionSettingsEvent = "extension.settings";
16
+ export class CommandError extends Error {
17
+ static fromError(error) {
18
+ return new CommandError(error.message);
19
+ }
20
+ constructor(message) {
21
+ super(message);
22
+ }
23
+ }
24
+ export const EventName = {
25
+ ProcessRunCommand: "process.runCommand",
26
+ ImageCreated: "image.created",
27
+ ImageUpdated: "image.updated",
28
+ ImageTagsUpdated: "image.tags.updated",
29
+ ImageFeaturesUpdated: "image.features.updated",
30
+ ImageDeleted: "image.deleted",
31
+ ImageComputeFeatures: "image.computeFeatures",
32
+ ImageComputeEmbeddings: "image.computeEmbeddings",
33
+ ImageComputeTags: "image.computeTags",
34
+ ImageRunCommand: "image.runCommand",
35
+ TextComputeEmbeddings: "text.computeEmbeddings"
36
+ };
37
+ const extensionVersionsChannel = "extension.versions";
38
+ const extensionReadyChannel = "extension.ready";
39
+ const extensionSettingsChannel = "extension.settings";
36
40
  // noinspection JSUnusedGlobalSymbols
37
41
  export class Helper {
38
42
  static GENERATION_RECIPE_SCHEMA_VERSION = 1;
@@ -106,9 +110,9 @@ class MessageSender {
106
110
  set maximumPayloadSizeInBytes(value) {
107
111
  this._maximumPayloadSizeInBytes = value;
108
112
  }
109
- sendMessage(channel, body, callback) {
113
+ sendMessage(event, body, callback) {
110
114
  const contextId = this.contextId;
111
- this.logger.debug(`Sending the message '${stringifyWithStrippedBuffers(body)}' on channel '${channel}' for ${this.toString()}${contextId === undefined ? "" : ` attached to the context with id '${contextId}'`}${callback === undefined ? "" : " and waiting for a callback"}`);
115
+ this.logger.debug(`Sending the message '${stringifyWithStrippedBuffers(body)}' through the '${event}' event for ${this.toString()}${contextId === undefined ? "" : ` attached to the context with id '${contextId}'`}${callback === undefined ? "" : " and waiting for a callback"}`);
112
116
  const value = {
113
117
  extensionId: this.parameters.extensionId,
114
118
  ...body
@@ -121,14 +125,14 @@ class MessageSender {
121
125
  value.contextId = contextId;
122
126
  }
123
127
  if (callback === undefined) {
124
- this.socket.emit(channel, value);
128
+ this.socket.emit(event, value);
125
129
  }
126
130
  else {
127
- this.socket.emit(channel, value, callback);
131
+ this.socket.emit(event, value, callback);
128
132
  }
129
133
  }
130
134
  }
131
- const notificationsChannel = "notifications";
135
+ const instructionsEvent = "instructions";
132
136
  export class Communicator {
133
137
  logger;
134
138
  sender;
@@ -138,21 +142,21 @@ export class Communicator {
138
142
  }
139
143
  sendLog(message, level) {
140
144
  this.logger[level](message);
141
- this.sendMessage(notificationsChannel, { log: { message, level } });
145
+ this.sendMessage(instructionsEvent, { log: { message, level } });
142
146
  }
143
147
  // noinspection JSUnusedGlobalSymbols
144
148
  sendNotification(value) {
145
- this.sendMessage(notificationsChannel, { notification: value });
149
+ this.sendMessage(instructionsEvent, { notification: value });
146
150
  }
147
151
  async launchIntent(intent) {
148
152
  return await new Promise((resolve, reject) => {
149
- this.sendMessage(notificationsChannel, { intent }, async ({ value, cancel, error }) => {
153
+ this.sendMessage(instructionsEvent, { intent }, async ({ value, cancel, error }) => {
150
154
  this.logger.debug(`Received a result related to the intent '${stringifyWithStrippedBuffers(intent)}' for ${this.sender.toString()}`);
151
155
  if (cancel !== undefined) {
152
- reject(new NotificationReturnedError(cancel, NotificationReturnedErrorCause.Cancel));
156
+ reject(new InstructionReturnedError(cancel, InstructionReturnedErrorCause.Cancel));
153
157
  }
154
158
  else if (error !== undefined) {
155
- reject(new NotificationReturnedError(error, NotificationReturnedErrorCause.Error));
159
+ reject(new InstructionReturnedError(error, InstructionReturnedErrorCause.Error));
156
160
  }
157
161
  else {
158
162
  resolve(value);
@@ -160,8 +164,8 @@ export class Communicator {
160
164
  });
161
165
  });
162
166
  }
163
- sendMessage(channel, body, callback) {
164
- this.sender.sendMessage(channel, body, callback);
167
+ sendMessage(event, body, callback) {
168
+ this.sender.sendMessage(event, body, callback);
165
169
  }
166
170
  }
167
171
  export class PicteusExtension {
@@ -171,6 +175,7 @@ export class PicteusExtension {
171
175
  static getSdkVersion() {
172
176
  return JSON.parse(fs.readFileSync(path.join(path.dirname(fileURLToPath(import.meta.url)), "..", "package.json"), { encoding: "utf8" })).version;
173
177
  }
178
+ // noinspection JSUnusedGlobalSymbols
174
179
  static getCacheDirectoryPath() {
175
180
  return path.join(PicteusExtension.getExtensionHomeDirectoryPath(), ".cache");
176
181
  }
@@ -185,7 +190,6 @@ export class PicteusExtension {
185
190
  apiKey;
186
191
  configuration;
187
192
  socket;
188
- globalCommunicator;
189
193
  constructor() {
190
194
  this.logger.info(`Instantiating the ${this.toString()} through the process with id '${process.pid}' relying on the SDK version '${PicteusExtension.getSdkVersion()}'`);
191
195
  process.on("SIGTERM", async (signal) => {
@@ -212,8 +216,7 @@ export class PicteusExtension {
212
216
  result = await this.initialize();
213
217
  }
214
218
  catch (error) {
215
- this.logger.error(`The initialization of the ${this.toString()} failed. Reason: '${error.message}'`, error);
216
- process.exit(1);
219
+ this.exit(1, error, "the initialization failed");
217
220
  }
218
221
  try {
219
222
  if (result === true) {
@@ -221,8 +224,7 @@ export class PicteusExtension {
221
224
  this.connectSocket();
222
225
  }
223
226
  catch (error) {
224
- this.logger.error(`The connection of the ${this.toString()} failed. Reason: '${error.message}'`, error);
225
- process.exit(2);
227
+ this.exit(2, error, "the connection failed");
226
228
  }
227
229
  }
228
230
  else {
@@ -234,19 +236,90 @@ export class PicteusExtension {
234
236
  }
235
237
  }
236
238
  toString() {
237
- return `extension` + (this.extensionId === undefined ? "" : ` with id '${this.extensionId}'`) + ` of class '${this.constructor.name}'`;
239
+ return `extension${this.extensionId === undefined ? "" : ` with id '${this.extensionId}'`} of class '${this.constructor.name}'`;
238
240
  }
239
241
  async initialize() {
240
242
  return true;
241
243
  }
244
+ async onUpgrade(_communicator, _versions) {
245
+ }
242
246
  async onReady(_communicator) {
243
247
  }
244
248
  async onTerminate() {
245
249
  }
246
250
  async onSettings(_communicator, _value) {
247
- return Promise.resolve();
248
251
  }
249
- async onEvent(_communicator, _event, _value) {
252
+ async onEvent(communicator, event, value) {
253
+ if (event === EventName.ImageCreated) {
254
+ const imageId = value["id"];
255
+ return await this.onImageCreated(communicator, imageId);
256
+ }
257
+ else if (event === EventName.ImageUpdated) {
258
+ const imageId = value["id"];
259
+ return await this.onImageUpdated(communicator, imageId);
260
+ }
261
+ else if (event === EventName.ImageDeleted) {
262
+ const imageId = value["id"];
263
+ return await this.onImageDeleted(communicator, imageId);
264
+ }
265
+ else if (event === EventName.ImageTagsUpdated) {
266
+ const imageId = value["id"];
267
+ return await this.onImageTagsUpdated(communicator, imageId);
268
+ }
269
+ else if (event === EventName.ImageFeaturesUpdated) {
270
+ const imageId = value["id"];
271
+ return await this.onImageFeaturesUpdated(communicator, imageId);
272
+ }
273
+ else if (event === EventName.ImageComputeTags) {
274
+ const imageId = value["id"];
275
+ return await this.onComputeImageTags(communicator, imageId);
276
+ }
277
+ else if (event === EventName.ImageComputeFeatures) {
278
+ const imageId = value["id"];
279
+ return await this.onComputeImageFeatures(communicator, imageId);
280
+ }
281
+ else if (event === EventName.ImageComputeEmbeddings) {
282
+ const imageId = value["id"];
283
+ return await this.onComputeImageEmbeddings(communicator, imageId);
284
+ }
285
+ else if (event === EventName.ImageRunCommand) {
286
+ const commandId = value["commandId"];
287
+ const imageIds = value["imageIds"];
288
+ const parameters = value["parameters"] ?? {};
289
+ return await this.onImagesCommand(communicator, commandId, imageIds, parameters);
290
+ }
291
+ else if (event === EventName.ProcessRunCommand) {
292
+ const commandId = value["commandId"];
293
+ const parameters = value["parameters"] ?? {};
294
+ return await this.onProcessCommand(communicator, commandId, parameters);
295
+ }
296
+ else if (event === EventName.TextComputeEmbeddings) {
297
+ const text = value["text"];
298
+ return await this.onComputeTextEmbeddings(communicator, text);
299
+ }
300
+ }
301
+ async onImageCreated(_communicator, _imageId) {
302
+ }
303
+ async onImageUpdated(_communicator, _imageId) {
304
+ }
305
+ async onImageDeleted(_communicator, _imageId) {
306
+ }
307
+ async onImageTagsUpdated(_communicator, _imageId) {
308
+ }
309
+ async onImageFeaturesUpdated(_communicator, _imageId) {
310
+ }
311
+ async onComputeImageTags(_communicator, _imageId) {
312
+ }
313
+ async onComputeImageFeatures(_communicator, _imageId) {
314
+ }
315
+ async onComputeImageEmbeddings(_communicator, _imageId) {
316
+ }
317
+ async onImagesCommand(_communicator, _commandId, _imageIds, _parameters) {
318
+ }
319
+ async onProcessCommand(_communicator, _commandId, _parameters) {
320
+ }
321
+ async onComputeTextEmbeddings(_communicator, _text) {
322
+ return [];
250
323
  }
251
324
  // noinspection JSUnusedGlobalSymbols
252
325
  getMiscellaneousApi() {
@@ -293,7 +366,6 @@ export class PicteusExtension {
293
366
  const globalSender = new MessageSender(this.logger, this.parameters, this.socket, () => {
294
367
  return this.toString();
295
368
  });
296
- this.globalCommunicator = new Communicator(this.logger, globalSender);
297
369
  this.socket.on("connect", async () => {
298
370
  this.logger.info(`The ${this.toString()} socket is connected`);
299
371
  globalSender.sendMessage("connection", {
@@ -304,7 +376,6 @@ export class PicteusExtension {
304
376
  const maximumPayloadSizeInBytes = result.maximumPayloadSizeInBytes;
305
377
  this.logger.debug(`The ${this.toString()} socket has a maximum payload size of ${maximumPayloadSizeInBytes} bytes`);
306
378
  globalSender.maximumPayloadSizeInBytes = maximumPayloadSizeInBytes;
307
- await this.onReady(this.globalCommunicator);
308
379
  });
309
380
  });
310
381
  this.socket.on("connect_error", async () => {
@@ -321,22 +392,53 @@ export class PicteusExtension {
321
392
  }, contextId);
322
393
  sender.maximumPayloadSizeInBytes = globalSender.maximumPayloadSizeInBytes;
323
394
  const communicator = new Communicator(this.logger, sender);
324
- const isRegularEvent = channel !== extensionSettingsEvent;
395
+ const requiresResult = channel !== extensionSettingsChannel;
325
396
  let result;
326
397
  let success = false;
398
+ let eventName;
327
399
  try {
328
- result = await (isRegularEvent === true ? this.onEvent(communicator, channel, value) : this.onSettings(communicator, value.value));
400
+ if (channel === extensionSettingsChannel) {
401
+ result = await this.onSettings(communicator, value.value);
402
+ }
403
+ else if (channel === extensionVersionsChannel) {
404
+ const { upgrade, ...versions } = value;
405
+ if (upgrade === true) {
406
+ await this.onUpgrade(communicator, versions);
407
+ result = true;
408
+ }
409
+ else {
410
+ result = true;
411
+ }
412
+ }
413
+ else if (channel === extensionReadyChannel) {
414
+ try {
415
+ await this.onReady(communicator);
416
+ result = true;
417
+ }
418
+ catch (error) {
419
+ this.exit(3, error, "an error occurred during the execution of the 'onReady()' method: stopping the process");
420
+ }
421
+ }
422
+ else {
423
+ eventName = channel;
424
+ result = await this.onEvent(communicator, eventName, value);
425
+ }
329
426
  success = true;
330
427
  }
331
428
  catch (error) {
332
429
  // We want the process to continue even if an exception occurs
333
430
  this.logger.error(`An error occurred during the handling of the event on channel '${channel}'`, error);
334
- communicator.sendLog(`The handling of the event failed for the ${this.toString()}. Reason: '${error.message}'`, "error");
431
+ if ((eventName === EventName.ImageRunCommand || eventName === EventName.ProcessRunCommand) && error instanceof CommandError) {
432
+ void communicator.launchIntent({ toast: { type: IntentToastType.Error, subtitle: error.message } });
433
+ }
434
+ else {
435
+ communicator.sendLog(`The handling of the event failed for the ${this.toString()}. Reason: '${error.message}'`, "error");
436
+ }
335
437
  }
336
438
  finally {
337
- sender.sendMessage(notificationsChannel, { acknowledgment: { success } });
439
+ sender.sendMessage(instructionsEvent, { acknowledgment: { success } });
338
440
  }
339
- if (isRegularEvent === true && onResult !== undefined) {
441
+ if (requiresResult === true && onResult !== undefined) {
340
442
  onResult(result);
341
443
  }
342
444
  });
@@ -348,6 +450,10 @@ export class PicteusExtension {
348
450
  this.socket = undefined;
349
451
  }
350
452
  }
453
+ exit(code, error, message) {
454
+ this.logger.error(`For the ${this.toString()}, ${message}. Reason: '${error.message}'`, error);
455
+ process.exit(code);
456
+ }
351
457
  getApiConfiguration() {
352
458
  if (this.parameters.webServicesBaseUrl.startsWith("https://localhost") == true) {
353
459
  // This enables to discard the warning log message, caused by the fact that we are issuing HTTPS request on the localhost exposing a self-served certificate
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@picteus/extension-sdk",
3
- "version": "0.14.0",
3
+ "version": "0.15.0",
4
4
  "productName": "Picteus TypeScript SDK",
5
5
  "description": "The Picteus extension TypeScript SDK.",
6
6
  "keywords": [