@camstack/addon-provider-dreame 0.2.28 → 0.2.29
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/addon.js +249 -79
- package/dist/addon.mjs +249 -79
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -57135,7 +57135,7 @@ function method(input, output, options) {
|
|
|
57135
57135
|
input,
|
|
57136
57136
|
output,
|
|
57137
57137
|
kind: options?.kind ?? "query",
|
|
57138
|
-
auth: options
|
|
57138
|
+
...options?.auth !== void 0 ? { auth: options.auth } : {},
|
|
57139
57139
|
...options?.access !== void 0 ? { access: options.access } : {},
|
|
57140
57140
|
...options?.caller !== void 0 ? { caller: options.caller } : {},
|
|
57141
57141
|
timeoutMs: options?.timeoutMs
|
|
@@ -57159,7 +57159,7 @@ function event(data) {
|
|
|
57159
57159
|
}
|
|
57160
57160
|
var StaticDirOutputSchema$1 = object({ staticDir: string() });
|
|
57161
57161
|
var VersionOutputSchema$1 = object({ version: string() });
|
|
57162
|
-
method(_void(), StaticDirOutputSchema$1), method(_void(), VersionOutputSchema$1);
|
|
57162
|
+
method(_void(), StaticDirOutputSchema$1, { auth: "admin" }), method(_void(), VersionOutputSchema$1, { auth: "admin" });
|
|
57163
57163
|
var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
57164
57164
|
DeviceType["Camera"] = "camera";
|
|
57165
57165
|
DeviceType["Hub"] = "hub";
|
|
@@ -57480,7 +57480,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
57480
57480
|
}({});
|
|
57481
57481
|
var StaticDirOutputSchema = object({ staticDir: string() });
|
|
57482
57482
|
var VersionOutputSchema = object({ version: string() });
|
|
57483
|
-
method(_void(), StaticDirOutputSchema), method(_void(), VersionOutputSchema);
|
|
57483
|
+
method(_void(), StaticDirOutputSchema, { auth: "admin" }), method(_void(), VersionOutputSchema, { auth: "admin" });
|
|
57484
57484
|
/**
|
|
57485
57485
|
* device-ops — device-scoped cap that unifies the per-IDevice operations
|
|
57486
57486
|
* previously routed through the `.device-ops` Moleculer bridge service.
|
|
@@ -58106,24 +58106,6 @@ var RecordingRetentionSchema = object({
|
|
|
58106
58106
|
maxSizeGb: number().min(0).optional()
|
|
58107
58107
|
});
|
|
58108
58108
|
/**
|
|
58109
|
-
* Scrub-thumbnail fidelity preset — the single per-camera selector bundling the
|
|
58110
|
-
* sprite tile RESOLUTION + JPEG QUALITY the recorder packs timeline-scrub
|
|
58111
|
-
* previews at. Five graduated steps; absent on a config = `standard` (the
|
|
58112
|
-
* shipped default, matching `sheet-geometry`/`sheet-composer`).
|
|
58113
|
-
*
|
|
58114
|
-
* Existing sheets are IMMUTABLE — a changed preset applies to NEW windows only.
|
|
58115
|
-
* Each window's index sidecar carries its own tile dims, so a camera whose
|
|
58116
|
-
* preset changed over time renders every historical window at the dims it was
|
|
58117
|
-
* written with.
|
|
58118
|
-
*/
|
|
58119
|
-
var ScrubThumbnailPresetSchema = _enum([
|
|
58120
|
-
"minimal",
|
|
58121
|
-
"low",
|
|
58122
|
-
"standard",
|
|
58123
|
-
"high",
|
|
58124
|
-
"max"
|
|
58125
|
-
]);
|
|
58126
|
-
/**
|
|
58127
58109
|
* The full per-camera recording intent — the wire shape of a RecordingTarget.
|
|
58128
58110
|
*
|
|
58129
58111
|
* `bands` is the ONLY authored recording intent: what to record, when, and on
|
|
@@ -58131,7 +58113,11 @@ var ScrubThumbnailPresetSchema = _enum([
|
|
|
58131
58113
|
* other field is a storage knob (profiles, segment length, retention, scrub).
|
|
58132
58114
|
*
|
|
58133
58115
|
* STRICT on purpose: the legacy authoring surface (`schedule`/`schedules`/
|
|
58134
|
-
* `triggers`/`preBufferSec`/`postBufferSec`/`rules`) was retired 2026-07-30
|
|
58116
|
+
* `triggers`/`preBufferSec`/`postBufferSec`/`rules`) was retired 2026-07-30,
|
|
58117
|
+
* and `scrubThumbnails` — a five-step fidelity knob for a sprite tier that was
|
|
58118
|
+
* deleted on 2026-07-24 and had ZERO consumers in the recorder — on 2026-08-25
|
|
58119
|
+
* (D62: a switch that writes a store nobody reads is worse than no switch).
|
|
58120
|
+
* Stored rows keep loading: the READ schema is `.strip()` (config-store.ts).
|
|
58135
58121
|
* A stale caller must fail loudly — silently stripping its legacy intent would
|
|
58136
58122
|
* persist a band-less config, i.e. silently stop recording the camera.
|
|
58137
58123
|
*/
|
|
@@ -58154,14 +58140,7 @@ var RecordingConfigSchema = object({
|
|
|
58154
58140
|
* "off" is the absence of a covering band, never a band value.
|
|
58155
58141
|
*/
|
|
58156
58142
|
bands: array(RecordingBandSchema).default([]),
|
|
58157
|
-
retention: RecordingRetentionSchema.optional()
|
|
58158
|
-
/**
|
|
58159
|
-
* Per-camera scrub-thumbnail fidelity preset (resolution + JPEG quality for
|
|
58160
|
-
* timeline-scrub sprite previews). Absent = `standard`. Applies to NEW
|
|
58161
|
-
* windows only — existing sheets are immutable, and each window's index
|
|
58162
|
-
* carries its own tile dims so mixed-preset history renders correctly.
|
|
58163
|
-
*/
|
|
58164
|
-
scrubThumbnails: ScrubThumbnailPresetSchema.optional()
|
|
58143
|
+
retention: RecordingRetentionSchema.optional()
|
|
58165
58144
|
}).strict();
|
|
58166
58145
|
/**
|
|
58167
58146
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
@@ -58237,10 +58216,11 @@ var RelocateFootageInputSchema = object({
|
|
|
58237
58216
|
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
58238
58217
|
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
58239
58218
|
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
58240
|
-
var
|
|
58219
|
+
var RelocateMediaInputSchema = object({
|
|
58241
58220
|
toLocationId: string(),
|
|
58242
58221
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
58243
|
-
})
|
|
58222
|
+
});
|
|
58223
|
+
var StorageMigrationMediaMoveInputSchema = RelocateMediaInputSchema.extend({ leaseId: string().min(1) });
|
|
58244
58224
|
/** The independently selectable logical storage classes. `recordings`
|
|
58245
58225
|
* encompasses the high and mid segment profiles; `recordingsLow` is low
|
|
58246
58226
|
* segments; `eventMedia` is post-analysis blobs. */
|
|
@@ -58535,7 +58515,26 @@ var LabelDefinitionSchema = object({
|
|
|
58535
58515
|
description: string().optional(),
|
|
58536
58516
|
icon: string().optional()
|
|
58537
58517
|
});
|
|
58538
|
-
|
|
58518
|
+
/**
|
|
58519
|
+
* Wire schema for a per-model CATALOG classMap override
|
|
58520
|
+
* (`ModelCatalogEntry.classMap` / `ModelConvertMetadata.classMap`) —
|
|
58521
|
+
* restricted to {@link CLASS_MAP_MACRO_TARGETS}, the only macros the
|
|
58522
|
+
* detection pipeline executor actually routes.
|
|
58523
|
+
*
|
|
58524
|
+
* This is deliberately a DIFFERENT, narrower shape than the general-purpose
|
|
58525
|
+
* `ClassMapDefinition` interface above (e.g. `IDetectionAddon.getClassMap()`
|
|
58526
|
+
* and the audio `YAMNET_TO_MACRO` catalog both use macro targets outside this
|
|
58527
|
+
* enum) — the two used to share the name `ClassMapDefinition`/
|
|
58528
|
+
* `ClassMapDefinitionSchema`, which made the schema-type-twin guard
|
|
58529
|
+
* (`scripts/check-schema-type-twins.ts`) flag them as a duplicated shape. They
|
|
58530
|
+
* are not: it is two different concepts colliding on a name. Keep this type
|
|
58531
|
+
* under its own name rather than reusing `ClassMapDefinition` — reusing it
|
|
58532
|
+
* would either narrow every `ClassMapDefinition` consumer to the four
|
|
58533
|
+
* detection macros (breaking `YAMNET_TO_MACRO`) or drop the validation this
|
|
58534
|
+
* schema exists for (see the "rejects a classMap whose target is not a
|
|
58535
|
+
* detection macro" test in `model-catalog-schema.test.ts`).
|
|
58536
|
+
*/
|
|
58537
|
+
var DetectionCatalogClassMapSchema = object({
|
|
58539
58538
|
mapping: record(string(), _enum([
|
|
58540
58539
|
"person",
|
|
58541
58540
|
"vehicle",
|
|
@@ -58740,7 +58739,7 @@ var ModelCatalogEntrySchema = object({
|
|
|
58740
58739
|
* applies (Frigate / COCO public catalog). Set on a custom model whose raw
|
|
58741
58740
|
* labels already ARE the CamStack macros (Scrypted identity map).
|
|
58742
58741
|
*/
|
|
58743
|
-
classMap:
|
|
58742
|
+
classMap: DetectionCatalogClassMapSchema.optional()
|
|
58744
58743
|
});
|
|
58745
58744
|
var ConvertTargetSchema = discriminatedUnion("format", [object({
|
|
58746
58745
|
format: literal("openvino"),
|
|
@@ -58770,7 +58769,7 @@ var ModelConvertMetadataSchema = object({
|
|
|
58770
58769
|
"segmentation"
|
|
58771
58770
|
]),
|
|
58772
58771
|
faceAlignment: boolean().optional(),
|
|
58773
|
-
classMap:
|
|
58772
|
+
classMap: DetectionCatalogClassMapSchema.optional()
|
|
58774
58773
|
});
|
|
58775
58774
|
var ConvertResultSchema = object({
|
|
58776
58775
|
entry: ModelCatalogEntrySchema,
|
|
@@ -59633,7 +59632,7 @@ var AddonPageDeclarationSchema = object({
|
|
|
59633
59632
|
/** Display label for a CUSTOM `section` id (ignored for well-known ids). */
|
|
59634
59633
|
sectionLabel: string().optional()
|
|
59635
59634
|
});
|
|
59636
|
-
method(_void(), array(AddonPageDeclarationSchema).readonly());
|
|
59635
|
+
method(_void(), array(AddonPageDeclarationSchema).readonly(), { auth: "admin" });
|
|
59637
59636
|
var AddonHttpRouteSchema = object({
|
|
59638
59637
|
method: _enum([
|
|
59639
59638
|
"GET",
|
|
@@ -59868,7 +59867,7 @@ var WidgetMetadataSchema = object({
|
|
|
59868
59867
|
defaultColumns: number().int().min(1).max(12).default(6),
|
|
59869
59868
|
defaultRows: number().int().min(1).max(12).default(1)
|
|
59870
59869
|
});
|
|
59871
|
-
method(_void(), array(WidgetMetadataSchema).readonly());
|
|
59870
|
+
method(_void(), array(WidgetMetadataSchema).readonly(), { auth: "admin" });
|
|
59872
59871
|
/**
|
|
59873
59872
|
* `addon-widgets` — system-scoped singleton aggregator cap. Public-facing
|
|
59874
59873
|
* surface that admin-ui consumes through `useAddonWidgetsListWidgets()`.
|
|
@@ -61492,7 +61491,7 @@ var CustomModelDescriptorSchema = object({
|
|
|
61492
61491
|
stepId: string(),
|
|
61493
61492
|
entry: ModelCatalogEntrySchema
|
|
61494
61493
|
});
|
|
61495
|
-
method(_void(), array(CustomModelDescriptorSchema).readonly());
|
|
61494
|
+
method(_void(), array(CustomModelDescriptorSchema).readonly(), { auth: "admin" });
|
|
61496
61495
|
/**
|
|
61497
61496
|
* Query filter for settings-store collections.
|
|
61498
61497
|
*/
|
|
@@ -61579,7 +61578,8 @@ method(object({
|
|
|
61579
61578
|
}), _void(), { kind: "mutation" }), method(object({
|
|
61580
61579
|
namespace: string().optional(),
|
|
61581
61580
|
collection: string(),
|
|
61582
|
-
filter: QueryFilterSchema.optional()
|
|
61581
|
+
filter: QueryFilterSchema.optional(),
|
|
61582
|
+
columns: array(string()).readonly().optional()
|
|
61583
61583
|
}), array(SettingsRecordSchema).readonly()), method(object({
|
|
61584
61584
|
namespace: string().optional(),
|
|
61585
61585
|
collection: string(),
|
|
@@ -61642,46 +61642,87 @@ var EngineInfoSchema = object({
|
|
|
61642
61642
|
kind: _enum(["relational", "vector"]),
|
|
61643
61643
|
displayName: string()
|
|
61644
61644
|
});
|
|
61645
|
-
method(_void(), EngineInfoSchema), method(object({
|
|
61645
|
+
method(_void(), EngineInfoSchema, { auth: "admin" }), method(object({
|
|
61646
61646
|
namespace: string().optional(),
|
|
61647
61647
|
collection: string(),
|
|
61648
61648
|
key: string()
|
|
61649
|
-
}), unknown()), method(object({
|
|
61649
|
+
}), unknown(), { auth: "admin" }), method(object({
|
|
61650
61650
|
namespace: string().optional(),
|
|
61651
61651
|
collection: string(),
|
|
61652
61652
|
key: string(),
|
|
61653
61653
|
value: unknown()
|
|
61654
|
-
}), _void(), {
|
|
61654
|
+
}), _void(), {
|
|
61655
|
+
kind: "mutation",
|
|
61656
|
+
auth: "admin"
|
|
61657
|
+
}), method(object({
|
|
61655
61658
|
namespace: string().optional(),
|
|
61656
61659
|
collection: string(),
|
|
61657
|
-
filter: QueryFilterSchema.optional()
|
|
61658
|
-
|
|
61660
|
+
filter: QueryFilterSchema.optional(),
|
|
61661
|
+
/**
|
|
61662
|
+
* SQL-level column projection — MUST mirror `settings-store.query`.
|
|
61663
|
+
*
|
|
61664
|
+
* ⚠ An earlier version of this comment blamed Zod stripping, and that
|
|
61665
|
+
* was wrong — corrected 2026-08-26 after the hop map
|
|
61666
|
+
* (`docs/design/2026-08-26-mappa-hop-argomenti.md`) traced the path.
|
|
61667
|
+
* There is **no Zod parse at all** between the door and the engine: the
|
|
61668
|
+
* dispatcher forwards the payload verbatim and UDS carries it whole. A
|
|
61669
|
+
* field declared here reaches `SqliteSettingsBackend` either way.
|
|
61670
|
+
*
|
|
61671
|
+
* What actually lost `columns` was the THIRD declaration of this shape:
|
|
61672
|
+
* `SettingsQueryInput` in `interfaces/storage.ts`, a hand-written TS
|
|
61673
|
+
* interface the engine destructures from. The field existed on both
|
|
61674
|
+
* schemas and the engine still never read it, because nothing checks a
|
|
61675
|
+
* registered provider against `InferProvider<cap>` —
|
|
61676
|
+
* `ProviderRegistration.provider` is typed `object`.
|
|
61677
|
+
*
|
|
61678
|
+
* It is declared here anyway, and must stay in step with
|
|
61679
|
+
* `settings-store.query`: a caller reading only the cap definitions has
|
|
61680
|
+
* to be able to see that this call carries a projection.
|
|
61681
|
+
* `data-door-schema-parity.spec.ts` keeps the two aligned.
|
|
61682
|
+
*/
|
|
61683
|
+
columns: array(string()).readonly().optional()
|
|
61684
|
+
}), array(SettingsRecordSchema).readonly(), { auth: "admin" }), method(object({
|
|
61659
61685
|
namespace: string().optional(),
|
|
61660
61686
|
collection: string(),
|
|
61661
61687
|
record: SettingsRecordSchema
|
|
61662
|
-
}), _void(), {
|
|
61688
|
+
}), _void(), {
|
|
61689
|
+
kind: "mutation",
|
|
61690
|
+
auth: "admin"
|
|
61691
|
+
}), method(object({
|
|
61663
61692
|
namespace: string().optional(),
|
|
61664
61693
|
collection: string(),
|
|
61665
61694
|
id: string(),
|
|
61666
61695
|
data: record(string(), unknown())
|
|
61667
|
-
}), _void(), {
|
|
61696
|
+
}), _void(), {
|
|
61697
|
+
kind: "mutation",
|
|
61698
|
+
auth: "admin"
|
|
61699
|
+
}), method(object({
|
|
61668
61700
|
namespace: string().optional(),
|
|
61669
61701
|
collection: string(),
|
|
61670
61702
|
key: string()
|
|
61671
|
-
}), _void(), {
|
|
61703
|
+
}), _void(), {
|
|
61704
|
+
kind: "mutation",
|
|
61705
|
+
auth: "admin"
|
|
61706
|
+
}), method(object({
|
|
61672
61707
|
namespace: string().optional(),
|
|
61673
61708
|
collection: string(),
|
|
61674
61709
|
filter: MutationFilterSchema
|
|
61675
|
-
}), object({ deleted: number().int() }), {
|
|
61710
|
+
}), object({ deleted: number().int() }), {
|
|
61711
|
+
kind: "mutation",
|
|
61712
|
+
auth: "admin"
|
|
61713
|
+
}), method(object({
|
|
61676
61714
|
namespace: string().optional(),
|
|
61677
61715
|
collection: string(),
|
|
61678
61716
|
filter: MutationFilterSchema,
|
|
61679
61717
|
data: record(string(), unknown())
|
|
61680
|
-
}), object({ updated: number().int() }), {
|
|
61718
|
+
}), object({ updated: number().int() }), {
|
|
61719
|
+
kind: "mutation",
|
|
61720
|
+
auth: "admin"
|
|
61721
|
+
}), method(object({
|
|
61681
61722
|
namespace: string().optional(),
|
|
61682
61723
|
collection: string(),
|
|
61683
61724
|
filter: QueryFilterSchema.optional()
|
|
61684
|
-
}), number()), method(object({
|
|
61725
|
+
}), number(), { auth: "admin" }), method(object({
|
|
61685
61726
|
namespace: string().optional(),
|
|
61686
61727
|
collection: string(),
|
|
61687
61728
|
field: string(),
|
|
@@ -61691,15 +61732,18 @@ method(_void(), EngineInfoSchema), method(object({
|
|
|
61691
61732
|
}), array(object({
|
|
61692
61733
|
bucket: number().int(),
|
|
61693
61734
|
count: number().int()
|
|
61694
|
-
})).readonly()), method(object({
|
|
61735
|
+
})).readonly(), { auth: "admin" }), method(object({
|
|
61695
61736
|
namespace: string().optional(),
|
|
61696
61737
|
collection: string()
|
|
61697
|
-
}), boolean()), method(object({
|
|
61738
|
+
}), boolean(), { auth: "admin" }), method(object({
|
|
61698
61739
|
namespace: string().optional(),
|
|
61699
61740
|
collection: string(),
|
|
61700
61741
|
columns: array(CollectionColumnSchema).readonly(),
|
|
61701
61742
|
indexes: array(CollectionIndexSchema).readonly().optional()
|
|
61702
|
-
}), _void(), {
|
|
61743
|
+
}), _void(), {
|
|
61744
|
+
kind: "mutation",
|
|
61745
|
+
auth: "admin"
|
|
61746
|
+
});
|
|
61703
61747
|
/**
|
|
61704
61748
|
* shm ring usage stats for a `frameSink: 'shm'` decoder session —
|
|
61705
61749
|
* exposed via `decoder.getShmStats` so downstream consumers can
|
|
@@ -63006,7 +63050,7 @@ method(object({
|
|
|
63006
63050
|
crop: _instanceof(Uint8Array),
|
|
63007
63051
|
width: number(),
|
|
63008
63052
|
height: number()
|
|
63009
|
-
}), EmbeddingResultSchema), method(object({ text: string() }), EmbeddingResultSchema), method(_void(), EmbeddingInfoSchema);
|
|
63053
|
+
}), EmbeddingResultSchema, { auth: "admin" }), method(object({ text: string() }), EmbeddingResultSchema, { auth: "admin" }), method(_void(), EmbeddingInfoSchema, { auth: "admin" });
|
|
63010
63054
|
/**
|
|
63011
63055
|
* filesystem-browse — per-node capability for browsing the node's local
|
|
63012
63056
|
* filesystem. Reads are unconfined (whole filesystem, from `/` down); WRITES
|
|
@@ -63299,19 +63343,22 @@ method(LlmGenerateBaseInputSchema.extend({
|
|
|
63299
63343
|
runtime: ManagedRuntimeConfigSchema,
|
|
63300
63344
|
/** The managed profile's timeout, threaded by the hub provider. */
|
|
63301
63345
|
timeoutMs: number().int().positive().optional()
|
|
63302
|
-
}), LlmGenerateResultSchema, {
|
|
63346
|
+
}), LlmGenerateResultSchema, {
|
|
63347
|
+
kind: "mutation",
|
|
63348
|
+
auth: "admin"
|
|
63349
|
+
}), method(object({ runtime: ManagedRuntimeConfigSchema }), LlmRuntimeStatusSchema, {
|
|
63303
63350
|
kind: "mutation",
|
|
63304
63351
|
auth: "admin"
|
|
63305
63352
|
}), method(object({}), _void(), {
|
|
63306
63353
|
kind: "mutation",
|
|
63307
63354
|
auth: "admin"
|
|
63308
|
-
}), method(object({}), LlmRuntimeStatusSchema), method(object({ model: ManagedModelRefSchema }), _void(), {
|
|
63355
|
+
}), method(object({}), LlmRuntimeStatusSchema, { auth: "admin" }), method(object({ model: ManagedModelRefSchema }), _void(), {
|
|
63309
63356
|
kind: "mutation",
|
|
63310
63357
|
auth: "admin"
|
|
63311
63358
|
}), method(object({ file: string() }), _void(), {
|
|
63312
63359
|
kind: "mutation",
|
|
63313
63360
|
auth: "admin"
|
|
63314
|
-
}), method(object({}), array(LlmNodeModelSchema)), method(object({}), LlmRuntimeDiskUsageSchema);
|
|
63361
|
+
}), method(object({}), array(LlmNodeModelSchema), { auth: "admin" }), method(object({}), LlmRuntimeDiskUsageSchema, { auth: "admin" });
|
|
63315
63362
|
/**
|
|
63316
63363
|
* `llm` — consumer-facing LLM surface (spec §1-§3). Collection-mode: array
|
|
63317
63364
|
* methods concat-fan across providers; single-row methods route to ONE
|
|
@@ -66822,7 +66869,7 @@ var OauthIntegrationDescriptorSchema = object({
|
|
|
66822
66869
|
*/
|
|
66823
66870
|
refreshTokenTtlSec: union([number().int().positive(), literal("never")]).optional()
|
|
66824
66871
|
});
|
|
66825
|
-
method(_void(), OauthIntegrationDescriptorSchema);
|
|
66872
|
+
method(_void(), OauthIntegrationDescriptorSchema, { auth: "admin" });
|
|
66826
66873
|
/**
|
|
66827
66874
|
* pipeline-analytics — device-scoped wrapper cap. Refines raw
|
|
66828
66875
|
* per-frame detections emitted by the pipeline runner into tracked
|
|
@@ -68017,6 +68064,15 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
68017
68064
|
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
68018
68065
|
kind: "mutation",
|
|
68019
68066
|
auth: "admin"
|
|
68067
|
+
}), method(RelocateMediaInputSchema, object({ jobId: string() }), {
|
|
68068
|
+
kind: "mutation",
|
|
68069
|
+
auth: "admin"
|
|
68070
|
+
}), method(object({}), array(RelocateJobSchema).readonly(), {
|
|
68071
|
+
kind: "query",
|
|
68072
|
+
auth: "admin"
|
|
68073
|
+
}), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
68074
|
+
kind: "mutation",
|
|
68075
|
+
auth: "admin"
|
|
68020
68076
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
68021
68077
|
kind: "query",
|
|
68022
68078
|
auth: "admin"
|
|
@@ -68171,6 +68227,11 @@ object({
|
|
|
68171
68227
|
"jpeg"
|
|
68172
68228
|
])
|
|
68173
68229
|
});
|
|
68230
|
+
/**
|
|
68231
|
+
* Process-local frame identity. It is serializable so it can ride an in-process
|
|
68232
|
+
* capability call, but `registryId` deliberately prevents resolution in any
|
|
68233
|
+
* other process or execution group.
|
|
68234
|
+
*/
|
|
68174
68235
|
var FrameRefSchema = object({
|
|
68175
68236
|
registryId: string().min(1),
|
|
68176
68237
|
id: string().min(1),
|
|
@@ -70376,7 +70437,7 @@ method(object({
|
|
|
70376
70437
|
* linking rather than produce an eternal token.
|
|
70377
70438
|
*/
|
|
70378
70439
|
ttlSec: union([number().int().positive(), literal("never")]).optional()
|
|
70379
|
-
}), object({ token: string() })), method(object({ token: string() }), SsoBridgeClaimsSchema.nullable());
|
|
70440
|
+
}), object({ token: string() }), { auth: "admin" }), method(object({ token: string() }), SsoBridgeClaimsSchema.nullable(), { auth: "admin" });
|
|
70380
70441
|
var ProviderListEntrySchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
70381
70442
|
providerId: string().min(1),
|
|
70382
70443
|
displayName: string().min(1),
|
|
@@ -70471,10 +70532,13 @@ var EvictResultSchema = object({
|
|
|
70471
70532
|
/** True when the provider has nothing left it is willing to drop on this location. */
|
|
70472
70533
|
exhausted: boolean()
|
|
70473
70534
|
});
|
|
70474
|
-
method(object({ locationId: string() }), EvictableUsageSchema), method(object({
|
|
70535
|
+
method(object({ locationId: string() }), EvictableUsageSchema, { auth: "admin" }), method(object({
|
|
70475
70536
|
locationId: string(),
|
|
70476
70537
|
targetBytes: number().int().positive()
|
|
70477
|
-
}), EvictResultSchema, {
|
|
70538
|
+
}), EvictResultSchema, {
|
|
70539
|
+
kind: "mutation",
|
|
70540
|
+
auth: "admin"
|
|
70541
|
+
});
|
|
70478
70542
|
method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
|
|
70479
70543
|
kind: "mutation",
|
|
70480
70544
|
auth: "admin"
|
|
@@ -70534,26 +70598,50 @@ var ReadChunkInputSchema = object({
|
|
|
70534
70598
|
length: number()
|
|
70535
70599
|
});
|
|
70536
70600
|
var EndDownloadInputSchema = object({ downloadId: string() });
|
|
70537
|
-
method(_void(), ProviderInfoSchema), method(object({ config: record(string(), unknown()) }), TestLocationResultSchema, { auth: "admin" }), method(object({
|
|
70601
|
+
method(_void(), ProviderInfoSchema, { auth: "admin" }), method(object({ config: record(string(), unknown()) }), TestLocationResultSchema, { auth: "admin" }), method(object({
|
|
70538
70602
|
location: StorageLocationSchema,
|
|
70539
70603
|
relativePath: string()
|
|
70540
|
-
}), string()), method(object({
|
|
70604
|
+
}), string(), { auth: "admin" }), method(object({
|
|
70541
70605
|
location: StorageLocationSchema,
|
|
70542
70606
|
relativePath: string(),
|
|
70543
70607
|
data: _instanceof(Uint8Array)
|
|
70544
|
-
}), _void(), {
|
|
70608
|
+
}), _void(), {
|
|
70609
|
+
kind: "mutation",
|
|
70610
|
+
auth: "admin"
|
|
70611
|
+
}), method(object({
|
|
70545
70612
|
location: StorageLocationSchema,
|
|
70546
70613
|
relativePath: string()
|
|
70547
|
-
}), _instanceof(Uint8Array)), method(object({
|
|
70614
|
+
}), _instanceof(Uint8Array), { auth: "admin" }), method(object({
|
|
70548
70615
|
location: StorageLocationSchema,
|
|
70549
70616
|
relativePath: string()
|
|
70550
|
-
}), boolean()), method(object({
|
|
70617
|
+
}), boolean(), { auth: "admin" }), method(object({
|
|
70551
70618
|
location: StorageLocationSchema,
|
|
70552
70619
|
prefix: string().optional()
|
|
70553
|
-
}), array(string()).readonly()), method(object({
|
|
70620
|
+
}), array(string()).readonly(), { auth: "admin" }), method(object({
|
|
70554
70621
|
location: StorageLocationSchema,
|
|
70555
70622
|
relativePath: string()
|
|
70556
|
-
}), _void(), {
|
|
70623
|
+
}), _void(), {
|
|
70624
|
+
kind: "mutation",
|
|
70625
|
+
auth: "admin"
|
|
70626
|
+
}), method(object({ location: StorageLocationSchema }), number().nullable(), { auth: "admin" }), method(BeginUploadInputSchema, BeginUploadResultSchema, {
|
|
70627
|
+
kind: "mutation",
|
|
70628
|
+
auth: "admin"
|
|
70629
|
+
}), method(WriteChunkInputSchema, _void(), {
|
|
70630
|
+
kind: "mutation",
|
|
70631
|
+
auth: "admin"
|
|
70632
|
+
}), method(FinalizeUploadInputSchema, _void(), {
|
|
70633
|
+
kind: "mutation",
|
|
70634
|
+
auth: "admin"
|
|
70635
|
+
}), method(AbortUploadInputSchema, _void(), {
|
|
70636
|
+
kind: "mutation",
|
|
70637
|
+
auth: "admin"
|
|
70638
|
+
}), method(BeginDownloadInputSchema, BeginDownloadResultSchema, {
|
|
70639
|
+
kind: "mutation",
|
|
70640
|
+
auth: "admin"
|
|
70641
|
+
}), method(ReadChunkInputSchema, _instanceof(Uint8Array), { auth: "admin" }), method(EndDownloadInputSchema, _void(), {
|
|
70642
|
+
kind: "mutation",
|
|
70643
|
+
auth: "admin"
|
|
70644
|
+
});
|
|
70557
70645
|
/** Profile-exported FormBuilder schema. Shape is ConfigUISchema at the UI. */
|
|
70558
70646
|
var ProfileSettingsSchemaBridge = unknown().nullable();
|
|
70559
70647
|
var ProfileSettingsBagSchema = record(string(), unknown());
|
|
@@ -70811,7 +70899,8 @@ method(object({
|
|
|
70811
70899
|
access: "create"
|
|
70812
70900
|
}), method(object({ userId: string().optional() }), object({ optionsJSON: record(string(), unknown()) }), {
|
|
70813
70901
|
kind: "mutation",
|
|
70814
|
-
access: "view"
|
|
70902
|
+
access: "view",
|
|
70903
|
+
auth: "admin"
|
|
70815
70904
|
}), method(object({
|
|
70816
70905
|
/** Required — the user the assertion belongs to (verified). */
|
|
70817
70906
|
userId: string(),
|
|
@@ -70819,10 +70908,12 @@ method(object({
|
|
|
70819
70908
|
response: record(string(), unknown())
|
|
70820
70909
|
}), object({ verified: boolean() }), {
|
|
70821
70910
|
kind: "mutation",
|
|
70822
|
-
access: "view"
|
|
70911
|
+
access: "view",
|
|
70912
|
+
auth: "admin"
|
|
70823
70913
|
}), method(object({}), object({ optionsJSON: record(string(), unknown()) }), {
|
|
70824
70914
|
kind: "mutation",
|
|
70825
|
-
access: "view"
|
|
70915
|
+
access: "view",
|
|
70916
|
+
auth: "admin"
|
|
70826
70917
|
}), method(object({
|
|
70827
70918
|
/** AuthenticationResponseJSON from the browser. */
|
|
70828
70919
|
response: record(string(), unknown()) }), object({
|
|
@@ -70830,7 +70921,8 @@ response: record(string(), unknown()) }), object({
|
|
|
70830
70921
|
userId: string().nullable()
|
|
70831
70922
|
}), {
|
|
70832
70923
|
kind: "mutation",
|
|
70833
|
-
access: "view"
|
|
70924
|
+
access: "view",
|
|
70925
|
+
auth: "admin"
|
|
70834
70926
|
}), method(object({ userId: string() }), array(PasskeySummarySchema), { auth: "admin" }), method(object({
|
|
70835
70927
|
userId: string(),
|
|
70836
70928
|
credentialId: string()
|
|
@@ -71002,7 +71094,19 @@ var VectorStatsResultSchema = object({
|
|
|
71002
71094
|
/** False when the backend ranks approximately. */
|
|
71003
71095
|
exact: boolean()
|
|
71004
71096
|
});
|
|
71005
|
-
method(VectorDeclareIndexInputSchema, _void(), {
|
|
71097
|
+
method(VectorDeclareIndexInputSchema, _void(), {
|
|
71098
|
+
kind: "mutation",
|
|
71099
|
+
auth: "admin"
|
|
71100
|
+
}), method(VectorUpsertInputSchema, VectorUpsertResultSchema, {
|
|
71101
|
+
kind: "mutation",
|
|
71102
|
+
auth: "admin"
|
|
71103
|
+
}), method(VectorQueryInputSchema, VectorQueryResultSchema, { auth: "admin" }), method(VectorGetInputSchema, VectorGetResultSchema, { auth: "admin" }), method(VectorDeleteInputSchema, VectorDeleteResultSchema, {
|
|
71104
|
+
kind: "mutation",
|
|
71105
|
+
auth: "admin"
|
|
71106
|
+
}), method(VectorDeleteByFilterInputSchema, VectorDeleteResultSchema, {
|
|
71107
|
+
kind: "mutation",
|
|
71108
|
+
auth: "admin"
|
|
71109
|
+
}), method(VectorStatsInputSchema, VectorStatsResultSchema, { auth: "admin" });
|
|
71006
71110
|
var ClipSchema = object({
|
|
71007
71111
|
/** Opaque, provider-namespaced id. The default provider encodes the time
|
|
71008
71112
|
* window so `getClipPlayback` is self-contained (no event re-query). */
|
|
@@ -73480,7 +73584,27 @@ var MediaFileLiteSchema$1 = object({
|
|
|
73480
73584
|
sizeBytes: number(),
|
|
73481
73585
|
timestamp: number()
|
|
73482
73586
|
});
|
|
73483
|
-
method(
|
|
73587
|
+
method(object({
|
|
73588
|
+
/**
|
|
73589
|
+
* Inline {@link IdentitySchema.coverBase64} on every row.
|
|
73590
|
+
*
|
|
73591
|
+
* Default `false`, the same inversion `listRecentFaces` and
|
|
73592
|
+
* `listPlates` took on 2026-08-25 (see `include-crops-default.ts` for
|
|
73593
|
+
* why the burden belongs on the caller that WANTS the bytes). Measured
|
|
73594
|
+
* on the live hub the same day: four identities cost 40,979 B with the
|
|
73595
|
+
* covers inline, ~10 KB of base64 per row, on a query this UI mounts
|
|
73596
|
+
* four times and the viewer holds at `staleTime: 30_000`.
|
|
73597
|
+
*
|
|
73598
|
+
* Nothing loses its avatar: `coverMediaKey` is already on every row and
|
|
73599
|
+
* the `event-media` plane serves that key `immutable` with an ETag.
|
|
73600
|
+
*
|
|
73601
|
+
* **This is an INPUT field, so it does not reach the addon until the
|
|
73602
|
+
* next train** — the hub router validates cap inputs against its own
|
|
73603
|
+
* compiled Zod and strips a key it does not know. Until then the
|
|
73604
|
+
* provider sees `undefined`, which resolves to `false`: the cheap shape
|
|
73605
|
+
* is what ships, and the opt-in becomes reachable when the train lands.
|
|
73606
|
+
*/
|
|
73607
|
+
includeCrops: boolean().optional() }).optional(), array(IdentitySchema).readonly()), method(object({ name: string().min(1) }), IdentitySchema, {
|
|
73484
73608
|
kind: "mutation",
|
|
73485
73609
|
auth: "admin"
|
|
73486
73610
|
}), method(object({
|
|
@@ -76370,8 +76494,10 @@ var PlateInfoSchema = object({
|
|
|
76370
76494
|
keyFrameMediaKey: string().optional(),
|
|
76371
76495
|
base64: string().optional(),
|
|
76372
76496
|
/**
|
|
76373
|
-
* Same crop as a data-plane URL
|
|
76374
|
-
* never inlines JPEG; `listPlates`
|
|
76497
|
+
* Same crop as a data-plane URL, always present when the plate has a stored
|
|
76498
|
+
* crop. `getPlateByTrack` returns this and never inlines JPEG; `listPlates`
|
|
76499
|
+
* and `searchPlates` inline the crop only when their `includeCrops` input is
|
|
76500
|
+
* left at its `true` default.
|
|
76375
76501
|
*/
|
|
76376
76502
|
cropUrl: string().optional()
|
|
76377
76503
|
});
|
|
@@ -76391,14 +76517,34 @@ var PlateClusterSchema = object({
|
|
|
76391
76517
|
});
|
|
76392
76518
|
method(object({
|
|
76393
76519
|
deviceId: number().int().optional(),
|
|
76394
|
-
limit: number().int().positive().optional()
|
|
76520
|
+
limit: number().int().positive().optional(),
|
|
76521
|
+
/**
|
|
76522
|
+
* Inline the base64 crop on every row. Default `true` — the existing
|
|
76523
|
+
* behaviour, kept so no caller breaks.
|
|
76524
|
+
*
|
|
76525
|
+
* Set `false` once the caller renders {@link PlateInfo.cropUrl}.
|
|
76526
|
+
* Measured on the live hub at the 500 rows the Plates view asks for:
|
|
76527
|
+
* 879,403 B and 27.7 s with the crops inline, against a few KiB of
|
|
76528
|
+
* metadata without them — and the browser then caches the images.
|
|
76529
|
+
*
|
|
76530
|
+
* This is the plate twin of `faceGallery.listRecentFaces`'s option;
|
|
76531
|
+
* plates were the one gallery list left without it.
|
|
76532
|
+
*
|
|
76533
|
+
* **This is an INPUT field, so it does not reach the addon until the
|
|
76534
|
+
* next train.** The hub router validates cap inputs against its own
|
|
76535
|
+
* compiled Zod and strips a key it does not know. Until the train
|
|
76536
|
+
* ships, sending `false` is harmless and keeps the crops inline.
|
|
76537
|
+
*/
|
|
76538
|
+
includeCrops: boolean().optional()
|
|
76395
76539
|
}).optional(), array(PlateInfoSchema).readonly()), method(object({
|
|
76396
76540
|
deviceId: number().int(),
|
|
76397
76541
|
trackId: string()
|
|
76398
76542
|
}), PlateInfoSchema.nullable()), method(object({ plateId: string() }), array(MediaFileLiteSchema).readonly()), method(object({
|
|
76399
76543
|
text: string().min(1),
|
|
76400
76544
|
maxDistance: number().int().min(0).optional(),
|
|
76401
|
-
limit: number().int().positive().optional()
|
|
76545
|
+
limit: number().int().positive().optional(),
|
|
76546
|
+
/** See `listPlates.includeCrops`. Default `true`. */
|
|
76547
|
+
includeCrops: boolean().optional()
|
|
76402
76548
|
}), array(PlateInfoSchema).readonly()), method(object({
|
|
76403
76549
|
maxDistance: number().int().min(0).optional(),
|
|
76404
76550
|
minClusterSize: number().int().min(2).optional(),
|
|
@@ -76412,7 +76558,13 @@ method(object({
|
|
|
76412
76558
|
}), method(object({ plateId: string() }), _void(), {
|
|
76413
76559
|
kind: "mutation",
|
|
76414
76560
|
auth: "admin"
|
|
76415
|
-
}), method(
|
|
76561
|
+
}), method(object({
|
|
76562
|
+
/** Inline {@link VehicleSchema.coverBase64} on every row. Default
|
|
76563
|
+
* `false` — the vehicle twin of `faceGallery.listIdentities`'s
|
|
76564
|
+
* option; `coverMediaKey` + the `event-media` plane carry the picture.
|
|
76565
|
+
* INPUT field: stripped by the hub router until the train ships, which
|
|
76566
|
+
* resolves to `false` and is exactly the intended default. */
|
|
76567
|
+
includeCrops: boolean().optional() }).optional(), array(VehicleSchema).readonly()), method(object({ name: string().min(1) }), VehicleSchema, {
|
|
76416
76568
|
kind: "mutation",
|
|
76417
76569
|
auth: "admin"
|
|
76418
76570
|
}), method(object({
|
|
@@ -83673,6 +83825,12 @@ Object.freeze({
|
|
|
83673
83825
|
addonId: null,
|
|
83674
83826
|
access: "create"
|
|
83675
83827
|
},
|
|
83828
|
+
"pipelineAnalytics.cancelRelocateMedia": {
|
|
83829
|
+
capName: "pipeline-analytics",
|
|
83830
|
+
capScope: "device",
|
|
83831
|
+
addonId: null,
|
|
83832
|
+
access: "create"
|
|
83833
|
+
},
|
|
83676
83834
|
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
83677
83835
|
capName: "pipeline-analytics",
|
|
83678
83836
|
capScope: "device",
|
|
@@ -83847,6 +84005,12 @@ Object.freeze({
|
|
|
83847
84005
|
addonId: null,
|
|
83848
84006
|
access: "view"
|
|
83849
84007
|
},
|
|
84008
|
+
"pipelineAnalytics.listRelocateMediaJobs": {
|
|
84009
|
+
capName: "pipeline-analytics",
|
|
84010
|
+
capScope: "device",
|
|
84011
|
+
addonId: null,
|
|
84012
|
+
access: "view"
|
|
84013
|
+
},
|
|
83850
84014
|
"pipelineAnalytics.listRetrainAnnotations": {
|
|
83851
84015
|
capName: "pipeline-analytics",
|
|
83852
84016
|
capScope: "device",
|
|
@@ -83925,6 +84089,12 @@ Object.freeze({
|
|
|
83925
84089
|
addonId: null,
|
|
83926
84090
|
access: "create"
|
|
83927
84091
|
},
|
|
84092
|
+
"pipelineAnalytics.relocateMedia": {
|
|
84093
|
+
capName: "pipeline-analytics",
|
|
84094
|
+
capScope: "device",
|
|
84095
|
+
addonId: null,
|
|
84096
|
+
access: "create"
|
|
84097
|
+
},
|
|
83928
84098
|
"pipelineAnalytics.restageRetrainTrack": {
|
|
83929
84099
|
capName: "pipeline-analytics",
|
|
83930
84100
|
capScope: "device",
|
package/dist/addon.mjs
CHANGED
|
@@ -57135,7 +57135,7 @@ function method(input, output, options) {
|
|
|
57135
57135
|
input,
|
|
57136
57136
|
output,
|
|
57137
57137
|
kind: options?.kind ?? "query",
|
|
57138
|
-
auth: options
|
|
57138
|
+
...options?.auth !== void 0 ? { auth: options.auth } : {},
|
|
57139
57139
|
...options?.access !== void 0 ? { access: options.access } : {},
|
|
57140
57140
|
...options?.caller !== void 0 ? { caller: options.caller } : {},
|
|
57141
57141
|
timeoutMs: options?.timeoutMs
|
|
@@ -57159,7 +57159,7 @@ function event(data) {
|
|
|
57159
57159
|
}
|
|
57160
57160
|
var StaticDirOutputSchema$1 = object({ staticDir: string() });
|
|
57161
57161
|
var VersionOutputSchema$1 = object({ version: string() });
|
|
57162
|
-
method(_void(), StaticDirOutputSchema$1), method(_void(), VersionOutputSchema$1);
|
|
57162
|
+
method(_void(), StaticDirOutputSchema$1, { auth: "admin" }), method(_void(), VersionOutputSchema$1, { auth: "admin" });
|
|
57163
57163
|
var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
57164
57164
|
DeviceType["Camera"] = "camera";
|
|
57165
57165
|
DeviceType["Hub"] = "hub";
|
|
@@ -57480,7 +57480,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
57480
57480
|
}({});
|
|
57481
57481
|
var StaticDirOutputSchema = object({ staticDir: string() });
|
|
57482
57482
|
var VersionOutputSchema = object({ version: string() });
|
|
57483
|
-
method(_void(), StaticDirOutputSchema), method(_void(), VersionOutputSchema);
|
|
57483
|
+
method(_void(), StaticDirOutputSchema, { auth: "admin" }), method(_void(), VersionOutputSchema, { auth: "admin" });
|
|
57484
57484
|
/**
|
|
57485
57485
|
* device-ops — device-scoped cap that unifies the per-IDevice operations
|
|
57486
57486
|
* previously routed through the `.device-ops` Moleculer bridge service.
|
|
@@ -58106,24 +58106,6 @@ var RecordingRetentionSchema = object({
|
|
|
58106
58106
|
maxSizeGb: number().min(0).optional()
|
|
58107
58107
|
});
|
|
58108
58108
|
/**
|
|
58109
|
-
* Scrub-thumbnail fidelity preset — the single per-camera selector bundling the
|
|
58110
|
-
* sprite tile RESOLUTION + JPEG QUALITY the recorder packs timeline-scrub
|
|
58111
|
-
* previews at. Five graduated steps; absent on a config = `standard` (the
|
|
58112
|
-
* shipped default, matching `sheet-geometry`/`sheet-composer`).
|
|
58113
|
-
*
|
|
58114
|
-
* Existing sheets are IMMUTABLE — a changed preset applies to NEW windows only.
|
|
58115
|
-
* Each window's index sidecar carries its own tile dims, so a camera whose
|
|
58116
|
-
* preset changed over time renders every historical window at the dims it was
|
|
58117
|
-
* written with.
|
|
58118
|
-
*/
|
|
58119
|
-
var ScrubThumbnailPresetSchema = _enum([
|
|
58120
|
-
"minimal",
|
|
58121
|
-
"low",
|
|
58122
|
-
"standard",
|
|
58123
|
-
"high",
|
|
58124
|
-
"max"
|
|
58125
|
-
]);
|
|
58126
|
-
/**
|
|
58127
58109
|
* The full per-camera recording intent — the wire shape of a RecordingTarget.
|
|
58128
58110
|
*
|
|
58129
58111
|
* `bands` is the ONLY authored recording intent: what to record, when, and on
|
|
@@ -58131,7 +58113,11 @@ var ScrubThumbnailPresetSchema = _enum([
|
|
|
58131
58113
|
* other field is a storage knob (profiles, segment length, retention, scrub).
|
|
58132
58114
|
*
|
|
58133
58115
|
* STRICT on purpose: the legacy authoring surface (`schedule`/`schedules`/
|
|
58134
|
-
* `triggers`/`preBufferSec`/`postBufferSec`/`rules`) was retired 2026-07-30
|
|
58116
|
+
* `triggers`/`preBufferSec`/`postBufferSec`/`rules`) was retired 2026-07-30,
|
|
58117
|
+
* and `scrubThumbnails` — a five-step fidelity knob for a sprite tier that was
|
|
58118
|
+
* deleted on 2026-07-24 and had ZERO consumers in the recorder — on 2026-08-25
|
|
58119
|
+
* (D62: a switch that writes a store nobody reads is worse than no switch).
|
|
58120
|
+
* Stored rows keep loading: the READ schema is `.strip()` (config-store.ts).
|
|
58135
58121
|
* A stale caller must fail loudly — silently stripping its legacy intent would
|
|
58136
58122
|
* persist a band-less config, i.e. silently stop recording the camera.
|
|
58137
58123
|
*/
|
|
@@ -58154,14 +58140,7 @@ var RecordingConfigSchema = object({
|
|
|
58154
58140
|
* "off" is the absence of a covering band, never a band value.
|
|
58155
58141
|
*/
|
|
58156
58142
|
bands: array(RecordingBandSchema).default([]),
|
|
58157
|
-
retention: RecordingRetentionSchema.optional()
|
|
58158
|
-
/**
|
|
58159
|
-
* Per-camera scrub-thumbnail fidelity preset (resolution + JPEG quality for
|
|
58160
|
-
* timeline-scrub sprite previews). Absent = `standard`. Applies to NEW
|
|
58161
|
-
* windows only — existing sheets are immutable, and each window's index
|
|
58162
|
-
* carries its own tile dims so mixed-preset history renders correctly.
|
|
58163
|
-
*/
|
|
58164
|
-
scrubThumbnails: ScrubThumbnailPresetSchema.optional()
|
|
58143
|
+
retention: RecordingRetentionSchema.optional()
|
|
58165
58144
|
}).strict();
|
|
58166
58145
|
/**
|
|
58167
58146
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
@@ -58237,10 +58216,11 @@ var RelocateFootageInputSchema = object({
|
|
|
58237
58216
|
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
58238
58217
|
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
58239
58218
|
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
58240
|
-
var
|
|
58219
|
+
var RelocateMediaInputSchema = object({
|
|
58241
58220
|
toLocationId: string(),
|
|
58242
58221
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
58243
|
-
})
|
|
58222
|
+
});
|
|
58223
|
+
var StorageMigrationMediaMoveInputSchema = RelocateMediaInputSchema.extend({ leaseId: string().min(1) });
|
|
58244
58224
|
/** The independently selectable logical storage classes. `recordings`
|
|
58245
58225
|
* encompasses the high and mid segment profiles; `recordingsLow` is low
|
|
58246
58226
|
* segments; `eventMedia` is post-analysis blobs. */
|
|
@@ -58535,7 +58515,26 @@ var LabelDefinitionSchema = object({
|
|
|
58535
58515
|
description: string().optional(),
|
|
58536
58516
|
icon: string().optional()
|
|
58537
58517
|
});
|
|
58538
|
-
|
|
58518
|
+
/**
|
|
58519
|
+
* Wire schema for a per-model CATALOG classMap override
|
|
58520
|
+
* (`ModelCatalogEntry.classMap` / `ModelConvertMetadata.classMap`) —
|
|
58521
|
+
* restricted to {@link CLASS_MAP_MACRO_TARGETS}, the only macros the
|
|
58522
|
+
* detection pipeline executor actually routes.
|
|
58523
|
+
*
|
|
58524
|
+
* This is deliberately a DIFFERENT, narrower shape than the general-purpose
|
|
58525
|
+
* `ClassMapDefinition` interface above (e.g. `IDetectionAddon.getClassMap()`
|
|
58526
|
+
* and the audio `YAMNET_TO_MACRO` catalog both use macro targets outside this
|
|
58527
|
+
* enum) — the two used to share the name `ClassMapDefinition`/
|
|
58528
|
+
* `ClassMapDefinitionSchema`, which made the schema-type-twin guard
|
|
58529
|
+
* (`scripts/check-schema-type-twins.ts`) flag them as a duplicated shape. They
|
|
58530
|
+
* are not: it is two different concepts colliding on a name. Keep this type
|
|
58531
|
+
* under its own name rather than reusing `ClassMapDefinition` — reusing it
|
|
58532
|
+
* would either narrow every `ClassMapDefinition` consumer to the four
|
|
58533
|
+
* detection macros (breaking `YAMNET_TO_MACRO`) or drop the validation this
|
|
58534
|
+
* schema exists for (see the "rejects a classMap whose target is not a
|
|
58535
|
+
* detection macro" test in `model-catalog-schema.test.ts`).
|
|
58536
|
+
*/
|
|
58537
|
+
var DetectionCatalogClassMapSchema = object({
|
|
58539
58538
|
mapping: record(string(), _enum([
|
|
58540
58539
|
"person",
|
|
58541
58540
|
"vehicle",
|
|
@@ -58740,7 +58739,7 @@ var ModelCatalogEntrySchema = object({
|
|
|
58740
58739
|
* applies (Frigate / COCO public catalog). Set on a custom model whose raw
|
|
58741
58740
|
* labels already ARE the CamStack macros (Scrypted identity map).
|
|
58742
58741
|
*/
|
|
58743
|
-
classMap:
|
|
58742
|
+
classMap: DetectionCatalogClassMapSchema.optional()
|
|
58744
58743
|
});
|
|
58745
58744
|
var ConvertTargetSchema = discriminatedUnion("format", [object({
|
|
58746
58745
|
format: literal("openvino"),
|
|
@@ -58770,7 +58769,7 @@ var ModelConvertMetadataSchema = object({
|
|
|
58770
58769
|
"segmentation"
|
|
58771
58770
|
]),
|
|
58772
58771
|
faceAlignment: boolean().optional(),
|
|
58773
|
-
classMap:
|
|
58772
|
+
classMap: DetectionCatalogClassMapSchema.optional()
|
|
58774
58773
|
});
|
|
58775
58774
|
var ConvertResultSchema = object({
|
|
58776
58775
|
entry: ModelCatalogEntrySchema,
|
|
@@ -59633,7 +59632,7 @@ var AddonPageDeclarationSchema = object({
|
|
|
59633
59632
|
/** Display label for a CUSTOM `section` id (ignored for well-known ids). */
|
|
59634
59633
|
sectionLabel: string().optional()
|
|
59635
59634
|
});
|
|
59636
|
-
method(_void(), array(AddonPageDeclarationSchema).readonly());
|
|
59635
|
+
method(_void(), array(AddonPageDeclarationSchema).readonly(), { auth: "admin" });
|
|
59637
59636
|
var AddonHttpRouteSchema = object({
|
|
59638
59637
|
method: _enum([
|
|
59639
59638
|
"GET",
|
|
@@ -59868,7 +59867,7 @@ var WidgetMetadataSchema = object({
|
|
|
59868
59867
|
defaultColumns: number().int().min(1).max(12).default(6),
|
|
59869
59868
|
defaultRows: number().int().min(1).max(12).default(1)
|
|
59870
59869
|
});
|
|
59871
|
-
method(_void(), array(WidgetMetadataSchema).readonly());
|
|
59870
|
+
method(_void(), array(WidgetMetadataSchema).readonly(), { auth: "admin" });
|
|
59872
59871
|
/**
|
|
59873
59872
|
* `addon-widgets` — system-scoped singleton aggregator cap. Public-facing
|
|
59874
59873
|
* surface that admin-ui consumes through `useAddonWidgetsListWidgets()`.
|
|
@@ -61492,7 +61491,7 @@ var CustomModelDescriptorSchema = object({
|
|
|
61492
61491
|
stepId: string(),
|
|
61493
61492
|
entry: ModelCatalogEntrySchema
|
|
61494
61493
|
});
|
|
61495
|
-
method(_void(), array(CustomModelDescriptorSchema).readonly());
|
|
61494
|
+
method(_void(), array(CustomModelDescriptorSchema).readonly(), { auth: "admin" });
|
|
61496
61495
|
/**
|
|
61497
61496
|
* Query filter for settings-store collections.
|
|
61498
61497
|
*/
|
|
@@ -61579,7 +61578,8 @@ method(object({
|
|
|
61579
61578
|
}), _void(), { kind: "mutation" }), method(object({
|
|
61580
61579
|
namespace: string().optional(),
|
|
61581
61580
|
collection: string(),
|
|
61582
|
-
filter: QueryFilterSchema.optional()
|
|
61581
|
+
filter: QueryFilterSchema.optional(),
|
|
61582
|
+
columns: array(string()).readonly().optional()
|
|
61583
61583
|
}), array(SettingsRecordSchema).readonly()), method(object({
|
|
61584
61584
|
namespace: string().optional(),
|
|
61585
61585
|
collection: string(),
|
|
@@ -61642,46 +61642,87 @@ var EngineInfoSchema = object({
|
|
|
61642
61642
|
kind: _enum(["relational", "vector"]),
|
|
61643
61643
|
displayName: string()
|
|
61644
61644
|
});
|
|
61645
|
-
method(_void(), EngineInfoSchema), method(object({
|
|
61645
|
+
method(_void(), EngineInfoSchema, { auth: "admin" }), method(object({
|
|
61646
61646
|
namespace: string().optional(),
|
|
61647
61647
|
collection: string(),
|
|
61648
61648
|
key: string()
|
|
61649
|
-
}), unknown()), method(object({
|
|
61649
|
+
}), unknown(), { auth: "admin" }), method(object({
|
|
61650
61650
|
namespace: string().optional(),
|
|
61651
61651
|
collection: string(),
|
|
61652
61652
|
key: string(),
|
|
61653
61653
|
value: unknown()
|
|
61654
|
-
}), _void(), {
|
|
61654
|
+
}), _void(), {
|
|
61655
|
+
kind: "mutation",
|
|
61656
|
+
auth: "admin"
|
|
61657
|
+
}), method(object({
|
|
61655
61658
|
namespace: string().optional(),
|
|
61656
61659
|
collection: string(),
|
|
61657
|
-
filter: QueryFilterSchema.optional()
|
|
61658
|
-
|
|
61660
|
+
filter: QueryFilterSchema.optional(),
|
|
61661
|
+
/**
|
|
61662
|
+
* SQL-level column projection — MUST mirror `settings-store.query`.
|
|
61663
|
+
*
|
|
61664
|
+
* ⚠ An earlier version of this comment blamed Zod stripping, and that
|
|
61665
|
+
* was wrong — corrected 2026-08-26 after the hop map
|
|
61666
|
+
* (`docs/design/2026-08-26-mappa-hop-argomenti.md`) traced the path.
|
|
61667
|
+
* There is **no Zod parse at all** between the door and the engine: the
|
|
61668
|
+
* dispatcher forwards the payload verbatim and UDS carries it whole. A
|
|
61669
|
+
* field declared here reaches `SqliteSettingsBackend` either way.
|
|
61670
|
+
*
|
|
61671
|
+
* What actually lost `columns` was the THIRD declaration of this shape:
|
|
61672
|
+
* `SettingsQueryInput` in `interfaces/storage.ts`, a hand-written TS
|
|
61673
|
+
* interface the engine destructures from. The field existed on both
|
|
61674
|
+
* schemas and the engine still never read it, because nothing checks a
|
|
61675
|
+
* registered provider against `InferProvider<cap>` —
|
|
61676
|
+
* `ProviderRegistration.provider` is typed `object`.
|
|
61677
|
+
*
|
|
61678
|
+
* It is declared here anyway, and must stay in step with
|
|
61679
|
+
* `settings-store.query`: a caller reading only the cap definitions has
|
|
61680
|
+
* to be able to see that this call carries a projection.
|
|
61681
|
+
* `data-door-schema-parity.spec.ts` keeps the two aligned.
|
|
61682
|
+
*/
|
|
61683
|
+
columns: array(string()).readonly().optional()
|
|
61684
|
+
}), array(SettingsRecordSchema).readonly(), { auth: "admin" }), method(object({
|
|
61659
61685
|
namespace: string().optional(),
|
|
61660
61686
|
collection: string(),
|
|
61661
61687
|
record: SettingsRecordSchema
|
|
61662
|
-
}), _void(), {
|
|
61688
|
+
}), _void(), {
|
|
61689
|
+
kind: "mutation",
|
|
61690
|
+
auth: "admin"
|
|
61691
|
+
}), method(object({
|
|
61663
61692
|
namespace: string().optional(),
|
|
61664
61693
|
collection: string(),
|
|
61665
61694
|
id: string(),
|
|
61666
61695
|
data: record(string(), unknown())
|
|
61667
|
-
}), _void(), {
|
|
61696
|
+
}), _void(), {
|
|
61697
|
+
kind: "mutation",
|
|
61698
|
+
auth: "admin"
|
|
61699
|
+
}), method(object({
|
|
61668
61700
|
namespace: string().optional(),
|
|
61669
61701
|
collection: string(),
|
|
61670
61702
|
key: string()
|
|
61671
|
-
}), _void(), {
|
|
61703
|
+
}), _void(), {
|
|
61704
|
+
kind: "mutation",
|
|
61705
|
+
auth: "admin"
|
|
61706
|
+
}), method(object({
|
|
61672
61707
|
namespace: string().optional(),
|
|
61673
61708
|
collection: string(),
|
|
61674
61709
|
filter: MutationFilterSchema
|
|
61675
|
-
}), object({ deleted: number().int() }), {
|
|
61710
|
+
}), object({ deleted: number().int() }), {
|
|
61711
|
+
kind: "mutation",
|
|
61712
|
+
auth: "admin"
|
|
61713
|
+
}), method(object({
|
|
61676
61714
|
namespace: string().optional(),
|
|
61677
61715
|
collection: string(),
|
|
61678
61716
|
filter: MutationFilterSchema,
|
|
61679
61717
|
data: record(string(), unknown())
|
|
61680
|
-
}), object({ updated: number().int() }), {
|
|
61718
|
+
}), object({ updated: number().int() }), {
|
|
61719
|
+
kind: "mutation",
|
|
61720
|
+
auth: "admin"
|
|
61721
|
+
}), method(object({
|
|
61681
61722
|
namespace: string().optional(),
|
|
61682
61723
|
collection: string(),
|
|
61683
61724
|
filter: QueryFilterSchema.optional()
|
|
61684
|
-
}), number()), method(object({
|
|
61725
|
+
}), number(), { auth: "admin" }), method(object({
|
|
61685
61726
|
namespace: string().optional(),
|
|
61686
61727
|
collection: string(),
|
|
61687
61728
|
field: string(),
|
|
@@ -61691,15 +61732,18 @@ method(_void(), EngineInfoSchema), method(object({
|
|
|
61691
61732
|
}), array(object({
|
|
61692
61733
|
bucket: number().int(),
|
|
61693
61734
|
count: number().int()
|
|
61694
|
-
})).readonly()), method(object({
|
|
61735
|
+
})).readonly(), { auth: "admin" }), method(object({
|
|
61695
61736
|
namespace: string().optional(),
|
|
61696
61737
|
collection: string()
|
|
61697
|
-
}), boolean()), method(object({
|
|
61738
|
+
}), boolean(), { auth: "admin" }), method(object({
|
|
61698
61739
|
namespace: string().optional(),
|
|
61699
61740
|
collection: string(),
|
|
61700
61741
|
columns: array(CollectionColumnSchema).readonly(),
|
|
61701
61742
|
indexes: array(CollectionIndexSchema).readonly().optional()
|
|
61702
|
-
}), _void(), {
|
|
61743
|
+
}), _void(), {
|
|
61744
|
+
kind: "mutation",
|
|
61745
|
+
auth: "admin"
|
|
61746
|
+
});
|
|
61703
61747
|
/**
|
|
61704
61748
|
* shm ring usage stats for a `frameSink: 'shm'` decoder session —
|
|
61705
61749
|
* exposed via `decoder.getShmStats` so downstream consumers can
|
|
@@ -63006,7 +63050,7 @@ method(object({
|
|
|
63006
63050
|
crop: _instanceof(Uint8Array),
|
|
63007
63051
|
width: number(),
|
|
63008
63052
|
height: number()
|
|
63009
|
-
}), EmbeddingResultSchema), method(object({ text: string() }), EmbeddingResultSchema), method(_void(), EmbeddingInfoSchema);
|
|
63053
|
+
}), EmbeddingResultSchema, { auth: "admin" }), method(object({ text: string() }), EmbeddingResultSchema, { auth: "admin" }), method(_void(), EmbeddingInfoSchema, { auth: "admin" });
|
|
63010
63054
|
/**
|
|
63011
63055
|
* filesystem-browse — per-node capability for browsing the node's local
|
|
63012
63056
|
* filesystem. Reads are unconfined (whole filesystem, from `/` down); WRITES
|
|
@@ -63299,19 +63343,22 @@ method(LlmGenerateBaseInputSchema.extend({
|
|
|
63299
63343
|
runtime: ManagedRuntimeConfigSchema,
|
|
63300
63344
|
/** The managed profile's timeout, threaded by the hub provider. */
|
|
63301
63345
|
timeoutMs: number().int().positive().optional()
|
|
63302
|
-
}), LlmGenerateResultSchema, {
|
|
63346
|
+
}), LlmGenerateResultSchema, {
|
|
63347
|
+
kind: "mutation",
|
|
63348
|
+
auth: "admin"
|
|
63349
|
+
}), method(object({ runtime: ManagedRuntimeConfigSchema }), LlmRuntimeStatusSchema, {
|
|
63303
63350
|
kind: "mutation",
|
|
63304
63351
|
auth: "admin"
|
|
63305
63352
|
}), method(object({}), _void(), {
|
|
63306
63353
|
kind: "mutation",
|
|
63307
63354
|
auth: "admin"
|
|
63308
|
-
}), method(object({}), LlmRuntimeStatusSchema), method(object({ model: ManagedModelRefSchema }), _void(), {
|
|
63355
|
+
}), method(object({}), LlmRuntimeStatusSchema, { auth: "admin" }), method(object({ model: ManagedModelRefSchema }), _void(), {
|
|
63309
63356
|
kind: "mutation",
|
|
63310
63357
|
auth: "admin"
|
|
63311
63358
|
}), method(object({ file: string() }), _void(), {
|
|
63312
63359
|
kind: "mutation",
|
|
63313
63360
|
auth: "admin"
|
|
63314
|
-
}), method(object({}), array(LlmNodeModelSchema)), method(object({}), LlmRuntimeDiskUsageSchema);
|
|
63361
|
+
}), method(object({}), array(LlmNodeModelSchema), { auth: "admin" }), method(object({}), LlmRuntimeDiskUsageSchema, { auth: "admin" });
|
|
63315
63362
|
/**
|
|
63316
63363
|
* `llm` — consumer-facing LLM surface (spec §1-§3). Collection-mode: array
|
|
63317
63364
|
* methods concat-fan across providers; single-row methods route to ONE
|
|
@@ -66822,7 +66869,7 @@ var OauthIntegrationDescriptorSchema = object({
|
|
|
66822
66869
|
*/
|
|
66823
66870
|
refreshTokenTtlSec: union([number().int().positive(), literal("never")]).optional()
|
|
66824
66871
|
});
|
|
66825
|
-
method(_void(), OauthIntegrationDescriptorSchema);
|
|
66872
|
+
method(_void(), OauthIntegrationDescriptorSchema, { auth: "admin" });
|
|
66826
66873
|
/**
|
|
66827
66874
|
* pipeline-analytics — device-scoped wrapper cap. Refines raw
|
|
66828
66875
|
* per-frame detections emitted by the pipeline runner into tracked
|
|
@@ -68017,6 +68064,15 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
68017
68064
|
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
68018
68065
|
kind: "mutation",
|
|
68019
68066
|
auth: "admin"
|
|
68067
|
+
}), method(RelocateMediaInputSchema, object({ jobId: string() }), {
|
|
68068
|
+
kind: "mutation",
|
|
68069
|
+
auth: "admin"
|
|
68070
|
+
}), method(object({}), array(RelocateJobSchema).readonly(), {
|
|
68071
|
+
kind: "query",
|
|
68072
|
+
auth: "admin"
|
|
68073
|
+
}), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
68074
|
+
kind: "mutation",
|
|
68075
|
+
auth: "admin"
|
|
68020
68076
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
68021
68077
|
kind: "query",
|
|
68022
68078
|
auth: "admin"
|
|
@@ -68171,6 +68227,11 @@ object({
|
|
|
68171
68227
|
"jpeg"
|
|
68172
68228
|
])
|
|
68173
68229
|
});
|
|
68230
|
+
/**
|
|
68231
|
+
* Process-local frame identity. It is serializable so it can ride an in-process
|
|
68232
|
+
* capability call, but `registryId` deliberately prevents resolution in any
|
|
68233
|
+
* other process or execution group.
|
|
68234
|
+
*/
|
|
68174
68235
|
var FrameRefSchema = object({
|
|
68175
68236
|
registryId: string().min(1),
|
|
68176
68237
|
id: string().min(1),
|
|
@@ -70376,7 +70437,7 @@ method(object({
|
|
|
70376
70437
|
* linking rather than produce an eternal token.
|
|
70377
70438
|
*/
|
|
70378
70439
|
ttlSec: union([number().int().positive(), literal("never")]).optional()
|
|
70379
|
-
}), object({ token: string() })), method(object({ token: string() }), SsoBridgeClaimsSchema.nullable());
|
|
70440
|
+
}), object({ token: string() }), { auth: "admin" }), method(object({ token: string() }), SsoBridgeClaimsSchema.nullable(), { auth: "admin" });
|
|
70380
70441
|
var ProviderListEntrySchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
70381
70442
|
providerId: string().min(1),
|
|
70382
70443
|
displayName: string().min(1),
|
|
@@ -70471,10 +70532,13 @@ var EvictResultSchema = object({
|
|
|
70471
70532
|
/** True when the provider has nothing left it is willing to drop on this location. */
|
|
70472
70533
|
exhausted: boolean()
|
|
70473
70534
|
});
|
|
70474
|
-
method(object({ locationId: string() }), EvictableUsageSchema), method(object({
|
|
70535
|
+
method(object({ locationId: string() }), EvictableUsageSchema, { auth: "admin" }), method(object({
|
|
70475
70536
|
locationId: string(),
|
|
70476
70537
|
targetBytes: number().int().positive()
|
|
70477
|
-
}), EvictResultSchema, {
|
|
70538
|
+
}), EvictResultSchema, {
|
|
70539
|
+
kind: "mutation",
|
|
70540
|
+
auth: "admin"
|
|
70541
|
+
});
|
|
70478
70542
|
method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
|
|
70479
70543
|
kind: "mutation",
|
|
70480
70544
|
auth: "admin"
|
|
@@ -70534,26 +70598,50 @@ var ReadChunkInputSchema = object({
|
|
|
70534
70598
|
length: number()
|
|
70535
70599
|
});
|
|
70536
70600
|
var EndDownloadInputSchema = object({ downloadId: string() });
|
|
70537
|
-
method(_void(), ProviderInfoSchema), method(object({ config: record(string(), unknown()) }), TestLocationResultSchema, { auth: "admin" }), method(object({
|
|
70601
|
+
method(_void(), ProviderInfoSchema, { auth: "admin" }), method(object({ config: record(string(), unknown()) }), TestLocationResultSchema, { auth: "admin" }), method(object({
|
|
70538
70602
|
location: StorageLocationSchema,
|
|
70539
70603
|
relativePath: string()
|
|
70540
|
-
}), string()), method(object({
|
|
70604
|
+
}), string(), { auth: "admin" }), method(object({
|
|
70541
70605
|
location: StorageLocationSchema,
|
|
70542
70606
|
relativePath: string(),
|
|
70543
70607
|
data: _instanceof(Uint8Array)
|
|
70544
|
-
}), _void(), {
|
|
70608
|
+
}), _void(), {
|
|
70609
|
+
kind: "mutation",
|
|
70610
|
+
auth: "admin"
|
|
70611
|
+
}), method(object({
|
|
70545
70612
|
location: StorageLocationSchema,
|
|
70546
70613
|
relativePath: string()
|
|
70547
|
-
}), _instanceof(Uint8Array)), method(object({
|
|
70614
|
+
}), _instanceof(Uint8Array), { auth: "admin" }), method(object({
|
|
70548
70615
|
location: StorageLocationSchema,
|
|
70549
70616
|
relativePath: string()
|
|
70550
|
-
}), boolean()), method(object({
|
|
70617
|
+
}), boolean(), { auth: "admin" }), method(object({
|
|
70551
70618
|
location: StorageLocationSchema,
|
|
70552
70619
|
prefix: string().optional()
|
|
70553
|
-
}), array(string()).readonly()), method(object({
|
|
70620
|
+
}), array(string()).readonly(), { auth: "admin" }), method(object({
|
|
70554
70621
|
location: StorageLocationSchema,
|
|
70555
70622
|
relativePath: string()
|
|
70556
|
-
}), _void(), {
|
|
70623
|
+
}), _void(), {
|
|
70624
|
+
kind: "mutation",
|
|
70625
|
+
auth: "admin"
|
|
70626
|
+
}), method(object({ location: StorageLocationSchema }), number().nullable(), { auth: "admin" }), method(BeginUploadInputSchema, BeginUploadResultSchema, {
|
|
70627
|
+
kind: "mutation",
|
|
70628
|
+
auth: "admin"
|
|
70629
|
+
}), method(WriteChunkInputSchema, _void(), {
|
|
70630
|
+
kind: "mutation",
|
|
70631
|
+
auth: "admin"
|
|
70632
|
+
}), method(FinalizeUploadInputSchema, _void(), {
|
|
70633
|
+
kind: "mutation",
|
|
70634
|
+
auth: "admin"
|
|
70635
|
+
}), method(AbortUploadInputSchema, _void(), {
|
|
70636
|
+
kind: "mutation",
|
|
70637
|
+
auth: "admin"
|
|
70638
|
+
}), method(BeginDownloadInputSchema, BeginDownloadResultSchema, {
|
|
70639
|
+
kind: "mutation",
|
|
70640
|
+
auth: "admin"
|
|
70641
|
+
}), method(ReadChunkInputSchema, _instanceof(Uint8Array), { auth: "admin" }), method(EndDownloadInputSchema, _void(), {
|
|
70642
|
+
kind: "mutation",
|
|
70643
|
+
auth: "admin"
|
|
70644
|
+
});
|
|
70557
70645
|
/** Profile-exported FormBuilder schema. Shape is ConfigUISchema at the UI. */
|
|
70558
70646
|
var ProfileSettingsSchemaBridge = unknown().nullable();
|
|
70559
70647
|
var ProfileSettingsBagSchema = record(string(), unknown());
|
|
@@ -70811,7 +70899,8 @@ method(object({
|
|
|
70811
70899
|
access: "create"
|
|
70812
70900
|
}), method(object({ userId: string().optional() }), object({ optionsJSON: record(string(), unknown()) }), {
|
|
70813
70901
|
kind: "mutation",
|
|
70814
|
-
access: "view"
|
|
70902
|
+
access: "view",
|
|
70903
|
+
auth: "admin"
|
|
70815
70904
|
}), method(object({
|
|
70816
70905
|
/** Required — the user the assertion belongs to (verified). */
|
|
70817
70906
|
userId: string(),
|
|
@@ -70819,10 +70908,12 @@ method(object({
|
|
|
70819
70908
|
response: record(string(), unknown())
|
|
70820
70909
|
}), object({ verified: boolean() }), {
|
|
70821
70910
|
kind: "mutation",
|
|
70822
|
-
access: "view"
|
|
70911
|
+
access: "view",
|
|
70912
|
+
auth: "admin"
|
|
70823
70913
|
}), method(object({}), object({ optionsJSON: record(string(), unknown()) }), {
|
|
70824
70914
|
kind: "mutation",
|
|
70825
|
-
access: "view"
|
|
70915
|
+
access: "view",
|
|
70916
|
+
auth: "admin"
|
|
70826
70917
|
}), method(object({
|
|
70827
70918
|
/** AuthenticationResponseJSON from the browser. */
|
|
70828
70919
|
response: record(string(), unknown()) }), object({
|
|
@@ -70830,7 +70921,8 @@ response: record(string(), unknown()) }), object({
|
|
|
70830
70921
|
userId: string().nullable()
|
|
70831
70922
|
}), {
|
|
70832
70923
|
kind: "mutation",
|
|
70833
|
-
access: "view"
|
|
70924
|
+
access: "view",
|
|
70925
|
+
auth: "admin"
|
|
70834
70926
|
}), method(object({ userId: string() }), array(PasskeySummarySchema), { auth: "admin" }), method(object({
|
|
70835
70927
|
userId: string(),
|
|
70836
70928
|
credentialId: string()
|
|
@@ -71002,7 +71094,19 @@ var VectorStatsResultSchema = object({
|
|
|
71002
71094
|
/** False when the backend ranks approximately. */
|
|
71003
71095
|
exact: boolean()
|
|
71004
71096
|
});
|
|
71005
|
-
method(VectorDeclareIndexInputSchema, _void(), {
|
|
71097
|
+
method(VectorDeclareIndexInputSchema, _void(), {
|
|
71098
|
+
kind: "mutation",
|
|
71099
|
+
auth: "admin"
|
|
71100
|
+
}), method(VectorUpsertInputSchema, VectorUpsertResultSchema, {
|
|
71101
|
+
kind: "mutation",
|
|
71102
|
+
auth: "admin"
|
|
71103
|
+
}), method(VectorQueryInputSchema, VectorQueryResultSchema, { auth: "admin" }), method(VectorGetInputSchema, VectorGetResultSchema, { auth: "admin" }), method(VectorDeleteInputSchema, VectorDeleteResultSchema, {
|
|
71104
|
+
kind: "mutation",
|
|
71105
|
+
auth: "admin"
|
|
71106
|
+
}), method(VectorDeleteByFilterInputSchema, VectorDeleteResultSchema, {
|
|
71107
|
+
kind: "mutation",
|
|
71108
|
+
auth: "admin"
|
|
71109
|
+
}), method(VectorStatsInputSchema, VectorStatsResultSchema, { auth: "admin" });
|
|
71006
71110
|
var ClipSchema = object({
|
|
71007
71111
|
/** Opaque, provider-namespaced id. The default provider encodes the time
|
|
71008
71112
|
* window so `getClipPlayback` is self-contained (no event re-query). */
|
|
@@ -73480,7 +73584,27 @@ var MediaFileLiteSchema$1 = object({
|
|
|
73480
73584
|
sizeBytes: number(),
|
|
73481
73585
|
timestamp: number()
|
|
73482
73586
|
});
|
|
73483
|
-
method(
|
|
73587
|
+
method(object({
|
|
73588
|
+
/**
|
|
73589
|
+
* Inline {@link IdentitySchema.coverBase64} on every row.
|
|
73590
|
+
*
|
|
73591
|
+
* Default `false`, the same inversion `listRecentFaces` and
|
|
73592
|
+
* `listPlates` took on 2026-08-25 (see `include-crops-default.ts` for
|
|
73593
|
+
* why the burden belongs on the caller that WANTS the bytes). Measured
|
|
73594
|
+
* on the live hub the same day: four identities cost 40,979 B with the
|
|
73595
|
+
* covers inline, ~10 KB of base64 per row, on a query this UI mounts
|
|
73596
|
+
* four times and the viewer holds at `staleTime: 30_000`.
|
|
73597
|
+
*
|
|
73598
|
+
* Nothing loses its avatar: `coverMediaKey` is already on every row and
|
|
73599
|
+
* the `event-media` plane serves that key `immutable` with an ETag.
|
|
73600
|
+
*
|
|
73601
|
+
* **This is an INPUT field, so it does not reach the addon until the
|
|
73602
|
+
* next train** — the hub router validates cap inputs against its own
|
|
73603
|
+
* compiled Zod and strips a key it does not know. Until then the
|
|
73604
|
+
* provider sees `undefined`, which resolves to `false`: the cheap shape
|
|
73605
|
+
* is what ships, and the opt-in becomes reachable when the train lands.
|
|
73606
|
+
*/
|
|
73607
|
+
includeCrops: boolean().optional() }).optional(), array(IdentitySchema).readonly()), method(object({ name: string().min(1) }), IdentitySchema, {
|
|
73484
73608
|
kind: "mutation",
|
|
73485
73609
|
auth: "admin"
|
|
73486
73610
|
}), method(object({
|
|
@@ -76370,8 +76494,10 @@ var PlateInfoSchema = object({
|
|
|
76370
76494
|
keyFrameMediaKey: string().optional(),
|
|
76371
76495
|
base64: string().optional(),
|
|
76372
76496
|
/**
|
|
76373
|
-
* Same crop as a data-plane URL
|
|
76374
|
-
* never inlines JPEG; `listPlates`
|
|
76497
|
+
* Same crop as a data-plane URL, always present when the plate has a stored
|
|
76498
|
+
* crop. `getPlateByTrack` returns this and never inlines JPEG; `listPlates`
|
|
76499
|
+
* and `searchPlates` inline the crop only when their `includeCrops` input is
|
|
76500
|
+
* left at its `true` default.
|
|
76375
76501
|
*/
|
|
76376
76502
|
cropUrl: string().optional()
|
|
76377
76503
|
});
|
|
@@ -76391,14 +76517,34 @@ var PlateClusterSchema = object({
|
|
|
76391
76517
|
});
|
|
76392
76518
|
method(object({
|
|
76393
76519
|
deviceId: number().int().optional(),
|
|
76394
|
-
limit: number().int().positive().optional()
|
|
76520
|
+
limit: number().int().positive().optional(),
|
|
76521
|
+
/**
|
|
76522
|
+
* Inline the base64 crop on every row. Default `true` — the existing
|
|
76523
|
+
* behaviour, kept so no caller breaks.
|
|
76524
|
+
*
|
|
76525
|
+
* Set `false` once the caller renders {@link PlateInfo.cropUrl}.
|
|
76526
|
+
* Measured on the live hub at the 500 rows the Plates view asks for:
|
|
76527
|
+
* 879,403 B and 27.7 s with the crops inline, against a few KiB of
|
|
76528
|
+
* metadata without them — and the browser then caches the images.
|
|
76529
|
+
*
|
|
76530
|
+
* This is the plate twin of `faceGallery.listRecentFaces`'s option;
|
|
76531
|
+
* plates were the one gallery list left without it.
|
|
76532
|
+
*
|
|
76533
|
+
* **This is an INPUT field, so it does not reach the addon until the
|
|
76534
|
+
* next train.** The hub router validates cap inputs against its own
|
|
76535
|
+
* compiled Zod and strips a key it does not know. Until the train
|
|
76536
|
+
* ships, sending `false` is harmless and keeps the crops inline.
|
|
76537
|
+
*/
|
|
76538
|
+
includeCrops: boolean().optional()
|
|
76395
76539
|
}).optional(), array(PlateInfoSchema).readonly()), method(object({
|
|
76396
76540
|
deviceId: number().int(),
|
|
76397
76541
|
trackId: string()
|
|
76398
76542
|
}), PlateInfoSchema.nullable()), method(object({ plateId: string() }), array(MediaFileLiteSchema).readonly()), method(object({
|
|
76399
76543
|
text: string().min(1),
|
|
76400
76544
|
maxDistance: number().int().min(0).optional(),
|
|
76401
|
-
limit: number().int().positive().optional()
|
|
76545
|
+
limit: number().int().positive().optional(),
|
|
76546
|
+
/** See `listPlates.includeCrops`. Default `true`. */
|
|
76547
|
+
includeCrops: boolean().optional()
|
|
76402
76548
|
}), array(PlateInfoSchema).readonly()), method(object({
|
|
76403
76549
|
maxDistance: number().int().min(0).optional(),
|
|
76404
76550
|
minClusterSize: number().int().min(2).optional(),
|
|
@@ -76412,7 +76558,13 @@ method(object({
|
|
|
76412
76558
|
}), method(object({ plateId: string() }), _void(), {
|
|
76413
76559
|
kind: "mutation",
|
|
76414
76560
|
auth: "admin"
|
|
76415
|
-
}), method(
|
|
76561
|
+
}), method(object({
|
|
76562
|
+
/** Inline {@link VehicleSchema.coverBase64} on every row. Default
|
|
76563
|
+
* `false` — the vehicle twin of `faceGallery.listIdentities`'s
|
|
76564
|
+
* option; `coverMediaKey` + the `event-media` plane carry the picture.
|
|
76565
|
+
* INPUT field: stripped by the hub router until the train ships, which
|
|
76566
|
+
* resolves to `false` and is exactly the intended default. */
|
|
76567
|
+
includeCrops: boolean().optional() }).optional(), array(VehicleSchema).readonly()), method(object({ name: string().min(1) }), VehicleSchema, {
|
|
76416
76568
|
kind: "mutation",
|
|
76417
76569
|
auth: "admin"
|
|
76418
76570
|
}), method(object({
|
|
@@ -83673,6 +83825,12 @@ Object.freeze({
|
|
|
83673
83825
|
addonId: null,
|
|
83674
83826
|
access: "create"
|
|
83675
83827
|
},
|
|
83828
|
+
"pipelineAnalytics.cancelRelocateMedia": {
|
|
83829
|
+
capName: "pipeline-analytics",
|
|
83830
|
+
capScope: "device",
|
|
83831
|
+
addonId: null,
|
|
83832
|
+
access: "create"
|
|
83833
|
+
},
|
|
83676
83834
|
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
83677
83835
|
capName: "pipeline-analytics",
|
|
83678
83836
|
capScope: "device",
|
|
@@ -83847,6 +84005,12 @@ Object.freeze({
|
|
|
83847
84005
|
addonId: null,
|
|
83848
84006
|
access: "view"
|
|
83849
84007
|
},
|
|
84008
|
+
"pipelineAnalytics.listRelocateMediaJobs": {
|
|
84009
|
+
capName: "pipeline-analytics",
|
|
84010
|
+
capScope: "device",
|
|
84011
|
+
addonId: null,
|
|
84012
|
+
access: "view"
|
|
84013
|
+
},
|
|
83850
84014
|
"pipelineAnalytics.listRetrainAnnotations": {
|
|
83851
84015
|
capName: "pipeline-analytics",
|
|
83852
84016
|
capScope: "device",
|
|
@@ -83925,6 +84089,12 @@ Object.freeze({
|
|
|
83925
84089
|
addonId: null,
|
|
83926
84090
|
access: "create"
|
|
83927
84091
|
},
|
|
84092
|
+
"pipelineAnalytics.relocateMedia": {
|
|
84093
|
+
capName: "pipeline-analytics",
|
|
84094
|
+
capScope: "device",
|
|
84095
|
+
addonId: null,
|
|
84096
|
+
access: "create"
|
|
84097
|
+
},
|
|
83928
84098
|
"pipelineAnalytics.restageRetrainTrack": {
|
|
83929
84099
|
capName: "pipeline-analytics",
|
|
83930
84100
|
capScope: "device",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-provider-dreame",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.29",
|
|
4
4
|
"description": "Dreame robot-vacuum / lawn-mower device-provider addon for CamStack — wraps the @apocaliss92/nodedreame Dreamehome cloud client",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|