@eyepop.ai/eyepop 0.23.0 → 1.0.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.
package/README.md CHANGED
@@ -253,9 +253,13 @@ By default, `EyePop.workerEndpoint().connect()` will cancel all currently runnin
253
253
  It is assumed that the caller _takes full control_ of that worker. To disable this behavior create an endpoint with
254
254
  `EyePop.endpoint({stopJobs: false})`.
255
255
 
256
- ## Data endpoint (experimental)
256
+ ## Data endpoint (PREVIEW)
257
257
  To support managing your own datasets and control model optimization v0.21.0 introduces `EyePop.dataEndpoint()`,
258
- an experimental pre-release which is subject to change. An officially supported version will be released with v1.0.0
258
+ an experimental pre-release which is subject to change. An officially supported version will be released with v2.0.0
259
+
260
+ ## Composable Pops (PREVIEW)
261
+ See [Composable Pops](composable-pops.md) for a preview of client side composability of pops, introduced in v1.0.0.
262
+
259
263
 
260
264
 
261
265
 
@@ -314,17 +314,93 @@ declare enum ModelPrecisionType {
314
314
  }
315
315
  interface ModelInstanceDef {
316
316
  id?: string;
317
- model_id: string;
318
- dataset: string;
319
- version: string | undefined;
320
- format: ModelFormat;
321
- type: ModelPrecisionType;
317
+ model_folder_url?: string;
318
+ model_id?: string;
319
+ dataset?: string;
320
+ version?: string;
321
+ format?: ModelFormat;
322
+ type?: ModelPrecisionType;
323
+ }
324
+ declare enum PopComponentType {
325
+ FORWARD = "forward",
326
+ INFERENCE = "inference",
327
+ TRACING = "tracing",
328
+ CONTOUR_FINDER = "contour_finder",
329
+ COMPONENT_FINDER = "component_finder"
330
+ }
331
+ declare enum ForwardOperatorType {
332
+ FULL = "full",
333
+ CROP = "crop",
334
+ CROP_WITH_FULL_FALLBACK = "crop_with_full_fallback"
335
+ }
336
+ interface PopCrop {
337
+ maxItems?: number;
338
+ boxPadding?: number;
339
+ orientationTargetAngle?: number;
340
+ }
341
+ interface PopForwardOperator {
342
+ type: ForwardOperatorType;
343
+ includeClasses?: string[];
344
+ crop?: PopCrop;
345
+ }
346
+ interface PopForward {
347
+ operator?: PopForwardOperator;
348
+ targets: PopComponent[];
349
+ }
350
+ interface BaseComponent {
351
+ type: PopComponentType;
352
+ forward?: PopForward;
353
+ }
354
+ interface ForwardComponent extends BaseComponent {
355
+ }
356
+ declare enum InferenceType {
357
+ IMAGE_CLASSIFICATION = "image_classification",
358
+ OBJECT_DETECTION = "object_detection",
359
+ KEY_POINTS = "key_points",
360
+ OCR = "ocr",
361
+ MESH = "mesh",
362
+ FEATURE_VECTOR = "feature_vector",
363
+ SEMANTIC_SEGMENTATION = "semantic_segmentation",
364
+ SEGMENTATION = "segmentation"
365
+ }
366
+ interface InferenceComponent extends BaseComponent {
367
+ inferenceTypes: InferenceType[];
368
+ hidden?: boolean;
369
+ modelUuid: string;
370
+ categoryName?: string;
371
+ confidenceThreshold?: number;
372
+ targetFps?: string;
373
+ }
374
+ interface TracingComponent extends BaseComponent {
375
+ reidModelUuid?: string;
376
+ maxAgeSeconds?: number;
377
+ iouThreshold?: number;
378
+ simThreshold?: number;
379
+ }
380
+ declare enum ContourType {
381
+ ALL_PIXELS = "all_pixels",
382
+ POLYGON = "polygon",
383
+ CONVEX_HULL = "convex_hull",
384
+ HOUGH_CIRCLES = "hough_circles",
385
+ CIRCLE = "circle",
386
+ TRIANGLE = "triangle",
387
+ RECTANGLE = "rectangle"
388
+ }
389
+ interface ContourFinderComponent extends BaseComponent {
390
+ contourType: ContourType;
391
+ }
392
+ interface ComponentFinderComponent extends BaseComponent {
393
+ dilate?: number;
394
+ erode?: number;
395
+ keepSource?: boolean;
396
+ componentClassLabel?: string;
397
+ }
398
+ type PopComponent = ForwardComponent | InferenceComponent | TracingComponent | ContourFinderComponent | ComponentFinderComponent;
399
+ interface Pop {
400
+ components: PopComponent[];
401
+ postTransform?: string;
322
402
  }
323
403
 
324
- interface ModelRef {
325
- id: string;
326
- folderUrl: string;
327
- }
328
404
  declare class WorkerEndpoint extends Endpoint<WorkerEndpoint> {
329
405
  private _baseUrl;
330
406
  private _pipelineId;
@@ -339,10 +415,8 @@ declare class WorkerEndpoint extends Endpoint<WorkerEndpoint> {
339
415
  protected statusHandler404(statusCode: number): void;
340
416
  session(): Promise<WorkerSession>;
341
417
  popName(): string | null;
342
- popComp(): string | null;
343
- postTransform(): string | null;
344
- changePopComp(popComp: string, modelRefs?: ModelRef[]): Promise<void>;
345
- changePostTransform(postTransform: string | null): Promise<void>;
418
+ pop(): Pop | null;
419
+ changePop(pop: Pop): Promise<void>;
346
420
  popId(): string | null;
347
421
  onIngressEvent(handler: (event: IngressEvent) => void): WorkerEndpoint;
348
422
  liveIngress(stream: MediaStream): Promise<LiveMedia>;
@@ -357,7 +431,7 @@ declare class WorkerEndpoint extends Endpoint<WorkerEndpoint> {
357
431
  private jobDone;
358
432
  private jobStatus;
359
433
  protected reconnect(): Promise<WorkerEndpoint>;
360
- private startPopLessPipeline;
434
+ private startTransientPipeline;
361
435
  manifest(): Promise<SourcesEntry[]>;
362
436
  models(): Promise<ModelInstanceDef[]>;
363
437
  changeManifest(manifests: SourcesEntry[]): Promise<void>;
@@ -672,4 +746,4 @@ declare namespace EyePop {
672
746
  function dataEndpoint(opts?: DataOptions): DataEndpoint;
673
747
  }
674
748
 
675
- export { AbstractJob, type Annotation, AnnotationType, type Asset, AssetStatus, type Auth0Options, type Authentication, type Box, type ChangeEvent, ChangeType, type Contour, DataEndpoint, type DataOptions, type DataSession, type Dataset, type DatasetCreate, type DatasetUpdate, type DatasetVersion, Endpoint, EndpointState, EyePop, type FileSource, type IngressEvent, type LiveMedia, type LiveSource, LoadFromJob, LoadLiveIngressJob, type Mask, type Model, type ModelCreate, ModelFormat, type ModelInstanceDef, ModelPrecisionType, ModelStatus, ModelType, type ModelUpdate, type OAuth2Auth, type OnChangeEvent, type Options, type PathSource, type Point2d, type Point3d, type PredictedClass, type PredictedKeyPoint, type PredictedKeyPoints, type PredictedLabel, type PredictedMesh, type PredictedObject, type Prediction, type ResultStream, type Roi, type SecretKeyAuth, Semaphore, type Session, type SessionAuth, type Source, type SourceParams, type SourcesEntry, Stream, type StreamSource, type StreamTime, TranscodeMode, TransientPopId, UploadJob, type UrlSource, UserReview, WebrtcBase, WebrtcWhep, WebrtcWhip, WorkerEndpoint, type WorkerOptions, type WorkerSession, EyePop as default };
749
+ export { AbstractJob, type Annotation, AnnotationType, type Asset, AssetStatus, type Auth0Options, type Authentication, type BaseComponent, type Box, type ChangeEvent, ChangeType, type ComponentFinderComponent, type Contour, type ContourFinderComponent, ContourType, DataEndpoint, type DataOptions, type DataSession, type Dataset, type DatasetCreate, type DatasetUpdate, type DatasetVersion, Endpoint, EndpointState, EyePop, type FileSource, type ForwardComponent, ForwardOperatorType, type InferenceComponent, InferenceType, type IngressEvent, type LiveMedia, type LiveSource, LoadFromJob, LoadLiveIngressJob, type Mask, type Model, type ModelCreate, ModelFormat, type ModelInstanceDef, ModelPrecisionType, ModelStatus, ModelType, type ModelUpdate, type OAuth2Auth, type OnChangeEvent, type Options, type PathSource, type Point2d, type Point3d, type Pop, type PopComponent, PopComponentType, type PopCrop, type PopForward, type PopForwardOperator, type PredictedClass, type PredictedKeyPoint, type PredictedKeyPoints, type PredictedLabel, type PredictedMesh, type PredictedObject, type Prediction, type ResultStream, type Roi, type SecretKeyAuth, Semaphore, type Session, type SessionAuth, type Source, type SourceParams, type SourcesEntry, Stream, type StreamSource, type StreamTime, type TracingComponent, TranscodeMode, TransientPopId, UploadJob, type UrlSource, UserReview, WebrtcBase, WebrtcWhep, WebrtcWhip, WorkerEndpoint, type WorkerOptions, type WorkerSession, EyePop as default };
@@ -314,17 +314,93 @@ declare enum ModelPrecisionType {
314
314
  }
315
315
  interface ModelInstanceDef {
316
316
  id?: string;
317
- model_id: string;
318
- dataset: string;
319
- version: string | undefined;
320
- format: ModelFormat;
321
- type: ModelPrecisionType;
317
+ model_folder_url?: string;
318
+ model_id?: string;
319
+ dataset?: string;
320
+ version?: string;
321
+ format?: ModelFormat;
322
+ type?: ModelPrecisionType;
323
+ }
324
+ declare enum PopComponentType {
325
+ FORWARD = "forward",
326
+ INFERENCE = "inference",
327
+ TRACING = "tracing",
328
+ CONTOUR_FINDER = "contour_finder",
329
+ COMPONENT_FINDER = "component_finder"
330
+ }
331
+ declare enum ForwardOperatorType {
332
+ FULL = "full",
333
+ CROP = "crop",
334
+ CROP_WITH_FULL_FALLBACK = "crop_with_full_fallback"
335
+ }
336
+ interface PopCrop {
337
+ maxItems?: number;
338
+ boxPadding?: number;
339
+ orientationTargetAngle?: number;
340
+ }
341
+ interface PopForwardOperator {
342
+ type: ForwardOperatorType;
343
+ includeClasses?: string[];
344
+ crop?: PopCrop;
345
+ }
346
+ interface PopForward {
347
+ operator?: PopForwardOperator;
348
+ targets: PopComponent[];
349
+ }
350
+ interface BaseComponent {
351
+ type: PopComponentType;
352
+ forward?: PopForward;
353
+ }
354
+ interface ForwardComponent extends BaseComponent {
355
+ }
356
+ declare enum InferenceType {
357
+ IMAGE_CLASSIFICATION = "image_classification",
358
+ OBJECT_DETECTION = "object_detection",
359
+ KEY_POINTS = "key_points",
360
+ OCR = "ocr",
361
+ MESH = "mesh",
362
+ FEATURE_VECTOR = "feature_vector",
363
+ SEMANTIC_SEGMENTATION = "semantic_segmentation",
364
+ SEGMENTATION = "segmentation"
365
+ }
366
+ interface InferenceComponent extends BaseComponent {
367
+ inferenceTypes: InferenceType[];
368
+ hidden?: boolean;
369
+ modelUuid: string;
370
+ categoryName?: string;
371
+ confidenceThreshold?: number;
372
+ targetFps?: string;
373
+ }
374
+ interface TracingComponent extends BaseComponent {
375
+ reidModelUuid?: string;
376
+ maxAgeSeconds?: number;
377
+ iouThreshold?: number;
378
+ simThreshold?: number;
379
+ }
380
+ declare enum ContourType {
381
+ ALL_PIXELS = "all_pixels",
382
+ POLYGON = "polygon",
383
+ CONVEX_HULL = "convex_hull",
384
+ HOUGH_CIRCLES = "hough_circles",
385
+ CIRCLE = "circle",
386
+ TRIANGLE = "triangle",
387
+ RECTANGLE = "rectangle"
388
+ }
389
+ interface ContourFinderComponent extends BaseComponent {
390
+ contourType: ContourType;
391
+ }
392
+ interface ComponentFinderComponent extends BaseComponent {
393
+ dilate?: number;
394
+ erode?: number;
395
+ keepSource?: boolean;
396
+ componentClassLabel?: string;
397
+ }
398
+ type PopComponent = ForwardComponent | InferenceComponent | TracingComponent | ContourFinderComponent | ComponentFinderComponent;
399
+ interface Pop {
400
+ components: PopComponent[];
401
+ postTransform?: string;
322
402
  }
323
403
 
324
- interface ModelRef {
325
- id: string;
326
- folderUrl: string;
327
- }
328
404
  declare class WorkerEndpoint extends Endpoint<WorkerEndpoint> {
329
405
  private _baseUrl;
330
406
  private _pipelineId;
@@ -339,10 +415,8 @@ declare class WorkerEndpoint extends Endpoint<WorkerEndpoint> {
339
415
  protected statusHandler404(statusCode: number): void;
340
416
  session(): Promise<WorkerSession>;
341
417
  popName(): string | null;
342
- popComp(): string | null;
343
- postTransform(): string | null;
344
- changePopComp(popComp: string, modelRefs?: ModelRef[]): Promise<void>;
345
- changePostTransform(postTransform: string | null): Promise<void>;
418
+ pop(): Pop | null;
419
+ changePop(pop: Pop): Promise<void>;
346
420
  popId(): string | null;
347
421
  onIngressEvent(handler: (event: IngressEvent) => void): WorkerEndpoint;
348
422
  liveIngress(stream: MediaStream): Promise<LiveMedia>;
@@ -357,7 +431,7 @@ declare class WorkerEndpoint extends Endpoint<WorkerEndpoint> {
357
431
  private jobDone;
358
432
  private jobStatus;
359
433
  protected reconnect(): Promise<WorkerEndpoint>;
360
- private startPopLessPipeline;
434
+ private startTransientPipeline;
361
435
  manifest(): Promise<SourcesEntry[]>;
362
436
  models(): Promise<ModelInstanceDef[]>;
363
437
  changeManifest(manifests: SourcesEntry[]): Promise<void>;
@@ -672,4 +746,4 @@ declare namespace EyePop {
672
746
  function dataEndpoint(opts?: DataOptions): DataEndpoint;
673
747
  }
674
748
 
675
- export { AbstractJob, type Annotation, AnnotationType, type Asset, AssetStatus, type Auth0Options, type Authentication, type Box, type ChangeEvent, ChangeType, type Contour, DataEndpoint, type DataOptions, type DataSession, type Dataset, type DatasetCreate, type DatasetUpdate, type DatasetVersion, Endpoint, EndpointState, EyePop, type FileSource, type IngressEvent, type LiveMedia, type LiveSource, LoadFromJob, LoadLiveIngressJob, type Mask, type Model, type ModelCreate, ModelFormat, type ModelInstanceDef, ModelPrecisionType, ModelStatus, ModelType, type ModelUpdate, type OAuth2Auth, type OnChangeEvent, type Options, type PathSource, type Point2d, type Point3d, type PredictedClass, type PredictedKeyPoint, type PredictedKeyPoints, type PredictedLabel, type PredictedMesh, type PredictedObject, type Prediction, type ResultStream, type Roi, type SecretKeyAuth, Semaphore, type Session, type SessionAuth, type Source, type SourceParams, type SourcesEntry, Stream, type StreamSource, type StreamTime, TranscodeMode, TransientPopId, UploadJob, type UrlSource, UserReview, WebrtcBase, WebrtcWhep, WebrtcWhip, WorkerEndpoint, type WorkerOptions, type WorkerSession, EyePop as default };
749
+ export { AbstractJob, type Annotation, AnnotationType, type Asset, AssetStatus, type Auth0Options, type Authentication, type BaseComponent, type Box, type ChangeEvent, ChangeType, type ComponentFinderComponent, type Contour, type ContourFinderComponent, ContourType, DataEndpoint, type DataOptions, type DataSession, type Dataset, type DatasetCreate, type DatasetUpdate, type DatasetVersion, Endpoint, EndpointState, EyePop, type FileSource, type ForwardComponent, ForwardOperatorType, type InferenceComponent, InferenceType, type IngressEvent, type LiveMedia, type LiveSource, LoadFromJob, LoadLiveIngressJob, type Mask, type Model, type ModelCreate, ModelFormat, type ModelInstanceDef, ModelPrecisionType, ModelStatus, ModelType, type ModelUpdate, type OAuth2Auth, type OnChangeEvent, type Options, type PathSource, type Point2d, type Point3d, type Pop, type PopComponent, PopComponentType, type PopCrop, type PopForward, type PopForwardOperator, type PredictedClass, type PredictedKeyPoint, type PredictedKeyPoints, type PredictedLabel, type PredictedMesh, type PredictedObject, type Prediction, type ResultStream, type Roi, type SecretKeyAuth, Semaphore, type Session, type SessionAuth, type Source, type SourceParams, type SourcesEntry, Stream, type StreamSource, type StreamTime, type TracingComponent, TranscodeMode, TransientPopId, UploadJob, type UrlSource, UserReview, WebrtcBase, WebrtcWhep, WebrtcWhip, WorkerEndpoint, type WorkerOptions, type WorkerSession, EyePop as default };
@@ -8660,16 +8660,20 @@ __export(eyepop_exports, {
8660
8660
  AnnotationType: () => AnnotationType,
8661
8661
  AssetStatus: () => AssetStatus,
8662
8662
  ChangeType: () => ChangeType,
8663
+ ContourType: () => ContourType,
8663
8664
  DataEndpoint: () => DataEndpoint,
8664
8665
  Endpoint: () => Endpoint,
8665
8666
  EndpointState: () => EndpointState,
8666
8667
  EyePop: () => EyePop,
8668
+ ForwardOperatorType: () => ForwardOperatorType,
8669
+ InferenceType: () => InferenceType,
8667
8670
  LoadFromJob: () => LoadFromJob,
8668
8671
  LoadLiveIngressJob: () => LoadLiveIngressJob,
8669
8672
  ModelFormat: () => ModelFormat,
8670
8673
  ModelPrecisionType: () => ModelPrecisionType,
8671
8674
  ModelStatus: () => ModelStatus,
8672
8675
  ModelType: () => ModelType,
8676
+ PopComponentType: () => PopComponentType,
8673
8677
  Semaphore: () => Semaphore,
8674
8678
  Stream: () => Stream,
8675
8679
  TranscodeMode: () => TranscodeMode,
@@ -10108,40 +10112,30 @@ var WorkerEndpoint = class extends Endpoint {
10108
10112
  popName() {
10109
10113
  return this._popName;
10110
10114
  }
10111
- popComp() {
10115
+ pop() {
10112
10116
  if (this._pipeline) {
10113
- return this._pipeline.inferPipeline;
10117
+ return this._pipeline.pop || null;
10114
10118
  } else {
10115
10119
  return null;
10116
10120
  }
10117
10121
  }
10118
- postTransform() {
10119
- if (this._pipeline) {
10120
- return this._pipeline.postTransform;
10121
- } else {
10122
- return null;
10123
- }
10124
- }
10125
- async changePopComp(popComp, modelRefs = []) {
10122
+ async changePop(pop) {
10126
10123
  const client = this._client;
10127
10124
  const baseUrl = this._baseUrl;
10128
10125
  if (!baseUrl || !client) {
10129
10126
  return Promise.reject("endpoint not connected, use connect() before changePopComp()");
10130
10127
  }
10131
- const body = {
10132
- "pipeline": popComp,
10133
- "modelRefs": modelRefs
10134
- };
10135
10128
  let response = await this.fetchWithRetry(async () => {
10136
10129
  const session = await this.session();
10137
10130
  let headers = {
10138
10131
  "Authorization": `Bearer ${session.accessToken}`,
10139
10132
  "Content-Type": "application/json"
10140
10133
  };
10141
- const patch_url = `${session.baseUrl}/pipelines/${session.pipelineId}/inferencePipeline`;
10134
+ const patch_url = `${session.baseUrl}/pipelines/${session.pipelineId}/pop`;
10135
+ this._requestLogger.debug("before PATCH %s - %s", patch_url, JSON.stringify(pop));
10142
10136
  return client.fetch(patch_url, {
10143
10137
  method: "PATCH",
10144
- body: JSON.stringify(body),
10138
+ body: JSON.stringify(pop),
10145
10139
  headers
10146
10140
  });
10147
10141
  });
@@ -10150,40 +10144,9 @@ var WorkerEndpoint = class extends Endpoint {
10150
10144
  console.error(message);
10151
10145
  return Promise.reject(`Unexpected status ${response.status}: ${message}`);
10152
10146
  }
10147
+ this._requestLogger.debug("after PATCH pop");
10153
10148
  if (this._pipeline) {
10154
- this._pipeline.inferPipeline = popComp;
10155
- this._pipeline.modelRefs = modelRefs;
10156
- }
10157
- }
10158
- async changePostTransform(postTransform) {
10159
- const client = this._client;
10160
- const baseUrl = this._baseUrl;
10161
- if (!baseUrl || !client) {
10162
- return Promise.reject("endpoint not connected, use connect() before changePopComp()");
10163
- }
10164
- postTransform = postTransform ? postTransform : null;
10165
- const body = {
10166
- "transform": postTransform
10167
- };
10168
- let response = await this.fetchWithRetry(async () => {
10169
- const session = await this.session();
10170
- let headers = {
10171
- "Authorization": `Bearer ${session.accessToken}`,
10172
- "Content-Type": "application/json"
10173
- };
10174
- const patch_url = `${session.baseUrl}/pipelines/${session.pipelineId}/postTransform`;
10175
- return client.fetch(patch_url, {
10176
- method: "PATCH",
10177
- body: JSON.stringify(body),
10178
- headers
10179
- });
10180
- });
10181
- if (response.status != 204) {
10182
- const message = await response.text();
10183
- return Promise.reject(`Unexpected status ${response.status}: ${message}`);
10184
- }
10185
- if (this._pipeline) {
10186
- this._pipeline.postTransform = postTransform;
10149
+ this._pipeline.pop = pop;
10187
10150
  }
10188
10151
  }
10189
10152
  popId() {
@@ -10448,7 +10411,7 @@ var WorkerEndpoint = class extends Endpoint {
10448
10411
  }
10449
10412
  }
10450
10413
  if (this.options().popId == "transient" /* Transient */) {
10451
- this._pipelineId = await this.startPopLessPipeline();
10414
+ this._pipelineId = await this.startTransientPipeline();
10452
10415
  this._popName = this.options().popId || null;
10453
10416
  } else {
10454
10417
  this._pipelineId = config.pipeline_id;
@@ -10496,39 +10459,23 @@ var WorkerEndpoint = class extends Endpoint {
10496
10459
  this.updateState();
10497
10460
  return Promise.resolve(this);
10498
10461
  }
10499
- async startPopLessPipeline() {
10462
+ async startTransientPipeline() {
10500
10463
  const client = this._client;
10501
10464
  const baseUrl = this._baseUrl;
10502
10465
  const sandboxId = this._sandboxId;
10503
10466
  if (client == null || baseUrl == null) {
10504
10467
  return Promise.reject("endpoint not initialized");
10505
10468
  }
10506
- let pipeline;
10507
- if (this._pipeline) {
10508
- pipeline = this._pipeline.inferPipeline;
10509
- } else {
10510
- pipeline = "identity";
10511
- }
10512
- let postTransform;
10513
- if (this._pipeline && this._pipeline.postTransform) {
10514
- postTransform = this._pipeline.postTransform;
10469
+ let pop;
10470
+ if (this._pipeline && this._pipeline.pop) {
10471
+ pop = this._pipeline.pop;
10515
10472
  } else {
10516
- postTransform = null;
10517
- }
10518
- let modelRefs;
10519
- if (this._pipeline && this._pipeline.modelRefs) {
10520
- modelRefs = this._pipeline.modelRefs;
10521
- } else {
10522
- modelRefs = [];
10473
+ pop = {
10474
+ components: []
10475
+ };
10523
10476
  }
10524
10477
  const body = {
10525
- "inferPipelineDef": {
10526
- "pipeline": pipeline,
10527
- "modelRefs": modelRefs
10528
- },
10529
- "postTransformDef": {
10530
- "transform": postTransform
10531
- },
10478
+ "pop": pop,
10532
10479
  "source": {
10533
10480
  "sourceType": "NONE"
10534
10481
  },
@@ -11268,6 +11215,41 @@ var ModelPrecisionType = /* @__PURE__ */ ((ModelPrecisionType2) => {
11268
11215
  ModelPrecisionType2["uint8"] = "uint8";
11269
11216
  return ModelPrecisionType2;
11270
11217
  })(ModelPrecisionType || {});
11218
+ var PopComponentType = /* @__PURE__ */ ((PopComponentType2) => {
11219
+ PopComponentType2["FORWARD"] = "forward";
11220
+ PopComponentType2["INFERENCE"] = "inference";
11221
+ PopComponentType2["TRACING"] = "tracing";
11222
+ PopComponentType2["CONTOUR_FINDER"] = "contour_finder";
11223
+ PopComponentType2["COMPONENT_FINDER"] = "component_finder";
11224
+ return PopComponentType2;
11225
+ })(PopComponentType || {});
11226
+ var ForwardOperatorType = /* @__PURE__ */ ((ForwardOperatorType2) => {
11227
+ ForwardOperatorType2["FULL"] = "full";
11228
+ ForwardOperatorType2["CROP"] = "crop";
11229
+ ForwardOperatorType2["CROP_WITH_FULL_FALLBACK"] = "crop_with_full_fallback";
11230
+ return ForwardOperatorType2;
11231
+ })(ForwardOperatorType || {});
11232
+ var InferenceType = /* @__PURE__ */ ((InferenceType2) => {
11233
+ InferenceType2["IMAGE_CLASSIFICATION"] = "image_classification";
11234
+ InferenceType2["OBJECT_DETECTION"] = "object_detection";
11235
+ InferenceType2["KEY_POINTS"] = "key_points";
11236
+ InferenceType2["OCR"] = "ocr";
11237
+ InferenceType2["MESH"] = "mesh";
11238
+ InferenceType2["FEATURE_VECTOR"] = "feature_vector";
11239
+ InferenceType2["SEMANTIC_SEGMENTATION"] = "semantic_segmentation";
11240
+ InferenceType2["SEGMENTATION"] = "segmentation";
11241
+ return InferenceType2;
11242
+ })(InferenceType || {});
11243
+ var ContourType = /* @__PURE__ */ ((ContourType2) => {
11244
+ ContourType2["ALL_PIXELS"] = "all_pixels";
11245
+ ContourType2["POLYGON"] = "polygon";
11246
+ ContourType2["CONVEX_HULL"] = "convex_hull";
11247
+ ContourType2["HOUGH_CIRCLES"] = "hough_circles";
11248
+ ContourType2["CIRCLE"] = "circle";
11249
+ ContourType2["TRIANGLE"] = "triangle";
11250
+ ContourType2["RECTANGLE"] = "rectangle";
11251
+ return ContourType2;
11252
+ })(ContourType || {});
11271
11253
 
11272
11254
  // index.ts
11273
11255
  var readEnv = (env) => {
@@ -11369,16 +11351,20 @@ var eyepop_default = EyePop;
11369
11351
  AnnotationType,
11370
11352
  AssetStatus,
11371
11353
  ChangeType,
11354
+ ContourType,
11372
11355
  DataEndpoint,
11373
11356
  Endpoint,
11374
11357
  EndpointState,
11375
11358
  EyePop,
11359
+ ForwardOperatorType,
11360
+ InferenceType,
11376
11361
  LoadFromJob,
11377
11362
  LoadLiveIngressJob,
11378
11363
  ModelFormat,
11379
11364
  ModelPrecisionType,
11380
11365
  ModelStatus,
11381
11366
  ModelType,
11367
+ PopComponentType,
11382
11368
  Semaphore,
11383
11369
  Stream,
11384
11370
  TranscodeMode,