@camstack/addon-pipeline 1.2.128 → 1.2.130
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-utils-BnprivSs.js → addon-utils-DH78p79i.js} +1 -1
- package/dist/audio-analyzer/index.js +3 -3
- package/dist/audio-analyzer/index.mjs +2 -2
- package/dist/detection-pipeline/index.js +241 -95
- package/dist/detection-pipeline/index.mjs +239 -93
- package/dist/{dist-BZUXb5S5.js → dist-DOw-izoI.js} +243 -75
- package/dist/{dist-HLAOw6Pe.mjs → dist-Wt81pN5Y.mjs} +243 -75
- package/dist/{event-loop-stall-monitor-BdArVUlx.js → event-loop-stall-monitor-Bld7jNCb.js} +1 -1
- package/dist/{event-loop-stall-monitor-BH-cL_hg.mjs → event-loop-stall-monitor-CtQCOZqm.mjs} +1 -1
- package/dist/{lazy-sharp-DTDXrhMG.js → lazy-sharp-BbNI2ZD-.js} +1 -1
- package/dist/motion-wasm/index.js +2 -2
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/pipeline-runner/index.js +4 -4
- package/dist/pipeline-runner/index.mjs +3 -3
- package/dist/{process-memory-CDPRLalN.mjs → process-memory-1_D3EZT9.mjs} +1 -1
- package/dist/{process-memory-Dh1SyzdJ.js → process-memory-D9H5qjDl.js} +1 -1
- package/dist/recorder/index.js +467 -29
- package/dist/recorder/index.mjs +465 -28
- package/dist/{segment-demux-js-D-TLcHW5.mjs → segment-demux-js-BW-Q-j2A.mjs} +1 -1
- package/dist/{segment-demux-js-DRutggd6.js → segment-demux-js-C2jBBqGW.js} +1 -1
- package/dist/session-decode/decode-worker-child.js +2 -2
- package/dist/session-decode/decode-worker-child.mjs +1 -1
- package/dist/stream-broker/_stub.js +2 -2
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-BDR5z0Z9.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-Dw-iwP4y.mjs} +3 -3
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-Bme2OZQp.mjs +26 -0
- package/dist/stream-broker/{_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-Do2DEtRt.mjs → _virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-D36MoVV1.mjs} +1 -1
- package/dist/stream-broker/demux-worker-child.js +1 -1
- package/dist/stream-broker/demux-worker-child.mjs +1 -1
- package/dist/stream-broker/{hostInit-Dmw5LWmP.mjs → hostInit-DEVCEYgu.mjs} +3 -3
- package/dist/stream-broker/index.js +906 -423
- package/dist/stream-broker/index.mjs +906 -423
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/dist/{worker-protocol-BxkCoVjw.js → worker-protocol-nAZl_Rsv.js} +1 -1
- package/dist/{worker-protocol-h7Smb_0i.mjs → worker-protocol-rpnr7Ldd.mjs} +1 -1
- package/package.json +1 -1
- package/python/__pycache__/inference_pool.cpython-312.pyc +0 -0
- package/python/__pycache__/inference_pool.cpython-313.pyc +0 -0
- package/python/__pycache__/inference_pool.cpython-314.pyc +0 -0
- package/python/__pycache__/test_inference_pool_backpressure.cpython-312-pytest-9.1.1.pyc +0 -0
- package/python/__pycache__/test_inference_pool_backpressure.cpython-312.pyc +0 -0
- package/python/__pycache__/test_inference_pool_backpressure.cpython-314.pyc +0 -0
- package/python/__pycache__/test_inference_pool_coreml_cache.cpython-312-pytest-9.1.1.pyc +0 -0
- package/python/__pycache__/test_inference_pool_coreml_cache.cpython-312.pyc +0 -0
- package/python/__pycache__/test_inference_pool_coreml_cache.cpython-314.pyc +0 -0
- package/python/__pycache__/test_inference_pool_device_selection.cpython-312-pytest-9.1.1.pyc +0 -0
- package/python/__pycache__/test_inference_pool_device_selection.cpython-312.pyc +0 -0
- package/python/__pycache__/test_inference_pool_device_selection.cpython-314.pyc +0 -0
- package/python/__pycache__/test_inference_pool_layout.cpython-312-pytest-9.1.1.pyc +0 -0
- package/python/__pycache__/test_inference_pool_layout.cpython-314.pyc +0 -0
- package/python/__pycache__/test_inference_pool_memstats.cpython-312-pytest-9.1.1.pyc +0 -0
- package/python/__pycache__/test_inference_pool_memstats.cpython-312.pyc +0 -0
- package/python/__pycache__/test_inference_pool_memstats.cpython-314.pyc +0 -0
- package/python/__pycache__/test_inference_pool_ov_ppp.cpython-312-pytest-9.1.1.pyc +0 -0
- package/python/__pycache__/test_inference_pool_ov_ppp.cpython-312.pyc +0 -0
- package/python/__pycache__/test_inference_pool_ov_ppp.cpython-314.pyc +0 -0
- package/python/__pycache__/test_inference_pool_preprocess.cpython-312-pytest-9.1.1.pyc +0 -0
- package/python/__pycache__/test_inference_pool_preprocess.cpython-314.pyc +0 -0
- package/python/__pycache__/test_inference_pool_reconfigure.cpython-314.pyc +0 -0
- package/python/__pycache__/test_inference_pool_static_batch.cpython-312-pytest-9.1.1.pyc +0 -0
- package/python/__pycache__/test_inference_pool_static_batch.cpython-312.pyc +0 -0
- package/python/__pycache__/test_inference_pool_static_batch.cpython-314.pyc +0 -0
- package/python/__pycache__/yamnet_audio.cpython-314.pyc +0 -0
- package/python/postprocessors/__pycache__/__init__.cpython-312.pyc +0 -0
- package/python/postprocessors/__pycache__/__init__.cpython-313.pyc +0 -0
- package/python/postprocessors/__pycache__/__init__.cpython-314.pyc +0 -0
- package/python/postprocessors/__pycache__/_safety.cpython-313.pyc +0 -0
- package/python/postprocessors/__pycache__/arcface.cpython-312.pyc +0 -0
- package/python/postprocessors/__pycache__/arcface.cpython-313.pyc +0 -0
- package/python/postprocessors/__pycache__/arcface.cpython-314.pyc +0 -0
- package/python/postprocessors/__pycache__/clip.cpython-312.pyc +0 -0
- package/python/postprocessors/__pycache__/clip.cpython-313.pyc +0 -0
- package/python/postprocessors/__pycache__/clip.cpython-314.pyc +0 -0
- package/python/postprocessors/__pycache__/ctc.cpython-312.pyc +0 -0
- package/python/postprocessors/__pycache__/ctc.cpython-313.pyc +0 -0
- package/python/postprocessors/__pycache__/ctc.cpython-314.pyc +0 -0
- package/python/postprocessors/__pycache__/plate_slots.cpython-312.pyc +0 -0
- package/python/postprocessors/__pycache__/plate_slots.cpython-314.pyc +0 -0
- package/python/postprocessors/__pycache__/rfdetr.cpython-312.pyc +0 -0
- package/python/postprocessors/__pycache__/rfdetr.cpython-314.pyc +0 -0
- package/python/postprocessors/__pycache__/saliency.cpython-312.pyc +0 -0
- package/python/postprocessors/__pycache__/saliency.cpython-313.pyc +0 -0
- package/python/postprocessors/__pycache__/saliency.cpython-314.pyc +0 -0
- package/python/postprocessors/__pycache__/scrfd.cpython-312.pyc +0 -0
- package/python/postprocessors/__pycache__/scrfd.cpython-313.pyc +0 -0
- package/python/postprocessors/__pycache__/scrfd.cpython-314.pyc +0 -0
- package/python/postprocessors/__pycache__/softmax.cpython-312.pyc +0 -0
- package/python/postprocessors/__pycache__/softmax.cpython-313.pyc +0 -0
- package/python/postprocessors/__pycache__/softmax.cpython-314.pyc +0 -0
- package/python/postprocessors/__pycache__/ssd.cpython-312.pyc +0 -0
- package/python/postprocessors/__pycache__/ssd.cpython-313.pyc +0 -0
- package/python/postprocessors/__pycache__/ssd.cpython-314.pyc +0 -0
- package/python/postprocessors/__pycache__/test_clip.cpython-312-pytest-9.1.1.pyc +0 -0
- package/python/postprocessors/__pycache__/test_clip.cpython-313-pytest-9.1.1.pyc +0 -0
- package/python/postprocessors/__pycache__/test_ctc.cpython-312-pytest-9.1.1.pyc +0 -0
- package/python/postprocessors/__pycache__/test_ctc.cpython-312.pyc +0 -0
- package/python/postprocessors/__pycache__/test_ctc.cpython-313-pytest-9.1.1.pyc +0 -0
- package/python/postprocessors/__pycache__/test_ctc.cpython-313.pyc +0 -0
- package/python/postprocessors/__pycache__/test_ctc.cpython-314.pyc +0 -0
- package/python/postprocessors/__pycache__/test_plate_slots.cpython-312-pytest-9.1.1.pyc +0 -0
- package/python/postprocessors/__pycache__/test_rfdetr.cpython-312-pytest-9.1.1.pyc +0 -0
- package/python/postprocessors/__pycache__/test_rfdetr.cpython-314.pyc +0 -0
- package/python/postprocessors/__pycache__/test_saliency.cpython-312-pytest-9.1.1.pyc +0 -0
- package/python/postprocessors/__pycache__/test_saliency.cpython-313-pytest-9.1.1.pyc +0 -0
- package/python/postprocessors/__pycache__/test_saliency.cpython-314.pyc +0 -0
- package/python/postprocessors/__pycache__/test_softmax.cpython-312-pytest-9.1.1.pyc +0 -0
- package/python/postprocessors/__pycache__/test_softmax.cpython-314.pyc +0 -0
- package/python/postprocessors/__pycache__/test_yolo_nms.cpython-312-pytest-9.1.1.pyc +0 -0
- package/python/postprocessors/__pycache__/test_yolo_nms.cpython-314.pyc +0 -0
- package/python/postprocessors/__pycache__/test_yolo_nms.cpython-39.pyc +0 -0
- package/python/postprocessors/__pycache__/test_yolonas.cpython-312-pytest-9.1.1.pyc +0 -0
- package/python/postprocessors/__pycache__/yamnet.cpython-312.pyc +0 -0
- package/python/postprocessors/__pycache__/yamnet.cpython-313.pyc +0 -0
- package/python/postprocessors/__pycache__/yamnet.cpython-314.pyc +0 -0
- package/python/postprocessors/__pycache__/yolo.cpython-312.pyc +0 -0
- package/python/postprocessors/__pycache__/yolo.cpython-313.pyc +0 -0
- package/python/postprocessors/__pycache__/yolo.cpython-314.pyc +0 -0
- package/python/postprocessors/__pycache__/yolo.cpython-39.pyc +0 -0
- package/python/postprocessors/__pycache__/yolo_seg.cpython-312.pyc +0 -0
- package/python/postprocessors/__pycache__/yolo_seg.cpython-313.pyc +0 -0
- package/python/postprocessors/__pycache__/yolo_seg.cpython-314.pyc +0 -0
- package/python/postprocessors/__pycache__/yolonas.cpython-312.pyc +0 -0
- package/python/postprocessors/__pycache__/yolonas.cpython-314.pyc +0 -0
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-Cs8bmrWP.mjs +0 -26
|
@@ -6792,7 +6792,7 @@ function method(input, output, options) {
|
|
|
6792
6792
|
input,
|
|
6793
6793
|
output,
|
|
6794
6794
|
kind: options?.kind ?? "query",
|
|
6795
|
-
auth: options
|
|
6795
|
+
...options?.auth !== void 0 ? { auth: options.auth } : {},
|
|
6796
6796
|
...options?.access !== void 0 ? { access: options.access } : {},
|
|
6797
6797
|
...options?.caller !== void 0 ? { caller: options.caller } : {},
|
|
6798
6798
|
timeoutMs: options?.timeoutMs
|
|
@@ -6816,7 +6816,7 @@ function event(data) {
|
|
|
6816
6816
|
}
|
|
6817
6817
|
var StaticDirOutputSchema$1 = object({ staticDir: string() });
|
|
6818
6818
|
var VersionOutputSchema$1 = object({ version: string() });
|
|
6819
|
-
method(_void(), StaticDirOutputSchema$1), method(_void(), VersionOutputSchema$1);
|
|
6819
|
+
method(_void(), StaticDirOutputSchema$1, { auth: "admin" }), method(_void(), VersionOutputSchema$1, { auth: "admin" });
|
|
6820
6820
|
var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
6821
6821
|
DeviceType["Camera"] = "camera";
|
|
6822
6822
|
DeviceType["Hub"] = "hub";
|
|
@@ -7137,7 +7137,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
7137
7137
|
}({});
|
|
7138
7138
|
var StaticDirOutputSchema = object({ staticDir: string() });
|
|
7139
7139
|
var VersionOutputSchema = object({ version: string() });
|
|
7140
|
-
method(_void(), StaticDirOutputSchema), method(_void(), VersionOutputSchema);
|
|
7140
|
+
method(_void(), StaticDirOutputSchema, { auth: "admin" }), method(_void(), VersionOutputSchema, { auth: "admin" });
|
|
7141
7141
|
/**
|
|
7142
7142
|
* device-ops — device-scoped cap that unifies the per-IDevice operations
|
|
7143
7143
|
* previously routed through the `.device-ops` Moleculer bridge service.
|
|
@@ -8622,24 +8622,6 @@ var RecordingRetentionSchema = object({
|
|
|
8622
8622
|
maxSizeGb: number().min(0).optional()
|
|
8623
8623
|
});
|
|
8624
8624
|
/**
|
|
8625
|
-
* Scrub-thumbnail fidelity preset — the single per-camera selector bundling the
|
|
8626
|
-
* sprite tile RESOLUTION + JPEG QUALITY the recorder packs timeline-scrub
|
|
8627
|
-
* previews at. Five graduated steps; absent on a config = `standard` (the
|
|
8628
|
-
* shipped default, matching `sheet-geometry`/`sheet-composer`).
|
|
8629
|
-
*
|
|
8630
|
-
* Existing sheets are IMMUTABLE — a changed preset applies to NEW windows only.
|
|
8631
|
-
* Each window's index sidecar carries its own tile dims, so a camera whose
|
|
8632
|
-
* preset changed over time renders every historical window at the dims it was
|
|
8633
|
-
* written with.
|
|
8634
|
-
*/
|
|
8635
|
-
var ScrubThumbnailPresetSchema = _enum([
|
|
8636
|
-
"minimal",
|
|
8637
|
-
"low",
|
|
8638
|
-
"standard",
|
|
8639
|
-
"high",
|
|
8640
|
-
"max"
|
|
8641
|
-
]);
|
|
8642
|
-
/**
|
|
8643
8625
|
* The full per-camera recording intent — the wire shape of a RecordingTarget.
|
|
8644
8626
|
*
|
|
8645
8627
|
* `bands` is the ONLY authored recording intent: what to record, when, and on
|
|
@@ -8647,7 +8629,11 @@ var ScrubThumbnailPresetSchema = _enum([
|
|
|
8647
8629
|
* other field is a storage knob (profiles, segment length, retention, scrub).
|
|
8648
8630
|
*
|
|
8649
8631
|
* STRICT on purpose: the legacy authoring surface (`schedule`/`schedules`/
|
|
8650
|
-
* `triggers`/`preBufferSec`/`postBufferSec`/`rules`) was retired 2026-07-30
|
|
8632
|
+
* `triggers`/`preBufferSec`/`postBufferSec`/`rules`) was retired 2026-07-30,
|
|
8633
|
+
* and `scrubThumbnails` — a five-step fidelity knob for a sprite tier that was
|
|
8634
|
+
* deleted on 2026-07-24 and had ZERO consumers in the recorder — on 2026-08-25
|
|
8635
|
+
* (D62: a switch that writes a store nobody reads is worse than no switch).
|
|
8636
|
+
* Stored rows keep loading: the READ schema is `.strip()` (config-store.ts).
|
|
8651
8637
|
* A stale caller must fail loudly — silently stripping its legacy intent would
|
|
8652
8638
|
* persist a band-less config, i.e. silently stop recording the camera.
|
|
8653
8639
|
*/
|
|
@@ -8670,14 +8656,7 @@ var RecordingConfigSchema = object({
|
|
|
8670
8656
|
* "off" is the absence of a covering band, never a band value.
|
|
8671
8657
|
*/
|
|
8672
8658
|
bands: array(RecordingBandSchema).default([]),
|
|
8673
|
-
retention: RecordingRetentionSchema.optional()
|
|
8674
|
-
/**
|
|
8675
|
-
* Per-camera scrub-thumbnail fidelity preset (resolution + JPEG quality for
|
|
8676
|
-
* timeline-scrub sprite previews). Absent = `standard`. Applies to NEW
|
|
8677
|
-
* windows only — existing sheets are immutable, and each window's index
|
|
8678
|
-
* carries its own tile dims so mixed-preset history renders correctly.
|
|
8679
|
-
*/
|
|
8680
|
-
scrubThumbnails: ScrubThumbnailPresetSchema.optional()
|
|
8659
|
+
retention: RecordingRetentionSchema.optional()
|
|
8681
8660
|
}).strict();
|
|
8682
8661
|
/**
|
|
8683
8662
|
* Derive the {@link RecordingStorageModeSchema} summary from the authoritative
|
|
@@ -8793,10 +8772,11 @@ var RelocateFootageInputSchema = object({
|
|
|
8793
8772
|
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
8794
8773
|
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
8795
8774
|
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
8796
|
-
var
|
|
8775
|
+
var RelocateMediaInputSchema = object({
|
|
8797
8776
|
toLocationId: string(),
|
|
8798
8777
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
8799
|
-
})
|
|
8778
|
+
});
|
|
8779
|
+
var StorageMigrationMediaMoveInputSchema = RelocateMediaInputSchema.extend({ leaseId: string().min(1) });
|
|
8800
8780
|
/** The independently selectable logical storage classes. `recordings`
|
|
8801
8781
|
* encompasses the high and mid segment profiles; `recordingsLow` is low
|
|
8802
8782
|
* segments; `eventMedia` is post-analysis blobs. */
|
|
@@ -9091,7 +9071,26 @@ var LabelDefinitionSchema = object({
|
|
|
9091
9071
|
description: string().optional(),
|
|
9092
9072
|
icon: string().optional()
|
|
9093
9073
|
});
|
|
9094
|
-
|
|
9074
|
+
/**
|
|
9075
|
+
* Wire schema for a per-model CATALOG classMap override
|
|
9076
|
+
* (`ModelCatalogEntry.classMap` / `ModelConvertMetadata.classMap`) —
|
|
9077
|
+
* restricted to {@link CLASS_MAP_MACRO_TARGETS}, the only macros the
|
|
9078
|
+
* detection pipeline executor actually routes.
|
|
9079
|
+
*
|
|
9080
|
+
* This is deliberately a DIFFERENT, narrower shape than the general-purpose
|
|
9081
|
+
* `ClassMapDefinition` interface above (e.g. `IDetectionAddon.getClassMap()`
|
|
9082
|
+
* and the audio `YAMNET_TO_MACRO` catalog both use macro targets outside this
|
|
9083
|
+
* enum) — the two used to share the name `ClassMapDefinition`/
|
|
9084
|
+
* `ClassMapDefinitionSchema`, which made the schema-type-twin guard
|
|
9085
|
+
* (`scripts/check-schema-type-twins.ts`) flag them as a duplicated shape. They
|
|
9086
|
+
* are not: it is two different concepts colliding on a name. Keep this type
|
|
9087
|
+
* under its own name rather than reusing `ClassMapDefinition` — reusing it
|
|
9088
|
+
* would either narrow every `ClassMapDefinition` consumer to the four
|
|
9089
|
+
* detection macros (breaking `YAMNET_TO_MACRO`) or drop the validation this
|
|
9090
|
+
* schema exists for (see the "rejects a classMap whose target is not a
|
|
9091
|
+
* detection macro" test in `model-catalog-schema.test.ts`).
|
|
9092
|
+
*/
|
|
9093
|
+
var DetectionCatalogClassMapSchema = object({
|
|
9095
9094
|
mapping: record(string(), _enum([
|
|
9096
9095
|
"person",
|
|
9097
9096
|
"vehicle",
|
|
@@ -9309,7 +9308,7 @@ var ModelCatalogEntrySchema = object({
|
|
|
9309
9308
|
* applies (Frigate / COCO public catalog). Set on a custom model whose raw
|
|
9310
9309
|
* labels already ARE the CamStack macros (Scrypted identity map).
|
|
9311
9310
|
*/
|
|
9312
|
-
classMap:
|
|
9311
|
+
classMap: DetectionCatalogClassMapSchema.optional()
|
|
9313
9312
|
});
|
|
9314
9313
|
var ConvertTargetSchema = discriminatedUnion("format", [object({
|
|
9315
9314
|
format: literal("openvino"),
|
|
@@ -9339,7 +9338,7 @@ var ModelConvertMetadataSchema = object({
|
|
|
9339
9338
|
"segmentation"
|
|
9340
9339
|
]),
|
|
9341
9340
|
faceAlignment: boolean().optional(),
|
|
9342
|
-
classMap:
|
|
9341
|
+
classMap: DetectionCatalogClassMapSchema.optional()
|
|
9343
9342
|
});
|
|
9344
9343
|
var ConvertResultSchema = object({
|
|
9345
9344
|
entry: ModelCatalogEntrySchema,
|
|
@@ -10202,7 +10201,7 @@ var AddonPageDeclarationSchema = object({
|
|
|
10202
10201
|
/** Display label for a CUSTOM `section` id (ignored for well-known ids). */
|
|
10203
10202
|
sectionLabel: string().optional()
|
|
10204
10203
|
});
|
|
10205
|
-
method(_void(), array(AddonPageDeclarationSchema).readonly());
|
|
10204
|
+
method(_void(), array(AddonPageDeclarationSchema).readonly(), { auth: "admin" });
|
|
10206
10205
|
var AddonHttpRouteSchema = object({
|
|
10207
10206
|
method: _enum([
|
|
10208
10207
|
"GET",
|
|
@@ -10442,7 +10441,20 @@ var addonWidgetsSourceCapability = {
|
|
|
10442
10441
|
scope: "system",
|
|
10443
10442
|
mode: "collection",
|
|
10444
10443
|
internal: true,
|
|
10445
|
-
methods: {
|
|
10444
|
+
methods: {
|
|
10445
|
+
/**
|
|
10446
|
+
* `internal: true` did not gate the mount (see the 2026-08-26 note on
|
|
10447
|
+
* `data-store-provider`) — this was reachable on the AppRouter by ANY
|
|
10448
|
+
* authenticated session at the default `auth: 'protected'`. The only
|
|
10449
|
+
* consumer, the `addon-widgets-aggregator` builtin, reads it via
|
|
10450
|
+
* `ctx.capabilities.getCollection('addon-widgets-source')` — LOCAL-PROCESS
|
|
10451
|
+
* only, never tRPC. The public, enriched listing admin-ui actually
|
|
10452
|
+
* consumes is the separate `addon-widgets` cap (`listWidgets` there is
|
|
10453
|
+
* gated separately, and a `preAuth: true` widget is surfaced through the
|
|
10454
|
+
* PUBLIC `auth.listLoginMethods` contribution channel instead) —
|
|
10455
|
+
* neither is affected by this change.
|
|
10456
|
+
*/
|
|
10457
|
+
listWidgets: method(_void(), array(WidgetMetadataSchema).readonly(), { auth: "admin" }) }
|
|
10446
10458
|
};
|
|
10447
10459
|
/**
|
|
10448
10460
|
* `addon-widgets` — system-scoped singleton aggregator cap. Public-facing
|
|
@@ -12378,7 +12390,7 @@ var CustomModelDescriptorSchema = object({
|
|
|
12378
12390
|
stepId: string(),
|
|
12379
12391
|
entry: ModelCatalogEntrySchema
|
|
12380
12392
|
});
|
|
12381
|
-
method(_void(), array(CustomModelDescriptorSchema).readonly());
|
|
12393
|
+
method(_void(), array(CustomModelDescriptorSchema).readonly(), { auth: "admin" });
|
|
12382
12394
|
/**
|
|
12383
12395
|
* Query filter for settings-store collections.
|
|
12384
12396
|
*/
|
|
@@ -12465,7 +12477,8 @@ method(object({
|
|
|
12465
12477
|
}), _void(), { kind: "mutation" }), method(object({
|
|
12466
12478
|
namespace: string().optional(),
|
|
12467
12479
|
collection: string(),
|
|
12468
|
-
filter: QueryFilterSchema.optional()
|
|
12480
|
+
filter: QueryFilterSchema.optional(),
|
|
12481
|
+
columns: array(string()).readonly().optional()
|
|
12469
12482
|
}), array(SettingsRecordSchema).readonly()), method(object({
|
|
12470
12483
|
namespace: string().optional(),
|
|
12471
12484
|
collection: string(),
|
|
@@ -12528,46 +12541,87 @@ var EngineInfoSchema = object({
|
|
|
12528
12541
|
kind: _enum(["relational", "vector"]),
|
|
12529
12542
|
displayName: string()
|
|
12530
12543
|
});
|
|
12531
|
-
method(_void(), EngineInfoSchema), method(object({
|
|
12544
|
+
method(_void(), EngineInfoSchema, { auth: "admin" }), method(object({
|
|
12532
12545
|
namespace: string().optional(),
|
|
12533
12546
|
collection: string(),
|
|
12534
12547
|
key: string()
|
|
12535
|
-
}), unknown()), method(object({
|
|
12548
|
+
}), unknown(), { auth: "admin" }), method(object({
|
|
12536
12549
|
namespace: string().optional(),
|
|
12537
12550
|
collection: string(),
|
|
12538
12551
|
key: string(),
|
|
12539
12552
|
value: unknown()
|
|
12540
|
-
}), _void(), {
|
|
12553
|
+
}), _void(), {
|
|
12554
|
+
kind: "mutation",
|
|
12555
|
+
auth: "admin"
|
|
12556
|
+
}), method(object({
|
|
12541
12557
|
namespace: string().optional(),
|
|
12542
12558
|
collection: string(),
|
|
12543
|
-
filter: QueryFilterSchema.optional()
|
|
12544
|
-
|
|
12559
|
+
filter: QueryFilterSchema.optional(),
|
|
12560
|
+
/**
|
|
12561
|
+
* SQL-level column projection — MUST mirror `settings-store.query`.
|
|
12562
|
+
*
|
|
12563
|
+
* ⚠ An earlier version of this comment blamed Zod stripping, and that
|
|
12564
|
+
* was wrong — corrected 2026-08-26 after the hop map
|
|
12565
|
+
* (`docs/design/2026-08-26-mappa-hop-argomenti.md`) traced the path.
|
|
12566
|
+
* There is **no Zod parse at all** between the door and the engine: the
|
|
12567
|
+
* dispatcher forwards the payload verbatim and UDS carries it whole. A
|
|
12568
|
+
* field declared here reaches `SqliteSettingsBackend` either way.
|
|
12569
|
+
*
|
|
12570
|
+
* What actually lost `columns` was the THIRD declaration of this shape:
|
|
12571
|
+
* `SettingsQueryInput` in `interfaces/storage.ts`, a hand-written TS
|
|
12572
|
+
* interface the engine destructures from. The field existed on both
|
|
12573
|
+
* schemas and the engine still never read it, because nothing checks a
|
|
12574
|
+
* registered provider against `InferProvider<cap>` —
|
|
12575
|
+
* `ProviderRegistration.provider` is typed `object`.
|
|
12576
|
+
*
|
|
12577
|
+
* It is declared here anyway, and must stay in step with
|
|
12578
|
+
* `settings-store.query`: a caller reading only the cap definitions has
|
|
12579
|
+
* to be able to see that this call carries a projection.
|
|
12580
|
+
* `data-door-schema-parity.spec.ts` keeps the two aligned.
|
|
12581
|
+
*/
|
|
12582
|
+
columns: array(string()).readonly().optional()
|
|
12583
|
+
}), array(SettingsRecordSchema).readonly(), { auth: "admin" }), method(object({
|
|
12545
12584
|
namespace: string().optional(),
|
|
12546
12585
|
collection: string(),
|
|
12547
12586
|
record: SettingsRecordSchema
|
|
12548
|
-
}), _void(), {
|
|
12587
|
+
}), _void(), {
|
|
12588
|
+
kind: "mutation",
|
|
12589
|
+
auth: "admin"
|
|
12590
|
+
}), method(object({
|
|
12549
12591
|
namespace: string().optional(),
|
|
12550
12592
|
collection: string(),
|
|
12551
12593
|
id: string(),
|
|
12552
12594
|
data: record(string(), unknown())
|
|
12553
|
-
}), _void(), {
|
|
12595
|
+
}), _void(), {
|
|
12596
|
+
kind: "mutation",
|
|
12597
|
+
auth: "admin"
|
|
12598
|
+
}), method(object({
|
|
12554
12599
|
namespace: string().optional(),
|
|
12555
12600
|
collection: string(),
|
|
12556
12601
|
key: string()
|
|
12557
|
-
}), _void(), {
|
|
12602
|
+
}), _void(), {
|
|
12603
|
+
kind: "mutation",
|
|
12604
|
+
auth: "admin"
|
|
12605
|
+
}), method(object({
|
|
12558
12606
|
namespace: string().optional(),
|
|
12559
12607
|
collection: string(),
|
|
12560
12608
|
filter: MutationFilterSchema
|
|
12561
|
-
}), object({ deleted: number().int() }), {
|
|
12609
|
+
}), object({ deleted: number().int() }), {
|
|
12610
|
+
kind: "mutation",
|
|
12611
|
+
auth: "admin"
|
|
12612
|
+
}), method(object({
|
|
12562
12613
|
namespace: string().optional(),
|
|
12563
12614
|
collection: string(),
|
|
12564
12615
|
filter: MutationFilterSchema,
|
|
12565
12616
|
data: record(string(), unknown())
|
|
12566
|
-
}), object({ updated: number().int() }), {
|
|
12617
|
+
}), object({ updated: number().int() }), {
|
|
12618
|
+
kind: "mutation",
|
|
12619
|
+
auth: "admin"
|
|
12620
|
+
}), method(object({
|
|
12567
12621
|
namespace: string().optional(),
|
|
12568
12622
|
collection: string(),
|
|
12569
12623
|
filter: QueryFilterSchema.optional()
|
|
12570
|
-
}), number()), method(object({
|
|
12624
|
+
}), number(), { auth: "admin" }), method(object({
|
|
12571
12625
|
namespace: string().optional(),
|
|
12572
12626
|
collection: string(),
|
|
12573
12627
|
field: string(),
|
|
@@ -12577,15 +12631,18 @@ method(_void(), EngineInfoSchema), method(object({
|
|
|
12577
12631
|
}), array(object({
|
|
12578
12632
|
bucket: number().int(),
|
|
12579
12633
|
count: number().int()
|
|
12580
|
-
})).readonly()), method(object({
|
|
12634
|
+
})).readonly(), { auth: "admin" }), method(object({
|
|
12581
12635
|
namespace: string().optional(),
|
|
12582
12636
|
collection: string()
|
|
12583
|
-
}), boolean()), method(object({
|
|
12637
|
+
}), boolean(), { auth: "admin" }), method(object({
|
|
12584
12638
|
namespace: string().optional(),
|
|
12585
12639
|
collection: string(),
|
|
12586
12640
|
columns: array(CollectionColumnSchema).readonly(),
|
|
12587
12641
|
indexes: array(CollectionIndexSchema).readonly().optional()
|
|
12588
|
-
}), _void(), {
|
|
12642
|
+
}), _void(), {
|
|
12643
|
+
kind: "mutation",
|
|
12644
|
+
auth: "admin"
|
|
12645
|
+
});
|
|
12589
12646
|
/**
|
|
12590
12647
|
* shm ring usage stats for a `frameSink: 'shm'` decoder session —
|
|
12591
12648
|
* exposed via `decoder.getShmStats` so downstream consumers can
|
|
@@ -13744,7 +13801,7 @@ method(object({
|
|
|
13744
13801
|
crop: _instanceof(Uint8Array),
|
|
13745
13802
|
width: number(),
|
|
13746
13803
|
height: number()
|
|
13747
|
-
}), EmbeddingResultSchema), method(object({ text: string() }), EmbeddingResultSchema), method(_void(), EmbeddingInfoSchema);
|
|
13804
|
+
}), EmbeddingResultSchema, { auth: "admin" }), method(object({ text: string() }), EmbeddingResultSchema, { auth: "admin" }), method(_void(), EmbeddingInfoSchema, { auth: "admin" });
|
|
13748
13805
|
/**
|
|
13749
13806
|
* filesystem-browse — per-node capability for browsing the node's local
|
|
13750
13807
|
* filesystem. Reads are unconfined (whole filesystem, from `/` down); WRITES
|
|
@@ -14037,19 +14094,22 @@ method(LlmGenerateBaseInputSchema.extend({
|
|
|
14037
14094
|
runtime: ManagedRuntimeConfigSchema,
|
|
14038
14095
|
/** The managed profile's timeout, threaded by the hub provider. */
|
|
14039
14096
|
timeoutMs: number().int().positive().optional()
|
|
14040
|
-
}), LlmGenerateResultSchema, {
|
|
14097
|
+
}), LlmGenerateResultSchema, {
|
|
14098
|
+
kind: "mutation",
|
|
14099
|
+
auth: "admin"
|
|
14100
|
+
}), method(object({ runtime: ManagedRuntimeConfigSchema }), LlmRuntimeStatusSchema, {
|
|
14041
14101
|
kind: "mutation",
|
|
14042
14102
|
auth: "admin"
|
|
14043
14103
|
}), method(object({}), _void(), {
|
|
14044
14104
|
kind: "mutation",
|
|
14045
14105
|
auth: "admin"
|
|
14046
|
-
}), method(object({}), LlmRuntimeStatusSchema), method(object({ model: ManagedModelRefSchema }), _void(), {
|
|
14106
|
+
}), method(object({}), LlmRuntimeStatusSchema, { auth: "admin" }), method(object({ model: ManagedModelRefSchema }), _void(), {
|
|
14047
14107
|
kind: "mutation",
|
|
14048
14108
|
auth: "admin"
|
|
14049
14109
|
}), method(object({ file: string() }), _void(), {
|
|
14050
14110
|
kind: "mutation",
|
|
14051
14111
|
auth: "admin"
|
|
14052
|
-
}), method(object({}), array(LlmNodeModelSchema)), method(object({}), LlmRuntimeDiskUsageSchema);
|
|
14112
|
+
}), method(object({}), array(LlmNodeModelSchema), { auth: "admin" }), method(object({}), LlmRuntimeDiskUsageSchema, { auth: "admin" });
|
|
14053
14113
|
/**
|
|
14054
14114
|
* `llm` — consumer-facing LLM surface (spec §1-§3). Collection-mode: array
|
|
14055
14115
|
* methods concat-fan across providers; single-row methods route to ONE
|
|
@@ -17865,7 +17925,7 @@ var OauthIntegrationDescriptorSchema = object({
|
|
|
17865
17925
|
*/
|
|
17866
17926
|
refreshTokenTtlSec: union([number().int().positive(), literal("never")]).optional()
|
|
17867
17927
|
});
|
|
17868
|
-
method(_void(), OauthIntegrationDescriptorSchema);
|
|
17928
|
+
method(_void(), OauthIntegrationDescriptorSchema, { auth: "admin" });
|
|
17869
17929
|
/**
|
|
17870
17930
|
* pipeline-analytics — device-scoped wrapper cap. Refines raw
|
|
17871
17931
|
* per-frame detections emitted by the pipeline runner into tracked
|
|
@@ -19060,6 +19120,15 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
19060
19120
|
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
19061
19121
|
kind: "mutation",
|
|
19062
19122
|
auth: "admin"
|
|
19123
|
+
}), method(RelocateMediaInputSchema, object({ jobId: string() }), {
|
|
19124
|
+
kind: "mutation",
|
|
19125
|
+
auth: "admin"
|
|
19126
|
+
}), method(object({}), array(RelocateJobSchema).readonly(), {
|
|
19127
|
+
kind: "query",
|
|
19128
|
+
auth: "admin"
|
|
19129
|
+
}), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
19130
|
+
kind: "mutation",
|
|
19131
|
+
auth: "admin"
|
|
19063
19132
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
19064
19133
|
kind: "query",
|
|
19065
19134
|
auth: "admin"
|
|
@@ -19214,6 +19283,11 @@ object({
|
|
|
19214
19283
|
"jpeg"
|
|
19215
19284
|
])
|
|
19216
19285
|
});
|
|
19286
|
+
/**
|
|
19287
|
+
* Process-local frame identity. It is serializable so it can ride an in-process
|
|
19288
|
+
* capability call, but `registryId` deliberately prevents resolution in any
|
|
19289
|
+
* other process or execution group.
|
|
19290
|
+
*/
|
|
19217
19291
|
var FrameRefSchema = object({
|
|
19218
19292
|
registryId: string().min(1),
|
|
19219
19293
|
id: string().min(1),
|
|
@@ -21673,7 +21747,7 @@ method(object({
|
|
|
21673
21747
|
* linking rather than produce an eternal token.
|
|
21674
21748
|
*/
|
|
21675
21749
|
ttlSec: union([number().int().positive(), literal("never")]).optional()
|
|
21676
|
-
}), object({ token: string() })), method(object({ token: string() }), SsoBridgeClaimsSchema.nullable());
|
|
21750
|
+
}), object({ token: string() }), { auth: "admin" }), method(object({ token: string() }), SsoBridgeClaimsSchema.nullable(), { auth: "admin" });
|
|
21677
21751
|
var ProviderListEntrySchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
21678
21752
|
providerId: string().min(1),
|
|
21679
21753
|
displayName: string().min(1),
|
|
@@ -21774,8 +21848,15 @@ var storageEvictableCapability = {
|
|
|
21774
21848
|
mode: "collection",
|
|
21775
21849
|
internal: true,
|
|
21776
21850
|
methods: {
|
|
21851
|
+
/**
|
|
21852
|
+
* `internal: true` did not gate the mount (see the 2026-08-26 note on
|
|
21853
|
+
* `data-store-provider`) — this was reachable on the AppRouter by ANY
|
|
21854
|
+
* authenticated session at the default `auth: 'protected'`. The only
|
|
21855
|
+
* consumer is the orchestrator's `StoragePressureManager`, which calls
|
|
21856
|
+
* `ctx.api` — never tRPC — so `auth: 'admin'` costs it nothing.
|
|
21857
|
+
*/
|
|
21777
21858
|
/** Bytes this provider holds on the given location — drives proportional fan-out. */
|
|
21778
|
-
getEvictableUsage: method(object({ locationId: string() }), EvictableUsageSchema),
|
|
21859
|
+
getEvictableUsage: method(object({ locationId: string() }), EvictableUsageSchema, { auth: "admin" }),
|
|
21779
21860
|
/**
|
|
21780
21861
|
* Free approximately `targetBytes` of this provider's OWN least-valuable
|
|
21781
21862
|
* data on the location (oldest footage, expired clips, …). Returns what it
|
|
@@ -21784,7 +21865,10 @@ var storageEvictableCapability = {
|
|
|
21784
21865
|
evict: method(object({
|
|
21785
21866
|
locationId: string(),
|
|
21786
21867
|
targetBytes: number().int().positive()
|
|
21787
|
-
}), EvictResultSchema, {
|
|
21868
|
+
}), EvictResultSchema, {
|
|
21869
|
+
kind: "mutation",
|
|
21870
|
+
auth: "admin"
|
|
21871
|
+
})
|
|
21788
21872
|
}
|
|
21789
21873
|
};
|
|
21790
21874
|
method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
|
|
@@ -21846,26 +21930,50 @@ var ReadChunkInputSchema = object({
|
|
|
21846
21930
|
length: number()
|
|
21847
21931
|
});
|
|
21848
21932
|
var EndDownloadInputSchema = object({ downloadId: string() });
|
|
21849
|
-
method(_void(), ProviderInfoSchema), method(object({ config: record(string(), unknown()) }), TestLocationResultSchema, { auth: "admin" }), method(object({
|
|
21933
|
+
method(_void(), ProviderInfoSchema, { auth: "admin" }), method(object({ config: record(string(), unknown()) }), TestLocationResultSchema, { auth: "admin" }), method(object({
|
|
21850
21934
|
location: StorageLocationSchema,
|
|
21851
21935
|
relativePath: string()
|
|
21852
|
-
}), string()), method(object({
|
|
21936
|
+
}), string(), { auth: "admin" }), method(object({
|
|
21853
21937
|
location: StorageLocationSchema,
|
|
21854
21938
|
relativePath: string(),
|
|
21855
21939
|
data: _instanceof(Uint8Array)
|
|
21856
|
-
}), _void(), {
|
|
21940
|
+
}), _void(), {
|
|
21941
|
+
kind: "mutation",
|
|
21942
|
+
auth: "admin"
|
|
21943
|
+
}), method(object({
|
|
21857
21944
|
location: StorageLocationSchema,
|
|
21858
21945
|
relativePath: string()
|
|
21859
|
-
}), _instanceof(Uint8Array)), method(object({
|
|
21946
|
+
}), _instanceof(Uint8Array), { auth: "admin" }), method(object({
|
|
21860
21947
|
location: StorageLocationSchema,
|
|
21861
21948
|
relativePath: string()
|
|
21862
|
-
}), boolean()), method(object({
|
|
21949
|
+
}), boolean(), { auth: "admin" }), method(object({
|
|
21863
21950
|
location: StorageLocationSchema,
|
|
21864
21951
|
prefix: string().optional()
|
|
21865
|
-
}), array(string()).readonly()), method(object({
|
|
21952
|
+
}), array(string()).readonly(), { auth: "admin" }), method(object({
|
|
21866
21953
|
location: StorageLocationSchema,
|
|
21867
21954
|
relativePath: string()
|
|
21868
|
-
}), _void(), {
|
|
21955
|
+
}), _void(), {
|
|
21956
|
+
kind: "mutation",
|
|
21957
|
+
auth: "admin"
|
|
21958
|
+
}), method(object({ location: StorageLocationSchema }), number().nullable(), { auth: "admin" }), method(BeginUploadInputSchema, BeginUploadResultSchema, {
|
|
21959
|
+
kind: "mutation",
|
|
21960
|
+
auth: "admin"
|
|
21961
|
+
}), method(WriteChunkInputSchema, _void(), {
|
|
21962
|
+
kind: "mutation",
|
|
21963
|
+
auth: "admin"
|
|
21964
|
+
}), method(FinalizeUploadInputSchema, _void(), {
|
|
21965
|
+
kind: "mutation",
|
|
21966
|
+
auth: "admin"
|
|
21967
|
+
}), method(AbortUploadInputSchema, _void(), {
|
|
21968
|
+
kind: "mutation",
|
|
21969
|
+
auth: "admin"
|
|
21970
|
+
}), method(BeginDownloadInputSchema, BeginDownloadResultSchema, {
|
|
21971
|
+
kind: "mutation",
|
|
21972
|
+
auth: "admin"
|
|
21973
|
+
}), method(ReadChunkInputSchema, _instanceof(Uint8Array), { auth: "admin" }), method(EndDownloadInputSchema, _void(), {
|
|
21974
|
+
kind: "mutation",
|
|
21975
|
+
auth: "admin"
|
|
21976
|
+
});
|
|
21869
21977
|
/** Profile-exported FormBuilder schema. Shape is ConfigUISchema at the UI. */
|
|
21870
21978
|
var ProfileSettingsSchemaBridge = unknown().nullable();
|
|
21871
21979
|
var ProfileSettingsBagSchema = record(string(), unknown());
|
|
@@ -22123,7 +22231,8 @@ method(object({
|
|
|
22123
22231
|
access: "create"
|
|
22124
22232
|
}), method(object({ userId: string().optional() }), object({ optionsJSON: record(string(), unknown()) }), {
|
|
22125
22233
|
kind: "mutation",
|
|
22126
|
-
access: "view"
|
|
22234
|
+
access: "view",
|
|
22235
|
+
auth: "admin"
|
|
22127
22236
|
}), method(object({
|
|
22128
22237
|
/** Required — the user the assertion belongs to (verified). */
|
|
22129
22238
|
userId: string(),
|
|
@@ -22131,10 +22240,12 @@ method(object({
|
|
|
22131
22240
|
response: record(string(), unknown())
|
|
22132
22241
|
}), object({ verified: boolean() }), {
|
|
22133
22242
|
kind: "mutation",
|
|
22134
|
-
access: "view"
|
|
22243
|
+
access: "view",
|
|
22244
|
+
auth: "admin"
|
|
22135
22245
|
}), method(object({}), object({ optionsJSON: record(string(), unknown()) }), {
|
|
22136
22246
|
kind: "mutation",
|
|
22137
|
-
access: "view"
|
|
22247
|
+
access: "view",
|
|
22248
|
+
auth: "admin"
|
|
22138
22249
|
}), method(object({
|
|
22139
22250
|
/** AuthenticationResponseJSON from the browser. */
|
|
22140
22251
|
response: record(string(), unknown()) }), object({
|
|
@@ -22142,7 +22253,8 @@ response: record(string(), unknown()) }), object({
|
|
|
22142
22253
|
userId: string().nullable()
|
|
22143
22254
|
}), {
|
|
22144
22255
|
kind: "mutation",
|
|
22145
|
-
access: "view"
|
|
22256
|
+
access: "view",
|
|
22257
|
+
auth: "admin"
|
|
22146
22258
|
}), method(object({ userId: string() }), array(PasskeySummarySchema), { auth: "admin" }), method(object({
|
|
22147
22259
|
userId: string(),
|
|
22148
22260
|
credentialId: string()
|
|
@@ -22314,7 +22426,19 @@ var VectorStatsResultSchema = object({
|
|
|
22314
22426
|
/** False when the backend ranks approximately. */
|
|
22315
22427
|
exact: boolean()
|
|
22316
22428
|
});
|
|
22317
|
-
method(VectorDeclareIndexInputSchema, _void(), {
|
|
22429
|
+
method(VectorDeclareIndexInputSchema, _void(), {
|
|
22430
|
+
kind: "mutation",
|
|
22431
|
+
auth: "admin"
|
|
22432
|
+
}), method(VectorUpsertInputSchema, VectorUpsertResultSchema, {
|
|
22433
|
+
kind: "mutation",
|
|
22434
|
+
auth: "admin"
|
|
22435
|
+
}), method(VectorQueryInputSchema, VectorQueryResultSchema, { auth: "admin" }), method(VectorGetInputSchema, VectorGetResultSchema, { auth: "admin" }), method(VectorDeleteInputSchema, VectorDeleteResultSchema, {
|
|
22436
|
+
kind: "mutation",
|
|
22437
|
+
auth: "admin"
|
|
22438
|
+
}), method(VectorDeleteByFilterInputSchema, VectorDeleteResultSchema, {
|
|
22439
|
+
kind: "mutation",
|
|
22440
|
+
auth: "admin"
|
|
22441
|
+
}), method(VectorStatsInputSchema, VectorStatsResultSchema, { auth: "admin" });
|
|
22318
22442
|
var ClipSchema = object({
|
|
22319
22443
|
/** Opaque, provider-namespaced id. The default provider encodes the time
|
|
22320
22444
|
* window so `getClipPlayback` is self-contained (no event re-query). */
|
|
@@ -24184,7 +24308,27 @@ var MediaFileLiteSchema$1 = object({
|
|
|
24184
24308
|
sizeBytes: number(),
|
|
24185
24309
|
timestamp: number()
|
|
24186
24310
|
});
|
|
24187
|
-
method(
|
|
24311
|
+
method(object({
|
|
24312
|
+
/**
|
|
24313
|
+
* Inline {@link IdentitySchema.coverBase64} on every row.
|
|
24314
|
+
*
|
|
24315
|
+
* Default `false`, the same inversion `listRecentFaces` and
|
|
24316
|
+
* `listPlates` took on 2026-08-25 (see `include-crops-default.ts` for
|
|
24317
|
+
* why the burden belongs on the caller that WANTS the bytes). Measured
|
|
24318
|
+
* on the live hub the same day: four identities cost 40,979 B with the
|
|
24319
|
+
* covers inline, ~10 KB of base64 per row, on a query this UI mounts
|
|
24320
|
+
* four times and the viewer holds at `staleTime: 30_000`.
|
|
24321
|
+
*
|
|
24322
|
+
* Nothing loses its avatar: `coverMediaKey` is already on every row and
|
|
24323
|
+
* the `event-media` plane serves that key `immutable` with an ETag.
|
|
24324
|
+
*
|
|
24325
|
+
* **This is an INPUT field, so it does not reach the addon until the
|
|
24326
|
+
* next train** — the hub router validates cap inputs against its own
|
|
24327
|
+
* compiled Zod and strips a key it does not know. Until then the
|
|
24328
|
+
* provider sees `undefined`, which resolves to `false`: the cheap shape
|
|
24329
|
+
* is what ships, and the opt-in becomes reachable when the train lands.
|
|
24330
|
+
*/
|
|
24331
|
+
includeCrops: boolean().optional() }).optional(), array(IdentitySchema).readonly()), method(object({ name: string().min(1) }), IdentitySchema, {
|
|
24188
24332
|
kind: "mutation",
|
|
24189
24333
|
auth: "admin"
|
|
24190
24334
|
}), method(object({
|
|
@@ -26395,7 +26539,13 @@ method(object({
|
|
|
26395
26539
|
}), method(object({ plateId: string() }), _void(), {
|
|
26396
26540
|
kind: "mutation",
|
|
26397
26541
|
auth: "admin"
|
|
26398
|
-
}), method(
|
|
26542
|
+
}), method(object({
|
|
26543
|
+
/** Inline {@link VehicleSchema.coverBase64} on every row. Default
|
|
26544
|
+
* `false` — the vehicle twin of `faceGallery.listIdentities`'s
|
|
26545
|
+
* option; `coverMediaKey` + the `event-media` plane carry the picture.
|
|
26546
|
+
* INPUT field: stripped by the hub router until the train ships, which
|
|
26547
|
+
* resolves to `false` and is exactly the intended default. */
|
|
26548
|
+
includeCrops: boolean().optional() }).optional(), array(VehicleSchema).readonly()), method(object({ name: string().min(1) }), VehicleSchema, {
|
|
26399
26549
|
kind: "mutation",
|
|
26400
26550
|
auth: "admin"
|
|
26401
26551
|
}), method(object({
|
|
@@ -31944,6 +32094,12 @@ Object.freeze({
|
|
|
31944
32094
|
addonId: null,
|
|
31945
32095
|
access: "create"
|
|
31946
32096
|
},
|
|
32097
|
+
"pipelineAnalytics.cancelRelocateMedia": {
|
|
32098
|
+
capName: "pipeline-analytics",
|
|
32099
|
+
capScope: "device",
|
|
32100
|
+
addonId: null,
|
|
32101
|
+
access: "create"
|
|
32102
|
+
},
|
|
31947
32103
|
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
31948
32104
|
capName: "pipeline-analytics",
|
|
31949
32105
|
capScope: "device",
|
|
@@ -32118,6 +32274,12 @@ Object.freeze({
|
|
|
32118
32274
|
addonId: null,
|
|
32119
32275
|
access: "view"
|
|
32120
32276
|
},
|
|
32277
|
+
"pipelineAnalytics.listRelocateMediaJobs": {
|
|
32278
|
+
capName: "pipeline-analytics",
|
|
32279
|
+
capScope: "device",
|
|
32280
|
+
addonId: null,
|
|
32281
|
+
access: "view"
|
|
32282
|
+
},
|
|
32121
32283
|
"pipelineAnalytics.listRetrainAnnotations": {
|
|
32122
32284
|
capName: "pipeline-analytics",
|
|
32123
32285
|
capScope: "device",
|
|
@@ -32196,6 +32358,12 @@ Object.freeze({
|
|
|
32196
32358
|
addonId: null,
|
|
32197
32359
|
access: "create"
|
|
32198
32360
|
},
|
|
32361
|
+
"pipelineAnalytics.relocateMedia": {
|
|
32362
|
+
capName: "pipeline-analytics",
|
|
32363
|
+
capScope: "device",
|
|
32364
|
+
addonId: null,
|
|
32365
|
+
access: "create"
|
|
32366
|
+
},
|
|
32199
32367
|
"pipelineAnalytics.restageRetrainTrack": {
|
|
32200
32368
|
capName: "pipeline-analytics",
|
|
32201
32369
|
capScope: "device",
|