@camstack/addon-remote-storage 1.1.0 → 1.1.1
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/dist/s3.addon.js +1 -1
- package/dist/s3.addon.mjs +1 -1
- package/dist/sftp.addon.js +1 -1
- package/dist/sftp.addon.mjs +1 -1
- package/dist/{shared-C_Ep1mdF.js → shared-DB-bSHfI.js} +194 -1
- package/dist/{shared-Dx4AECvI.mjs → shared-Df-ffKz9.mjs} +194 -1
- package/dist/webdav.addon.js +1 -1
- package/dist/webdav.addon.mjs +1 -1
- package/package.json +1 -1
package/dist/s3.addon.js
CHANGED
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_shared = require("./shared-
|
|
5
|
+
const require_shared = require("./shared-DB-bSHfI.js");
|
|
6
6
|
let node_stream = require("node:stream");
|
|
7
7
|
let _aws_sdk_client_s3 = require("@aws-sdk/client-s3");
|
|
8
8
|
let _aws_sdk_lib_storage = require("@aws-sdk/lib-storage");
|
package/dist/s3.addon.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as BaseAddon, i as rearmIdleAbort, n as getOptionalBasePath, o as scheduleIdleAbort, s as storageProviderCapability, t as createSessionId } from "./shared-
|
|
1
|
+
import { c as BaseAddon, i as rearmIdleAbort, n as getOptionalBasePath, o as scheduleIdleAbort, s as storageProviderCapability, t as createSessionId } from "./shared-Df-ffKz9.mjs";
|
|
2
2
|
import { PassThrough } from "node:stream";
|
|
3
3
|
import { DeleteObjectCommand, GetObjectCommand, HeadBucketCommand, HeadObjectCommand, ListObjectsV2Command, PutObjectCommand, S3Client } from "@aws-sdk/client-s3";
|
|
4
4
|
import { Upload } from "@aws-sdk/lib-storage";
|
package/dist/sftp.addon.js
CHANGED
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_shared = require("./shared-
|
|
5
|
+
const require_shared = require("./shared-DB-bSHfI.js");
|
|
6
6
|
let ssh2 = require("ssh2");
|
|
7
7
|
let node_path = require("node:path");
|
|
8
8
|
node_path = require_shared.__toESM(node_path);
|
package/dist/sftp.addon.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as safeJoinRemotePath, c as BaseAddon, i as rearmIdleAbort, o as scheduleIdleAbort, r as getRequiredBasePath, s as storageProviderCapability, t as createSessionId } from "./shared-
|
|
1
|
+
import { a as safeJoinRemotePath, c as BaseAddon, i as rearmIdleAbort, o as scheduleIdleAbort, r as getRequiredBasePath, s as storageProviderCapability, t as createSessionId } from "./shared-Df-ffKz9.mjs";
|
|
2
2
|
import { Client } from "ssh2";
|
|
3
3
|
import * as path from "node:path";
|
|
4
4
|
//#region src/providers/sftp/sftp-config-schema.ts
|
|
@@ -4652,7 +4652,7 @@ function _instanceof(cls, params = {}) {
|
|
|
4652
4652
|
return inst;
|
|
4653
4653
|
}
|
|
4654
4654
|
//#endregion
|
|
4655
|
-
//#region ../types/dist/sleep-
|
|
4655
|
+
//#region ../types/dist/sleep-BV7rLc6Y.mjs
|
|
4656
4656
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
4657
4657
|
EventCategory["SystemBoot"] = "system.boot";
|
|
4658
4658
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -5131,6 +5131,12 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
5131
5131
|
* Payload: `{ deviceId, childDeviceIds, hiddenChildIds }`.
|
|
5132
5132
|
*/
|
|
5133
5133
|
EventCategory["AccessoriesChanged"] = "accessories.onAccessoriesChanged";
|
|
5134
|
+
/**
|
|
5135
|
+
* Progress update from a running model conversion job.
|
|
5136
|
+
* Payload: `{ kind: 'model-convert', phase, sessionId?, pct?, detail? }`.
|
|
5137
|
+
* Emitted by `addon-model-studio` on the converting node.
|
|
5138
|
+
*/
|
|
5139
|
+
EventCategory["ModelConvertProgress"] = "model-convert.progress";
|
|
5134
5140
|
return EventCategory;
|
|
5135
5141
|
}({});
|
|
5136
5142
|
Object.fromEntries([
|
|
@@ -6652,6 +6658,13 @@ object({
|
|
|
6652
6658
|
unreachable: number()
|
|
6653
6659
|
})
|
|
6654
6660
|
});
|
|
6661
|
+
var LabelDefinitionSchema = object({
|
|
6662
|
+
id: string(),
|
|
6663
|
+
name: string(),
|
|
6664
|
+
category: string().optional(),
|
|
6665
|
+
description: string().optional(),
|
|
6666
|
+
icon: string().optional()
|
|
6667
|
+
});
|
|
6655
6668
|
var MODEL_FORMATS = [
|
|
6656
6669
|
"onnx",
|
|
6657
6670
|
"coreml",
|
|
@@ -6660,6 +6673,120 @@ var MODEL_FORMATS = [
|
|
|
6660
6673
|
"pt"
|
|
6661
6674
|
];
|
|
6662
6675
|
/**
|
|
6676
|
+
* Multi-file format payload.
|
|
6677
|
+
*
|
|
6678
|
+
* - Directory formats (`isDirectory: true`, e.g. `.mlpackage`): files
|
|
6679
|
+
* relative to the directory root — the downloader fetches each from
|
|
6680
|
+
* `{url}/{file}` into `{modelDir}/{file}`. If omitted, it probes the
|
|
6681
|
+
* HuggingFace API (slower).
|
|
6682
|
+
* - Single-file formats (no `isDirectory`, e.g. OpenVINO IR): sibling
|
|
6683
|
+
* files fetched from the SAME remote directory as `url` and stored flat
|
|
6684
|
+
* alongside the main file — e.g. `['camstack-yolov9t.bin']` for the IR
|
|
6685
|
+
* weights next to `camstack-yolov9t.xml`.
|
|
6686
|
+
*/
|
|
6687
|
+
var ModelFormatEntrySchema = object({
|
|
6688
|
+
url: string(),
|
|
6689
|
+
sizeMB: number(),
|
|
6690
|
+
/** Whether this format is a directory bundle (e.g., .mlpackage) rather than a single file */
|
|
6691
|
+
isDirectory: boolean().optional(),
|
|
6692
|
+
/** Multi-file payload (directory members or sibling files). */
|
|
6693
|
+
files: array(string()).readonly().optional(),
|
|
6694
|
+
/** Runtime(s) that can use this format. If omitted, inferred from ModelFormat key */
|
|
6695
|
+
runtimes: array(_enum(["node", "python"])).readonly().optional()
|
|
6696
|
+
});
|
|
6697
|
+
/**
|
|
6698
|
+
* Extra file that must be downloaded alongside the model (e.g., labels JSON, dict.txt).
|
|
6699
|
+
* The downloader fetches from `url` and saves to `{modelsDir}/{filename}`.
|
|
6700
|
+
*/
|
|
6701
|
+
var ModelExtraFileSchema = object({
|
|
6702
|
+
url: string(),
|
|
6703
|
+
filename: string(),
|
|
6704
|
+
sizeMB: number()
|
|
6705
|
+
});
|
|
6706
|
+
/**
|
|
6707
|
+
* Per-format payload map. Modelled as an explicit object (one optional key
|
|
6708
|
+
* per `ModelFormat`) rather than `z.record(enum, …)` — zod v4's enum-keyed
|
|
6709
|
+
* record requires every key, but a catalog entry only ships a subset of
|
|
6710
|
+
* formats.
|
|
6711
|
+
*/
|
|
6712
|
+
var ModelFormatsSchema = object({
|
|
6713
|
+
onnx: ModelFormatEntrySchema.optional(),
|
|
6714
|
+
coreml: ModelFormatEntrySchema.optional(),
|
|
6715
|
+
openvino: ModelFormatEntrySchema.optional(),
|
|
6716
|
+
tflite: ModelFormatEntrySchema.optional(),
|
|
6717
|
+
pt: ModelFormatEntrySchema.optional()
|
|
6718
|
+
});
|
|
6719
|
+
var ModelCatalogEntrySchema = object({
|
|
6720
|
+
id: string(),
|
|
6721
|
+
name: string(),
|
|
6722
|
+
description: string(),
|
|
6723
|
+
formats: ModelFormatsSchema,
|
|
6724
|
+
inputSize: object({
|
|
6725
|
+
width: number(),
|
|
6726
|
+
height: number()
|
|
6727
|
+
}),
|
|
6728
|
+
labels: array(LabelDefinitionSchema).readonly(),
|
|
6729
|
+
inputLayout: _enum(["nchw", "nhwc"]).optional(),
|
|
6730
|
+
inputNormalization: _enum([
|
|
6731
|
+
"zero-one",
|
|
6732
|
+
"imagenet",
|
|
6733
|
+
"none"
|
|
6734
|
+
]).optional(),
|
|
6735
|
+
preprocessMode: _enum(["letterbox", "resize"]).optional(),
|
|
6736
|
+
/**
|
|
6737
|
+
* When true, the executor produces a landmark-aligned crop (similarity warp
|
|
6738
|
+
* onto the canonical template) before this step runs, instead of a plain
|
|
6739
|
+
* axis-aligned bbox crop. Required for face-recognition embedders (ArcFace):
|
|
6740
|
+
* their embeddings are only discriminative on an aligned input. The face
|
|
6741
|
+
* detector that produced the parent detail must emit 5 landmarks.
|
|
6742
|
+
*/
|
|
6743
|
+
faceAlignment: boolean().optional(),
|
|
6744
|
+
/**
|
|
6745
|
+
* Auxiliary files required at runtime (labels JSON, charset dict, etc.).
|
|
6746
|
+
* Downloaded into the same modelsDir alongside the model file.
|
|
6747
|
+
*/
|
|
6748
|
+
extraFiles: array(ModelExtraFileSchema).readonly().optional()
|
|
6749
|
+
});
|
|
6750
|
+
var ConvertTargetSchema = discriminatedUnion("format", [object({
|
|
6751
|
+
format: literal("openvino"),
|
|
6752
|
+
precisions: array(_enum(["fp16", "int8"])).min(1).readonly()
|
|
6753
|
+
}), object({ format: literal("coreml") })]);
|
|
6754
|
+
var ModelConvertMetadataSchema = object({
|
|
6755
|
+
id: string().regex(/^[a-zA-Z0-9._-]+$/),
|
|
6756
|
+
name: string(),
|
|
6757
|
+
labels: array(LabelDefinitionSchema).readonly(),
|
|
6758
|
+
inputSize: object({
|
|
6759
|
+
width: number(),
|
|
6760
|
+
height: number()
|
|
6761
|
+
}),
|
|
6762
|
+
inputLayout: _enum(["nchw", "nhwc"]).optional(),
|
|
6763
|
+
inputNormalization: _enum([
|
|
6764
|
+
"zero-one",
|
|
6765
|
+
"imagenet",
|
|
6766
|
+
"none"
|
|
6767
|
+
]).optional(),
|
|
6768
|
+
preprocessMode: _enum(["letterbox", "resize"]).optional(),
|
|
6769
|
+
outputFormat: _enum([
|
|
6770
|
+
"yolo",
|
|
6771
|
+
"ssd",
|
|
6772
|
+
"embedding",
|
|
6773
|
+
"classification",
|
|
6774
|
+
"ocr",
|
|
6775
|
+
"segmentation"
|
|
6776
|
+
]),
|
|
6777
|
+
faceAlignment: boolean().optional()
|
|
6778
|
+
});
|
|
6779
|
+
var ConvertResultSchema = object({
|
|
6780
|
+
entry: ModelCatalogEntrySchema,
|
|
6781
|
+
artifacts: array(object({
|
|
6782
|
+
format: _enum(MODEL_FORMATS),
|
|
6783
|
+
precision: _enum(["fp16", "int8"]).optional(),
|
|
6784
|
+
sizeMB: number(),
|
|
6785
|
+
validated: boolean(),
|
|
6786
|
+
files: array(string()).readonly()
|
|
6787
|
+
})).readonly()
|
|
6788
|
+
});
|
|
6789
|
+
/**
|
|
6663
6790
|
* Numeric day-of-week: 0 = Sunday … 6 = Saturday (matches `Date.getDay`).
|
|
6664
6791
|
* Named `RecordingWeekday` to avoid collision with the string-union
|
|
6665
6792
|
* `Weekday` exported from `interfaces/timezones.ts`.
|
|
@@ -12543,6 +12670,54 @@ var EnrichedWidgetMetadataSchema = WidgetMetadataSchema.extend({
|
|
|
12543
12670
|
bundleUrl: string()
|
|
12544
12671
|
});
|
|
12545
12672
|
method(_void(), array(EnrichedWidgetMetadataSchema).readonly());
|
|
12673
|
+
/**
|
|
12674
|
+
* `custom-model-registry` — collection cap exposing operator-registered
|
|
12675
|
+
* custom detection models. Each provider (today: `addon-model-studio`)
|
|
12676
|
+
* contributes a list of `CustomModelDescriptor`s; the hub auto-concatenates
|
|
12677
|
+
* them across providers (`concatCollection`).
|
|
12678
|
+
*
|
|
12679
|
+
* The detection-pipeline is *aware* of this cap: when at least one provider
|
|
12680
|
+
* exists it unions these descriptors into the per-step model picker and the
|
|
12681
|
+
* runtime model-resolution path, alongside the static catalog. When no
|
|
12682
|
+
* provider exists the consumer no-ops entirely (identical to the catalog-only
|
|
12683
|
+
* behaviour).
|
|
12684
|
+
*
|
|
12685
|
+
* A descriptor carries a full `ModelCatalogEntry` directly — the same shape
|
|
12686
|
+
* the static catalog uses — so the existing download/resolution code consumes
|
|
12687
|
+
* it unchanged. `stepId` is the detection step the model targets
|
|
12688
|
+
* (e.g. `'object-detection'`).
|
|
12689
|
+
*/
|
|
12690
|
+
var CustomModelDescriptorSchema = object({
|
|
12691
|
+
stepId: string(),
|
|
12692
|
+
entry: ModelCatalogEntrySchema
|
|
12693
|
+
});
|
|
12694
|
+
method(_void(), array(CustomModelDescriptorSchema).readonly());
|
|
12695
|
+
method(object({
|
|
12696
|
+
nodeId: string(),
|
|
12697
|
+
modelId: string(),
|
|
12698
|
+
format: _enum(MODEL_FORMATS),
|
|
12699
|
+
entry: ModelCatalogEntrySchema
|
|
12700
|
+
}), object({
|
|
12701
|
+
ok: boolean(),
|
|
12702
|
+
/** sha256 of the staged tarball (empty for a hub-local no-op). */
|
|
12703
|
+
sha256: string(),
|
|
12704
|
+
bytes: number(),
|
|
12705
|
+
/** The target node's modelsDir the artifact landed in. */
|
|
12706
|
+
path: string()
|
|
12707
|
+
}), {
|
|
12708
|
+
kind: "mutation",
|
|
12709
|
+
auth: "admin"
|
|
12710
|
+
});
|
|
12711
|
+
method(object({
|
|
12712
|
+
sourceUrl: string(),
|
|
12713
|
+
metadata: ModelConvertMetadataSchema,
|
|
12714
|
+
targets: array(ConvertTargetSchema).min(1).readonly(),
|
|
12715
|
+
calibrationRef: string().optional(),
|
|
12716
|
+
sessionId: string().optional()
|
|
12717
|
+
}), ConvertResultSchema, {
|
|
12718
|
+
kind: "mutation",
|
|
12719
|
+
auth: "admin"
|
|
12720
|
+
});
|
|
12546
12721
|
var AddonHttpRouteSchema = object({
|
|
12547
12722
|
method: _enum([
|
|
12548
12723
|
"GET",
|
|
@@ -17437,6 +17612,12 @@ Object.freeze({
|
|
|
17437
17612
|
addonId: null,
|
|
17438
17613
|
access: "create"
|
|
17439
17614
|
},
|
|
17615
|
+
"customModelRegistry.listModels": {
|
|
17616
|
+
capName: "custom-model-registry",
|
|
17617
|
+
capScope: "system",
|
|
17618
|
+
addonId: null,
|
|
17619
|
+
access: "view"
|
|
17620
|
+
},
|
|
17440
17621
|
"decoder.createSession": {
|
|
17441
17622
|
capName: "decoder",
|
|
17442
17623
|
capScope: "system",
|
|
@@ -18661,6 +18842,18 @@ Object.freeze({
|
|
|
18661
18842
|
addonId: null,
|
|
18662
18843
|
access: "view"
|
|
18663
18844
|
},
|
|
18845
|
+
"modelConvert.convert": {
|
|
18846
|
+
capName: "model-convert",
|
|
18847
|
+
capScope: "system",
|
|
18848
|
+
addonId: null,
|
|
18849
|
+
access: "create"
|
|
18850
|
+
},
|
|
18851
|
+
"modelDistributor.distributeModel": {
|
|
18852
|
+
capName: "model-distributor",
|
|
18853
|
+
capScope: "system",
|
|
18854
|
+
addonId: null,
|
|
18855
|
+
access: "create"
|
|
18856
|
+
},
|
|
18664
18857
|
"motion.isDetected": {
|
|
18665
18858
|
capName: "motion",
|
|
18666
18859
|
capScope: "device",
|
|
@@ -4629,7 +4629,7 @@ function _instanceof(cls, params = {}) {
|
|
|
4629
4629
|
return inst;
|
|
4630
4630
|
}
|
|
4631
4631
|
//#endregion
|
|
4632
|
-
//#region ../types/dist/sleep-
|
|
4632
|
+
//#region ../types/dist/sleep-BV7rLc6Y.mjs
|
|
4633
4633
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
4634
4634
|
EventCategory["SystemBoot"] = "system.boot";
|
|
4635
4635
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -5108,6 +5108,12 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
5108
5108
|
* Payload: `{ deviceId, childDeviceIds, hiddenChildIds }`.
|
|
5109
5109
|
*/
|
|
5110
5110
|
EventCategory["AccessoriesChanged"] = "accessories.onAccessoriesChanged";
|
|
5111
|
+
/**
|
|
5112
|
+
* Progress update from a running model conversion job.
|
|
5113
|
+
* Payload: `{ kind: 'model-convert', phase, sessionId?, pct?, detail? }`.
|
|
5114
|
+
* Emitted by `addon-model-studio` on the converting node.
|
|
5115
|
+
*/
|
|
5116
|
+
EventCategory["ModelConvertProgress"] = "model-convert.progress";
|
|
5111
5117
|
return EventCategory;
|
|
5112
5118
|
}({});
|
|
5113
5119
|
Object.fromEntries([
|
|
@@ -6629,6 +6635,13 @@ object({
|
|
|
6629
6635
|
unreachable: number()
|
|
6630
6636
|
})
|
|
6631
6637
|
});
|
|
6638
|
+
var LabelDefinitionSchema = object({
|
|
6639
|
+
id: string(),
|
|
6640
|
+
name: string(),
|
|
6641
|
+
category: string().optional(),
|
|
6642
|
+
description: string().optional(),
|
|
6643
|
+
icon: string().optional()
|
|
6644
|
+
});
|
|
6632
6645
|
var MODEL_FORMATS = [
|
|
6633
6646
|
"onnx",
|
|
6634
6647
|
"coreml",
|
|
@@ -6637,6 +6650,120 @@ var MODEL_FORMATS = [
|
|
|
6637
6650
|
"pt"
|
|
6638
6651
|
];
|
|
6639
6652
|
/**
|
|
6653
|
+
* Multi-file format payload.
|
|
6654
|
+
*
|
|
6655
|
+
* - Directory formats (`isDirectory: true`, e.g. `.mlpackage`): files
|
|
6656
|
+
* relative to the directory root — the downloader fetches each from
|
|
6657
|
+
* `{url}/{file}` into `{modelDir}/{file}`. If omitted, it probes the
|
|
6658
|
+
* HuggingFace API (slower).
|
|
6659
|
+
* - Single-file formats (no `isDirectory`, e.g. OpenVINO IR): sibling
|
|
6660
|
+
* files fetched from the SAME remote directory as `url` and stored flat
|
|
6661
|
+
* alongside the main file — e.g. `['camstack-yolov9t.bin']` for the IR
|
|
6662
|
+
* weights next to `camstack-yolov9t.xml`.
|
|
6663
|
+
*/
|
|
6664
|
+
var ModelFormatEntrySchema = object({
|
|
6665
|
+
url: string(),
|
|
6666
|
+
sizeMB: number(),
|
|
6667
|
+
/** Whether this format is a directory bundle (e.g., .mlpackage) rather than a single file */
|
|
6668
|
+
isDirectory: boolean().optional(),
|
|
6669
|
+
/** Multi-file payload (directory members or sibling files). */
|
|
6670
|
+
files: array(string()).readonly().optional(),
|
|
6671
|
+
/** Runtime(s) that can use this format. If omitted, inferred from ModelFormat key */
|
|
6672
|
+
runtimes: array(_enum(["node", "python"])).readonly().optional()
|
|
6673
|
+
});
|
|
6674
|
+
/**
|
|
6675
|
+
* Extra file that must be downloaded alongside the model (e.g., labels JSON, dict.txt).
|
|
6676
|
+
* The downloader fetches from `url` and saves to `{modelsDir}/{filename}`.
|
|
6677
|
+
*/
|
|
6678
|
+
var ModelExtraFileSchema = object({
|
|
6679
|
+
url: string(),
|
|
6680
|
+
filename: string(),
|
|
6681
|
+
sizeMB: number()
|
|
6682
|
+
});
|
|
6683
|
+
/**
|
|
6684
|
+
* Per-format payload map. Modelled as an explicit object (one optional key
|
|
6685
|
+
* per `ModelFormat`) rather than `z.record(enum, …)` — zod v4's enum-keyed
|
|
6686
|
+
* record requires every key, but a catalog entry only ships a subset of
|
|
6687
|
+
* formats.
|
|
6688
|
+
*/
|
|
6689
|
+
var ModelFormatsSchema = object({
|
|
6690
|
+
onnx: ModelFormatEntrySchema.optional(),
|
|
6691
|
+
coreml: ModelFormatEntrySchema.optional(),
|
|
6692
|
+
openvino: ModelFormatEntrySchema.optional(),
|
|
6693
|
+
tflite: ModelFormatEntrySchema.optional(),
|
|
6694
|
+
pt: ModelFormatEntrySchema.optional()
|
|
6695
|
+
});
|
|
6696
|
+
var ModelCatalogEntrySchema = object({
|
|
6697
|
+
id: string(),
|
|
6698
|
+
name: string(),
|
|
6699
|
+
description: string(),
|
|
6700
|
+
formats: ModelFormatsSchema,
|
|
6701
|
+
inputSize: object({
|
|
6702
|
+
width: number(),
|
|
6703
|
+
height: number()
|
|
6704
|
+
}),
|
|
6705
|
+
labels: array(LabelDefinitionSchema).readonly(),
|
|
6706
|
+
inputLayout: _enum(["nchw", "nhwc"]).optional(),
|
|
6707
|
+
inputNormalization: _enum([
|
|
6708
|
+
"zero-one",
|
|
6709
|
+
"imagenet",
|
|
6710
|
+
"none"
|
|
6711
|
+
]).optional(),
|
|
6712
|
+
preprocessMode: _enum(["letterbox", "resize"]).optional(),
|
|
6713
|
+
/**
|
|
6714
|
+
* When true, the executor produces a landmark-aligned crop (similarity warp
|
|
6715
|
+
* onto the canonical template) before this step runs, instead of a plain
|
|
6716
|
+
* axis-aligned bbox crop. Required for face-recognition embedders (ArcFace):
|
|
6717
|
+
* their embeddings are only discriminative on an aligned input. The face
|
|
6718
|
+
* detector that produced the parent detail must emit 5 landmarks.
|
|
6719
|
+
*/
|
|
6720
|
+
faceAlignment: boolean().optional(),
|
|
6721
|
+
/**
|
|
6722
|
+
* Auxiliary files required at runtime (labels JSON, charset dict, etc.).
|
|
6723
|
+
* Downloaded into the same modelsDir alongside the model file.
|
|
6724
|
+
*/
|
|
6725
|
+
extraFiles: array(ModelExtraFileSchema).readonly().optional()
|
|
6726
|
+
});
|
|
6727
|
+
var ConvertTargetSchema = discriminatedUnion("format", [object({
|
|
6728
|
+
format: literal("openvino"),
|
|
6729
|
+
precisions: array(_enum(["fp16", "int8"])).min(1).readonly()
|
|
6730
|
+
}), object({ format: literal("coreml") })]);
|
|
6731
|
+
var ModelConvertMetadataSchema = object({
|
|
6732
|
+
id: string().regex(/^[a-zA-Z0-9._-]+$/),
|
|
6733
|
+
name: string(),
|
|
6734
|
+
labels: array(LabelDefinitionSchema).readonly(),
|
|
6735
|
+
inputSize: object({
|
|
6736
|
+
width: number(),
|
|
6737
|
+
height: number()
|
|
6738
|
+
}),
|
|
6739
|
+
inputLayout: _enum(["nchw", "nhwc"]).optional(),
|
|
6740
|
+
inputNormalization: _enum([
|
|
6741
|
+
"zero-one",
|
|
6742
|
+
"imagenet",
|
|
6743
|
+
"none"
|
|
6744
|
+
]).optional(),
|
|
6745
|
+
preprocessMode: _enum(["letterbox", "resize"]).optional(),
|
|
6746
|
+
outputFormat: _enum([
|
|
6747
|
+
"yolo",
|
|
6748
|
+
"ssd",
|
|
6749
|
+
"embedding",
|
|
6750
|
+
"classification",
|
|
6751
|
+
"ocr",
|
|
6752
|
+
"segmentation"
|
|
6753
|
+
]),
|
|
6754
|
+
faceAlignment: boolean().optional()
|
|
6755
|
+
});
|
|
6756
|
+
var ConvertResultSchema = object({
|
|
6757
|
+
entry: ModelCatalogEntrySchema,
|
|
6758
|
+
artifacts: array(object({
|
|
6759
|
+
format: _enum(MODEL_FORMATS),
|
|
6760
|
+
precision: _enum(["fp16", "int8"]).optional(),
|
|
6761
|
+
sizeMB: number(),
|
|
6762
|
+
validated: boolean(),
|
|
6763
|
+
files: array(string()).readonly()
|
|
6764
|
+
})).readonly()
|
|
6765
|
+
});
|
|
6766
|
+
/**
|
|
6640
6767
|
* Numeric day-of-week: 0 = Sunday … 6 = Saturday (matches `Date.getDay`).
|
|
6641
6768
|
* Named `RecordingWeekday` to avoid collision with the string-union
|
|
6642
6769
|
* `Weekday` exported from `interfaces/timezones.ts`.
|
|
@@ -12520,6 +12647,54 @@ var EnrichedWidgetMetadataSchema = WidgetMetadataSchema.extend({
|
|
|
12520
12647
|
bundleUrl: string()
|
|
12521
12648
|
});
|
|
12522
12649
|
method(_void(), array(EnrichedWidgetMetadataSchema).readonly());
|
|
12650
|
+
/**
|
|
12651
|
+
* `custom-model-registry` — collection cap exposing operator-registered
|
|
12652
|
+
* custom detection models. Each provider (today: `addon-model-studio`)
|
|
12653
|
+
* contributes a list of `CustomModelDescriptor`s; the hub auto-concatenates
|
|
12654
|
+
* them across providers (`concatCollection`).
|
|
12655
|
+
*
|
|
12656
|
+
* The detection-pipeline is *aware* of this cap: when at least one provider
|
|
12657
|
+
* exists it unions these descriptors into the per-step model picker and the
|
|
12658
|
+
* runtime model-resolution path, alongside the static catalog. When no
|
|
12659
|
+
* provider exists the consumer no-ops entirely (identical to the catalog-only
|
|
12660
|
+
* behaviour).
|
|
12661
|
+
*
|
|
12662
|
+
* A descriptor carries a full `ModelCatalogEntry` directly — the same shape
|
|
12663
|
+
* the static catalog uses — so the existing download/resolution code consumes
|
|
12664
|
+
* it unchanged. `stepId` is the detection step the model targets
|
|
12665
|
+
* (e.g. `'object-detection'`).
|
|
12666
|
+
*/
|
|
12667
|
+
var CustomModelDescriptorSchema = object({
|
|
12668
|
+
stepId: string(),
|
|
12669
|
+
entry: ModelCatalogEntrySchema
|
|
12670
|
+
});
|
|
12671
|
+
method(_void(), array(CustomModelDescriptorSchema).readonly());
|
|
12672
|
+
method(object({
|
|
12673
|
+
nodeId: string(),
|
|
12674
|
+
modelId: string(),
|
|
12675
|
+
format: _enum(MODEL_FORMATS),
|
|
12676
|
+
entry: ModelCatalogEntrySchema
|
|
12677
|
+
}), object({
|
|
12678
|
+
ok: boolean(),
|
|
12679
|
+
/** sha256 of the staged tarball (empty for a hub-local no-op). */
|
|
12680
|
+
sha256: string(),
|
|
12681
|
+
bytes: number(),
|
|
12682
|
+
/** The target node's modelsDir the artifact landed in. */
|
|
12683
|
+
path: string()
|
|
12684
|
+
}), {
|
|
12685
|
+
kind: "mutation",
|
|
12686
|
+
auth: "admin"
|
|
12687
|
+
});
|
|
12688
|
+
method(object({
|
|
12689
|
+
sourceUrl: string(),
|
|
12690
|
+
metadata: ModelConvertMetadataSchema,
|
|
12691
|
+
targets: array(ConvertTargetSchema).min(1).readonly(),
|
|
12692
|
+
calibrationRef: string().optional(),
|
|
12693
|
+
sessionId: string().optional()
|
|
12694
|
+
}), ConvertResultSchema, {
|
|
12695
|
+
kind: "mutation",
|
|
12696
|
+
auth: "admin"
|
|
12697
|
+
});
|
|
12523
12698
|
var AddonHttpRouteSchema = object({
|
|
12524
12699
|
method: _enum([
|
|
12525
12700
|
"GET",
|
|
@@ -17414,6 +17589,12 @@ Object.freeze({
|
|
|
17414
17589
|
addonId: null,
|
|
17415
17590
|
access: "create"
|
|
17416
17591
|
},
|
|
17592
|
+
"customModelRegistry.listModels": {
|
|
17593
|
+
capName: "custom-model-registry",
|
|
17594
|
+
capScope: "system",
|
|
17595
|
+
addonId: null,
|
|
17596
|
+
access: "view"
|
|
17597
|
+
},
|
|
17417
17598
|
"decoder.createSession": {
|
|
17418
17599
|
capName: "decoder",
|
|
17419
17600
|
capScope: "system",
|
|
@@ -18638,6 +18819,18 @@ Object.freeze({
|
|
|
18638
18819
|
addonId: null,
|
|
18639
18820
|
access: "view"
|
|
18640
18821
|
},
|
|
18822
|
+
"modelConvert.convert": {
|
|
18823
|
+
capName: "model-convert",
|
|
18824
|
+
capScope: "system",
|
|
18825
|
+
addonId: null,
|
|
18826
|
+
access: "create"
|
|
18827
|
+
},
|
|
18828
|
+
"modelDistributor.distributeModel": {
|
|
18829
|
+
capName: "model-distributor",
|
|
18830
|
+
capScope: "system",
|
|
18831
|
+
addonId: null,
|
|
18832
|
+
access: "create"
|
|
18833
|
+
},
|
|
18641
18834
|
"motion.isDetected": {
|
|
18642
18835
|
capName: "motion",
|
|
18643
18836
|
capScope: "device",
|
package/dist/webdav.addon.js
CHANGED
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_shared = require("./shared-
|
|
5
|
+
const require_shared = require("./shared-DB-bSHfI.js");
|
|
6
6
|
let node_stream = require("node:stream");
|
|
7
7
|
let webdav = require("webdav");
|
|
8
8
|
//#region src/providers/webdav/webdav-config-schema.ts
|
package/dist/webdav.addon.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as safeJoinRemotePath, c as BaseAddon, i as rearmIdleAbort, o as scheduleIdleAbort, r as getRequiredBasePath, s as storageProviderCapability, t as createSessionId } from "./shared-
|
|
1
|
+
import { a as safeJoinRemotePath, c as BaseAddon, i as rearmIdleAbort, o as scheduleIdleAbort, r as getRequiredBasePath, s as storageProviderCapability, t as createSessionId } from "./shared-Df-ffKz9.mjs";
|
|
2
2
|
import { PassThrough } from "node:stream";
|
|
3
3
|
import { AuthType, createClient } from "webdav";
|
|
4
4
|
//#region src/providers/webdav/webdav-config-schema.ts
|
package/package.json
CHANGED