camstack 1.1.22 → 1.1.23
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.
|
@@ -14522,7 +14522,7 @@ function date4(params) {
|
|
|
14522
14522
|
// ../../node_modules/zod/v4/classic/external.js
|
|
14523
14523
|
config(en_default());
|
|
14524
14524
|
|
|
14525
|
-
// ../types/dist/sleep-
|
|
14525
|
+
// ../types/dist/sleep-DJaTV2D7.mjs
|
|
14526
14526
|
var WELL_KNOWN_TABS = [
|
|
14527
14527
|
{
|
|
14528
14528
|
id: "overview",
|
|
@@ -15135,13 +15135,25 @@ function method(input, output, options) {
|
|
|
15135
15135
|
function event(data) {
|
|
15136
15136
|
return { data };
|
|
15137
15137
|
}
|
|
15138
|
-
var StaticDirOutputSchema = external_exports.object({ staticDir: external_exports.string() });
|
|
15139
|
-
var VersionOutputSchema = external_exports.object({ version: external_exports.string() });
|
|
15138
|
+
var StaticDirOutputSchema$1 = external_exports.object({ staticDir: external_exports.string() });
|
|
15139
|
+
var VersionOutputSchema$1 = external_exports.object({ version: external_exports.string() });
|
|
15140
15140
|
var adminUiCapability = {
|
|
15141
15141
|
name: "admin-ui",
|
|
15142
15142
|
scope: "system",
|
|
15143
15143
|
mode: "singleton",
|
|
15144
15144
|
internal: true,
|
|
15145
|
+
methods: {
|
|
15146
|
+
getStaticDir: method(external_exports.void(), StaticDirOutputSchema$1),
|
|
15147
|
+
getVersion: method(external_exports.void(), VersionOutputSchema$1)
|
|
15148
|
+
}
|
|
15149
|
+
};
|
|
15150
|
+
var StaticDirOutputSchema = external_exports.object({ staticDir: external_exports.string() });
|
|
15151
|
+
var VersionOutputSchema = external_exports.object({ version: external_exports.string() });
|
|
15152
|
+
var viewerUiCapability = {
|
|
15153
|
+
name: "viewer-ui",
|
|
15154
|
+
scope: "system",
|
|
15155
|
+
mode: "singleton",
|
|
15156
|
+
internal: true,
|
|
15145
15157
|
methods: {
|
|
15146
15158
|
getStaticDir: method(external_exports.void(), StaticDirOutputSchema),
|
|
15147
15159
|
getVersion: method(external_exports.void(), VersionOutputSchema)
|
|
@@ -15322,6 +15334,28 @@ var ModelFormatsSchema = external_exports.object({
|
|
|
15322
15334
|
tflite: ModelFormatEntrySchema.optional(),
|
|
15323
15335
|
pt: ModelFormatEntrySchema.optional()
|
|
15324
15336
|
});
|
|
15337
|
+
var ModelVariantGroupSchema = external_exports.object({
|
|
15338
|
+
/** Top-level family, e.g. `yolo26` (later `d-fine`, `rf-detr`). */
|
|
15339
|
+
family: external_exports.string(),
|
|
15340
|
+
/** Size within the family, e.g. `n` | `s` | `m` | `l`. */
|
|
15341
|
+
tier: external_exports.string(),
|
|
15342
|
+
/** Quantization axis. Omit ⇒ the fp32 base build. */
|
|
15343
|
+
precision: external_exports.enum(["fp32", "int8"]).optional(),
|
|
15344
|
+
/**
|
|
15345
|
+
* Speed-optimization axis. Omit ⇒ the standard build. `fast` marks a
|
|
15346
|
+
* latency-optimized export (e.g. ReLU-activation variant) — the slot the
|
|
15347
|
+
* future performance variants plug into.
|
|
15348
|
+
*/
|
|
15349
|
+
optimization: external_exports.enum(["standard", "fast"]).optional(),
|
|
15350
|
+
/**
|
|
15351
|
+
* Input-resolution axis (square input side, px). Omit ⇒ the family's native
|
|
15352
|
+
* resolution (640 for yolo26). Reduced-input builds (320 / 256) are a big,
|
|
15353
|
+
* cheap latency lever — especially on Apple ANE and the Intel N100 — at a
|
|
15354
|
+
* small-object accuracy cost. Mirrors the model's `inputSize` but lifted onto
|
|
15355
|
+
* the group so the selector can offer it as a variant axis.
|
|
15356
|
+
*/
|
|
15357
|
+
resolution: external_exports.number().int().positive().optional()
|
|
15358
|
+
});
|
|
15325
15359
|
var ModelCatalogEntrySchema = external_exports.object({
|
|
15326
15360
|
id: external_exports.string(),
|
|
15327
15361
|
name: external_exports.string(),
|
|
@@ -15351,7 +15385,43 @@ var ModelCatalogEntrySchema = external_exports.object({
|
|
|
15351
15385
|
* Auxiliary files required at runtime (labels JSON, charset dict, etc.).
|
|
15352
15386
|
* Downloaded into the same modelsDir alongside the model file.
|
|
15353
15387
|
*/
|
|
15354
|
-
extraFiles: external_exports.array(ModelExtraFileSchema).readonly().optional()
|
|
15388
|
+
extraFiles: external_exports.array(ModelExtraFileSchema).readonly().optional(),
|
|
15389
|
+
/**
|
|
15390
|
+
* LEGACY entry — retained in the catalog so a persisted operator selection
|
|
15391
|
+
* still RESOLVES (and can be re-activated), but hidden from the selectable
|
|
15392
|
+
* model list and excluded from the auto format-default pick. Set on the
|
|
15393
|
+
* superseded / consolidated models (older lineages, redundant fp16 IRs) so
|
|
15394
|
+
* the active lineup stays the coherent curated ladder without deleting a
|
|
15395
|
+
* model anyone may still be pinned to. `resolveModelForFormat` keeps honoring
|
|
15396
|
+
* an explicit legacy id that has a build for the node's format.
|
|
15397
|
+
*/
|
|
15398
|
+
legacy: external_exports.boolean().optional(),
|
|
15399
|
+
/**
|
|
15400
|
+
* Measured quality/latency metadata — populated from the benchmark addon on
|
|
15401
|
+
* the real node classes. Absent = not yet measured (most entries today; the
|
|
15402
|
+
* catalog historically carried only `sizeMB`, a poor cross-architecture
|
|
15403
|
+
* speed proxy). `p95LatencyMs` is keyed by node class (e.g. `n100`, `mac`).
|
|
15404
|
+
*/
|
|
15405
|
+
metrics: external_exports.object({
|
|
15406
|
+
map50: external_exports.number().optional(),
|
|
15407
|
+
p95LatencyMs: external_exports.record(external_exports.string(), external_exports.number()).optional()
|
|
15408
|
+
}).optional(),
|
|
15409
|
+
/**
|
|
15410
|
+
* SPDX-ish license id of the model weights (e.g. `AGPL-3.0` for Ultralytics
|
|
15411
|
+
* YOLO26, `GPL-3.0` for YOLOv9, `Apache-2.0` for D-FINE/RF-DETR). Matters for
|
|
15412
|
+
* the retraining addon and any future commercial distribution.
|
|
15413
|
+
*/
|
|
15414
|
+
license: external_exports.string().optional(),
|
|
15415
|
+
/**
|
|
15416
|
+
* Variant-selector grouping. The UI groups models by `family` + `tier` and
|
|
15417
|
+
* offers `precision` / `optimization` as variant axes WITHIN a tier — so all
|
|
15418
|
+
* of a family's sizes and quantizations collapse into one grouped picker
|
|
15419
|
+
* instead of a flat list of `yolo26s`, `yolo26s-int8`, … Absent ⇒ ungrouped
|
|
15420
|
+
* (legacy / custom models) — never shown in the grouped selector. The flat
|
|
15421
|
+
* `id` stays the source of truth for resolution/download/persistence; grouping
|
|
15422
|
+
* is a presentation overlay resolved back to an `id`.
|
|
15423
|
+
*/
|
|
15424
|
+
group: ModelVariantGroupSchema.optional()
|
|
15355
15425
|
});
|
|
15356
15426
|
var ConvertTargetSchema = external_exports.discriminatedUnion("format", [external_exports.object({
|
|
15357
15427
|
format: external_exports.literal("openvino"),
|
|
@@ -17009,33 +17079,6 @@ var StreamFormatSchema = external_exports.enum([
|
|
|
17009
17079
|
"mjpeg",
|
|
17010
17080
|
"rtsp"
|
|
17011
17081
|
]);
|
|
17012
|
-
var StreamInfoSchema = external_exports.object({
|
|
17013
|
-
streamId: external_exports.string(),
|
|
17014
|
-
format: StreamFormatSchema,
|
|
17015
|
-
url: external_exports.string().nullable(),
|
|
17016
|
-
active: external_exports.boolean()
|
|
17017
|
-
});
|
|
17018
|
-
var streamingEngineCapability = {
|
|
17019
|
-
name: "streaming-engine",
|
|
17020
|
-
scope: "system",
|
|
17021
|
-
mode: "singleton",
|
|
17022
|
-
internal: true,
|
|
17023
|
-
methods: {
|
|
17024
|
-
registerStream: method(external_exports.object({
|
|
17025
|
-
streamId: external_exports.string(),
|
|
17026
|
-
sourceUrl: external_exports.string(),
|
|
17027
|
-
codec: external_exports.string().optional()
|
|
17028
|
-
}), external_exports.void(), { kind: "mutation" }),
|
|
17029
|
-
unregisterStream: method(external_exports.object({ streamId: external_exports.string() }), external_exports.void(), { kind: "mutation" }),
|
|
17030
|
-
getStreamUrl: method(external_exports.object({
|
|
17031
|
-
streamId: external_exports.string(),
|
|
17032
|
-
format: StreamFormatSchema
|
|
17033
|
-
}), external_exports.string().nullable()),
|
|
17034
|
-
listStreams: method(external_exports.void(), external_exports.array(StreamInfoSchema))
|
|
17035
|
-
},
|
|
17036
|
-
/** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
|
|
17037
|
-
mount: { kind: "skip" }
|
|
17038
|
-
};
|
|
17039
17082
|
var RtspRestreamEntrySchema = external_exports.object({
|
|
17040
17083
|
brokerId: external_exports.string(),
|
|
17041
17084
|
url: external_exports.string(),
|
|
@@ -17912,37 +17955,7 @@ var consumablesCapability = {
|
|
|
17912
17955
|
scope: "device",
|
|
17913
17956
|
deviceNative: true,
|
|
17914
17957
|
mode: "singleton",
|
|
17915
|
-
deviceTypes:
|
|
17916
|
-
DeviceType.Camera,
|
|
17917
|
-
DeviceType.Hub,
|
|
17918
|
-
DeviceType.Light,
|
|
17919
|
-
DeviceType.Siren,
|
|
17920
|
-
DeviceType.Switch,
|
|
17921
|
-
DeviceType.Sensor,
|
|
17922
|
-
DeviceType.Thermostat,
|
|
17923
|
-
DeviceType.Button,
|
|
17924
|
-
DeviceType.EventEmitter,
|
|
17925
|
-
DeviceType.Update,
|
|
17926
|
-
DeviceType.Generic,
|
|
17927
|
-
DeviceType.Notifier,
|
|
17928
|
-
DeviceType.Script,
|
|
17929
|
-
DeviceType.Automation,
|
|
17930
|
-
DeviceType.Lock,
|
|
17931
|
-
DeviceType.Cover,
|
|
17932
|
-
DeviceType.Valve,
|
|
17933
|
-
DeviceType.Humidifier,
|
|
17934
|
-
DeviceType.WaterHeater,
|
|
17935
|
-
DeviceType.Fan,
|
|
17936
|
-
DeviceType.MediaPlayer,
|
|
17937
|
-
DeviceType.AlarmPanel,
|
|
17938
|
-
DeviceType.Control,
|
|
17939
|
-
DeviceType.Presence,
|
|
17940
|
-
DeviceType.Weather,
|
|
17941
|
-
DeviceType.Vacuum,
|
|
17942
|
-
DeviceType.LawnMower,
|
|
17943
|
-
DeviceType.Container,
|
|
17944
|
-
DeviceType.Image
|
|
17945
|
-
],
|
|
17958
|
+
deviceTypes: Object.values(DeviceType),
|
|
17946
17959
|
deviceConfig: { ui: {
|
|
17947
17960
|
kind: "widget",
|
|
17948
17961
|
widgetId: "host/consumables-panel",
|
|
@@ -19179,7 +19192,6 @@ var PipelineDefaultStepSchema = external_exports.lazy(() => external_exports.obj
|
|
|
19179
19192
|
enabled: external_exports.boolean(),
|
|
19180
19193
|
modelId: external_exports.string(),
|
|
19181
19194
|
children: external_exports.array(PipelineDefaultStepSchema).readonly(),
|
|
19182
|
-
engine: PipelineEngineChoiceSchema.optional(),
|
|
19183
19195
|
group: external_exports.string().optional(),
|
|
19184
19196
|
settings: external_exports.record(external_exports.string(), external_exports.unknown()).optional()
|
|
19185
19197
|
}));
|
|
@@ -19204,7 +19216,9 @@ var PipelineModelOptionSchema = external_exports.object({
|
|
|
19204
19216
|
formats: external_exports.record(external_exports.string(), external_exports.object({
|
|
19205
19217
|
downloaded: external_exports.boolean(),
|
|
19206
19218
|
sizeMB: external_exports.number()
|
|
19207
|
-
}))
|
|
19219
|
+
})),
|
|
19220
|
+
group: ModelVariantGroupSchema.optional(),
|
|
19221
|
+
legacy: external_exports.boolean().optional()
|
|
19208
19222
|
});
|
|
19209
19223
|
var ConfigFieldBridge = external_exports.custom();
|
|
19210
19224
|
var PipelineAddonSchemaSchema = external_exports.object({
|
|
@@ -19234,11 +19248,6 @@ var PipelineSchemaSchema = external_exports.object({
|
|
|
19234
19248
|
selectedEngine: PipelineEngineChoiceSchema,
|
|
19235
19249
|
slots: external_exports.array(PipelineSlotSchemaSchema).readonly()
|
|
19236
19250
|
});
|
|
19237
|
-
var DetectorOutputSchema = external_exports.object({
|
|
19238
|
-
detections: external_exports.array(SpatialDetectionSchema).readonly(),
|
|
19239
|
-
inferenceMs: external_exports.number(),
|
|
19240
|
-
modelId: external_exports.string()
|
|
19241
|
-
});
|
|
19242
19251
|
var EngineProvisioningSchema = external_exports.object({
|
|
19243
19252
|
runtimeId: external_exports.enum([
|
|
19244
19253
|
"onnx",
|
|
@@ -19255,15 +19264,42 @@ var EngineProvisioningSchema = external_exports.object({
|
|
|
19255
19264
|
]),
|
|
19256
19265
|
progress: external_exports.number().optional(),
|
|
19257
19266
|
error: external_exports.string().optional(),
|
|
19258
|
-
nextRetryAt: external_exports.number().optional()
|
|
19267
|
+
nextRetryAt: external_exports.number().optional(),
|
|
19268
|
+
/**
|
|
19269
|
+
* Gate A (config-correctness gate at engine change): human-readable
|
|
19270
|
+
* config issues surfaced EAGERLY when the node's engine changes — model
|
|
19271
|
+
* substitutions ("chose X, running Y") and zero-build steps ("no model
|
|
19272
|
+
* has a <format> build"). Additive/optional: informational only, never
|
|
19273
|
+
* enforced here — `assertEngineReady` (readiness) still gates inference.
|
|
19274
|
+
* Absent/empty when the node-default tree resolves cleanly.
|
|
19275
|
+
*/
|
|
19276
|
+
configIssues: external_exports.array(external_exports.string()).optional()
|
|
19259
19277
|
});
|
|
19260
19278
|
var PipelineStepInputSchema = external_exports.lazy(() => external_exports.object({
|
|
19261
19279
|
addonId: external_exports.string(),
|
|
19262
|
-
modelId: external_exports.string(),
|
|
19280
|
+
modelId: external_exports.string().optional(),
|
|
19263
19281
|
enabled: external_exports.boolean().default(true),
|
|
19264
19282
|
children: external_exports.array(PipelineStepInputSchema).optional(),
|
|
19265
19283
|
settings: external_exports.record(external_exports.string(), external_exports.unknown()).optional()
|
|
19266
19284
|
}));
|
|
19285
|
+
var ModelSubstitutionSchema = external_exports.object({
|
|
19286
|
+
addonId: external_exports.string(),
|
|
19287
|
+
chosen: external_exports.string(),
|
|
19288
|
+
running: external_exports.string(),
|
|
19289
|
+
format: external_exports.string()
|
|
19290
|
+
});
|
|
19291
|
+
var PipelineValidationIssueSchema = external_exports.object({
|
|
19292
|
+
addonId: external_exports.string(),
|
|
19293
|
+
kind: external_exports.enum(["unknown-addon", "no-format-build"]),
|
|
19294
|
+
detail: external_exports.string()
|
|
19295
|
+
});
|
|
19296
|
+
var PipelineValidationResultSchema = external_exports.object({
|
|
19297
|
+
ok: external_exports.boolean(),
|
|
19298
|
+
issues: external_exports.array(PipelineValidationIssueSchema).readonly(),
|
|
19299
|
+
substitutions: external_exports.array(ModelSubstitutionSchema).readonly(),
|
|
19300
|
+
/** The node's `currentEngine.format` this validation ran against. */
|
|
19301
|
+
format: external_exports.string()
|
|
19302
|
+
});
|
|
19267
19303
|
var ReferenceImageEntrySchema = external_exports.object({
|
|
19268
19304
|
filename: external_exports.string(),
|
|
19269
19305
|
stepIds: external_exports.array(external_exports.string()).readonly().optional()
|
|
@@ -19354,10 +19390,45 @@ var pipelineExecutorCapability = {
|
|
|
19354
19390
|
kind: "mutation",
|
|
19355
19391
|
auth: "admin"
|
|
19356
19392
|
}),
|
|
19393
|
+
/**
|
|
19394
|
+
* Clear THIS node's executor-side PER-DEVICE settings stores (the
|
|
19395
|
+
* per-camera step overrides the object-detection root reads via
|
|
19396
|
+
* `applyDeviceOverridesToTree`). `nodeId` is the ROUTING key — the
|
|
19397
|
+
* generated cap-router strips it (default `nodeIdMode: 'routing'`) and
|
|
19398
|
+
* dispatches to that node, so the provider method runs ON the target
|
|
19399
|
+
* node and receives no `nodeId`.
|
|
19400
|
+
*
|
|
19401
|
+
* This is the slimmed executor leg of the orchestrator's
|
|
19402
|
+
* `resetNodePipelineDefaults` flow (which owns the real reset: node
|
|
19403
|
+
* addonDefaults pins + per-camera orchestrator overrides). The legacy
|
|
19404
|
+
* `resetToDefault` — which reset a persisted global step-tree seed
|
|
19405
|
+
* nothing in the live per-camera path read — was removed together with
|
|
19406
|
+
* that seed.
|
|
19407
|
+
*/
|
|
19408
|
+
clearDeviceOverrides: method(external_exports.object({ nodeId: external_exports.string() }), external_exports.object({
|
|
19409
|
+
success: external_exports.literal(true),
|
|
19410
|
+
clearedDevices: external_exports.number()
|
|
19411
|
+
}), {
|
|
19412
|
+
kind: "mutation",
|
|
19413
|
+
auth: "admin"
|
|
19414
|
+
}),
|
|
19357
19415
|
getSchema: method(external_exports.void(), PipelineSchemaSchema),
|
|
19358
19416
|
getGlobalSteps: method(external_exports.void(), external_exports.array(PipelineDefaultStepSchema).readonly().nullable()),
|
|
19359
19417
|
getGlobalPipelineConfig: method(external_exports.void(), PipelineConfigBridge),
|
|
19360
19418
|
getOrchestratorConfigSchema: method(external_exports.void(), ConfigUISchemaBridge),
|
|
19419
|
+
/**
|
|
19420
|
+
* Gate B (pre-init config-correctness gate). PURE COMPUTE against this
|
|
19421
|
+
* node's `currentEngine.format` — resolves `steps` the same way the
|
|
19422
|
+
* runtime dispatch path would, and reports what WOULD happen without
|
|
19423
|
+
* touching any node-global state. Called by the orchestrator at attach
|
|
19424
|
+
* time (`attachOn`), node-pinned to the TARGET node, so config problems
|
|
19425
|
+
* surface BEFORE `pipelineRunner.attachCamera` rather than at the first
|
|
19426
|
+
* per-frame resolve. `ok` is false iff `issues` is non-empty (both
|
|
19427
|
+
* `unknown-addon` and `no-format-build` are HARD issues); `substitutions`
|
|
19428
|
+
* is informational (a degraded-but-loadable model swap) and never
|
|
19429
|
+
* affects `ok`. Never throws.
|
|
19430
|
+
*/
|
|
19431
|
+
validatePipeline: method(external_exports.object({ steps: external_exports.array(PipelineStepInputSchema) }), PipelineValidationResultSchema),
|
|
19361
19432
|
listTemplates: method(external_exports.void(), external_exports.array(PipelineTemplateSchema$1).readonly()),
|
|
19362
19433
|
saveTemplate: method(external_exports.object({
|
|
19363
19434
|
name: external_exports.string(),
|
|
@@ -19382,11 +19453,6 @@ var pipelineExecutorCapability = {
|
|
|
19382
19453
|
modelId: external_exports.string(),
|
|
19383
19454
|
format: ModelFormatSchema$1
|
|
19384
19455
|
}), external_exports.object({ success: external_exports.literal(true) }), { kind: "mutation" }),
|
|
19385
|
-
detect: method(external_exports.object({
|
|
19386
|
-
addonId: external_exports.string(),
|
|
19387
|
-
frame: FrameInputSchema,
|
|
19388
|
-
config: external_exports.record(external_exports.string(), external_exports.unknown()).optional()
|
|
19389
|
-
}), DetectorOutputSchema),
|
|
19390
19456
|
/**
|
|
19391
19457
|
* Stateless single-frame execution. Callers (runner, benchmark) pass
|
|
19392
19458
|
* the complete `engine` + `steps` tree; the executor holds no state
|
|
@@ -19647,6 +19713,13 @@ var RunnerFrameSourceSchema = external_exports.discriminatedUnion("kind", [exter
|
|
|
19647
19713
|
kind: external_exports.literal("remote-restream"),
|
|
19648
19714
|
/** The camera's source-owner node (slice 1: always the hub). */
|
|
19649
19715
|
ownerNodeId: external_exports.string(),
|
|
19716
|
+
/**
|
|
19717
|
+
* The owner's LAN-reachable host, resolved by the orchestrator from the
|
|
19718
|
+
* per-node `reachableHost` override (Cluster UI). When present the runner
|
|
19719
|
+
* dials THIS host for the owner's restream, in preference to the
|
|
19720
|
+
* `CAMSTACK_HUB_URL`-derived default. Absent → auto-detect fallback.
|
|
19721
|
+
*/
|
|
19722
|
+
ownerReachableHost: external_exports.string().optional(),
|
|
19650
19723
|
/** Operator override for the owner host the runner dials. */
|
|
19651
19724
|
hubHostnameOverride: external_exports.string().optional()
|
|
19652
19725
|
})]).describe("Per-camera frame-source mode for the runner (P2c)");
|
|
@@ -19699,14 +19772,11 @@ var RunnerCameraConfigSchema = external_exports.object({
|
|
|
19699
19772
|
*/
|
|
19700
19773
|
motionSources: MotionSourcesSchema.default(["analyzer"]),
|
|
19701
19774
|
pipelineEnabled: external_exports.boolean().default(true),
|
|
19702
|
-
/** Engine choice for video steps (runtime+backend+format). */
|
|
19703
|
-
engine: PipelineEngineChoiceSchema.optional(),
|
|
19704
19775
|
/** Ordered tree of video steps. Absent → runner skips video detection. */
|
|
19705
19776
|
steps: external_exports.array(PipelineStepInputSchema).readonly().optional(),
|
|
19706
19777
|
/** Audio classification branch. `enabled:false` disables, null skips. */
|
|
19707
19778
|
audio: external_exports.object({
|
|
19708
|
-
|
|
19709
|
-
modelId: external_exports.string(),
|
|
19779
|
+
modelId: external_exports.string().optional(),
|
|
19710
19780
|
enabled: external_exports.boolean()
|
|
19711
19781
|
}).nullable().optional(),
|
|
19712
19782
|
/**
|
|
@@ -21849,7 +21919,9 @@ var AddonPageDeclarationSchema$1 = external_exports.object({
|
|
|
21849
21919
|
icon: external_exports.string(),
|
|
21850
21920
|
path: external_exports.string(),
|
|
21851
21921
|
remoteName: external_exports.string(),
|
|
21852
|
-
bundle: external_exports.string()
|
|
21922
|
+
bundle: external_exports.string(),
|
|
21923
|
+
section: external_exports.string().optional(),
|
|
21924
|
+
sectionLabel: external_exports.string().optional()
|
|
21853
21925
|
});
|
|
21854
21926
|
var AddonPageInfoSchema = external_exports.object({
|
|
21855
21927
|
addonId: external_exports.string(),
|
|
@@ -21882,7 +21954,18 @@ var AddonPageDeclarationSchema = external_exports.object({
|
|
|
21882
21954
|
* the static-file route can compute an mtime-based cache-buster URL
|
|
21883
21955
|
* without a separate filesystem stat.
|
|
21884
21956
|
*/
|
|
21885
|
-
bundle: external_exports.string()
|
|
21957
|
+
bundle: external_exports.string(),
|
|
21958
|
+
/**
|
|
21959
|
+
* Sidebar section this page docks into. Well-known ids: `'detection'`,
|
|
21960
|
+
* `'cluster'`, `'administration'` — the page renders inside that group.
|
|
21961
|
+
* Any OTHER string creates (or joins) a custom section rendered after
|
|
21962
|
+
* the built-in groups; its label comes from `sectionLabel` (first
|
|
21963
|
+
* declaration wins), falling back to the id. Absent → the legacy
|
|
21964
|
+
* "Addon Pages" group.
|
|
21965
|
+
*/
|
|
21966
|
+
section: external_exports.string().optional(),
|
|
21967
|
+
/** Display label for a CUSTOM `section` id (ignored for well-known ids). */
|
|
21968
|
+
sectionLabel: external_exports.string().optional()
|
|
21886
21969
|
});
|
|
21887
21970
|
var addonPagesSourceCapability = {
|
|
21888
21971
|
name: "addon-pages-source",
|
|
@@ -22067,6 +22150,17 @@ var WidgetMetadataSchema = external_exports.object({
|
|
|
22067
22150
|
deviceContext: external_exports.boolean().default(false),
|
|
22068
22151
|
integrationContext: external_exports.boolean().default(false)
|
|
22069
22152
|
}),
|
|
22153
|
+
/**
|
|
22154
|
+
* Loadable BEFORE authentication. The normal widget registry listing
|
|
22155
|
+
* (`addon-widgets.listWidgets`) is auth-gated, so a pre-auth surface
|
|
22156
|
+
* (the login page) cannot discover a widget through it. A widget that
|
|
22157
|
+
* declares `preAuth: true` marks itself as safe to mount on a pre-auth
|
|
22158
|
+
* screen — it is surfaced through the PUBLIC `auth.listLoginMethods`
|
|
22159
|
+
* login-method contribution channel (see `login-method.cap.ts`) rather
|
|
22160
|
+
* than the authenticated registry, and its bundle is served by the
|
|
22161
|
+
* public `/api/addon-widgets/:addonId/*` static route. Defaults false.
|
|
22162
|
+
*/
|
|
22163
|
+
preAuth: external_exports.boolean().optional().default(false),
|
|
22070
22164
|
/** Dashboard placement HINTS (operator can override per instance). */
|
|
22071
22165
|
defaultSize: WidgetSizeEnum.default("md"),
|
|
22072
22166
|
allowedSizes: external_exports.array(WidgetSizeEnum).readonly().default([
|
|
@@ -22454,6 +22548,41 @@ var authProviderCapability = {
|
|
|
22454
22548
|
/** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
|
|
22455
22549
|
mount: { kind: "skip" }
|
|
22456
22550
|
};
|
|
22551
|
+
var LoginStageEnum = external_exports.enum(["primary", "second-factor"]);
|
|
22552
|
+
var RedirectLoginMethodSchema = external_exports.object({
|
|
22553
|
+
kind: external_exports.literal("redirect"),
|
|
22554
|
+
/** Stable id within the login-method set (e.g. `auth-oidc/google`). */
|
|
22555
|
+
id: external_exports.string(),
|
|
22556
|
+
/** Operator-facing button label. */
|
|
22557
|
+
label: external_exports.string(),
|
|
22558
|
+
/** lucide-react icon name. */
|
|
22559
|
+
icon: external_exports.string().optional(),
|
|
22560
|
+
/** Addon-owned HTTP route the button navigates to (GET). */
|
|
22561
|
+
startUrl: external_exports.string(),
|
|
22562
|
+
stage: LoginStageEnum
|
|
22563
|
+
});
|
|
22564
|
+
var WidgetLoginMethodSchema = external_exports.object({
|
|
22565
|
+
kind: external_exports.literal("widget"),
|
|
22566
|
+
/** Stable id within the login-method set (e.g. `auth-webauthn/passkey-login`). */
|
|
22567
|
+
id: external_exports.string(),
|
|
22568
|
+
/** Owning addon id — drives the public bundle URL + the MF namespace. */
|
|
22569
|
+
addonId: external_exports.string(),
|
|
22570
|
+
/** Bundle filename inside the addon's dist dir (`remoteEntry.js`). */
|
|
22571
|
+
bundle: external_exports.string(),
|
|
22572
|
+
/** MF remote descriptor — `{ remoteName, exposedModule, componentKey }`. */
|
|
22573
|
+
remote: WidgetRemoteSchema,
|
|
22574
|
+
stage: LoginStageEnum
|
|
22575
|
+
});
|
|
22576
|
+
var LoginMethodContributionSchema = external_exports.discriminatedUnion("kind", [RedirectLoginMethodSchema, WidgetLoginMethodSchema]);
|
|
22577
|
+
var loginMethodCapability = {
|
|
22578
|
+
name: "login-method",
|
|
22579
|
+
scope: "system",
|
|
22580
|
+
mode: "collection",
|
|
22581
|
+
internal: true,
|
|
22582
|
+
methods: { getLoginMethods: method(external_exports.void(), external_exports.array(LoginMethodContributionSchema).readonly()) },
|
|
22583
|
+
/** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
|
|
22584
|
+
mount: { kind: "skip" }
|
|
22585
|
+
};
|
|
22457
22586
|
var BackupDestinationInfoSchema = external_exports.object({
|
|
22458
22587
|
/**
|
|
22459
22588
|
* Sub-id within this addon. Convention `default` for single-
|
|
@@ -25091,11 +25220,11 @@ var pipelineAnalyticsCapability = {
|
|
|
25091
25220
|
}
|
|
25092
25221
|
};
|
|
25093
25222
|
var CameraPipelineConfigSchema = external_exports.object({
|
|
25094
|
-
engine: PipelineEngineChoiceSchema,
|
|
25223
|
+
engine: PipelineEngineChoiceSchema.optional(),
|
|
25095
25224
|
steps: external_exports.array(PipelineStepInputSchema).readonly(),
|
|
25096
25225
|
audio: external_exports.object({
|
|
25097
|
-
engine: PipelineEngineChoiceSchema,
|
|
25098
|
-
modelId: external_exports.string(),
|
|
25226
|
+
engine: PipelineEngineChoiceSchema.optional(),
|
|
25227
|
+
modelId: external_exports.string().optional(),
|
|
25099
25228
|
enabled: external_exports.boolean(),
|
|
25100
25229
|
settings: external_exports.record(external_exports.string(), external_exports.unknown()).readonly().optional()
|
|
25101
25230
|
}).nullable().optional()
|
|
@@ -25110,7 +25239,7 @@ var PipelineTemplateSchema = external_exports.object({
|
|
|
25110
25239
|
});
|
|
25111
25240
|
var AgentAddonConfigSchema = external_exports.object({
|
|
25112
25241
|
enabled: external_exports.boolean(),
|
|
25113
|
-
modelId: external_exports.string(),
|
|
25242
|
+
modelId: external_exports.string().optional(),
|
|
25114
25243
|
settings: external_exports.record(external_exports.string(), external_exports.unknown()).readonly()
|
|
25115
25244
|
});
|
|
25116
25245
|
var AgentPipelineSettingsSchema = external_exports.object({
|
|
@@ -25120,12 +25249,25 @@ var AgentPipelineSettingsSchema = external_exports.object({
|
|
|
25120
25249
|
detectWeight: external_exports.number().positive().optional(),
|
|
25121
25250
|
/** Node is eligible to run the detection pipeline (decode + inference). */
|
|
25122
25251
|
detect: external_exports.boolean().optional(),
|
|
25123
|
-
/**
|
|
25252
|
+
/**
|
|
25253
|
+
* DEPRECATED AND IGNORED. Decode is always co-located with its frame
|
|
25254
|
+
* consumer, so decode eligibility IS detect eligibility. Kept optional in
|
|
25255
|
+
* the schema ONLY so persisted stores written before the removal still
|
|
25256
|
+
* parse — no code reads it and no write path emits it.
|
|
25257
|
+
*/
|
|
25124
25258
|
decode: external_exports.boolean().optional(),
|
|
25125
25259
|
/** Node is eligible to run audio-analyzer sessions. */
|
|
25126
25260
|
audio: external_exports.boolean().optional(),
|
|
25127
25261
|
/** Node is eligible to be the ingest / source-owner (serve the restream). */
|
|
25128
|
-
ingest: external_exports.boolean().optional()
|
|
25262
|
+
ingest: external_exports.boolean().optional(),
|
|
25263
|
+
/**
|
|
25264
|
+
* Operator override for the LAN host a cross-node decoder dials to reach
|
|
25265
|
+
* THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
|
|
25266
|
+
* falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
|
|
25267
|
+
* it already uses to reach the hub). Set this only when the auto-detected
|
|
25268
|
+
* address is wrong (multi-homed host, NAT, custom interface).
|
|
25269
|
+
*/
|
|
25270
|
+
reachableHost: external_exports.string().optional()
|
|
25129
25271
|
});
|
|
25130
25272
|
var CameraPipelineForAgentSchema = external_exports.object({
|
|
25131
25273
|
steps: external_exports.array(PipelineStepInputSchema).readonly(),
|
|
@@ -25162,20 +25304,6 @@ var PipelineAssignmentSchema = external_exports.object({
|
|
|
25162
25304
|
/** Unix timestamp (ms) when the assignment was last updated. */
|
|
25163
25305
|
assignedAt: external_exports.number()
|
|
25164
25306
|
});
|
|
25165
|
-
var DecoderAssignmentSchema = external_exports.object({
|
|
25166
|
-
deviceId: external_exports.number(),
|
|
25167
|
-
/** Moleculer node id of the decoder provider currently responsible for this camera. */
|
|
25168
|
-
decoderNodeId: external_exports.string(),
|
|
25169
|
-
/** True when the assignment was set manually via `assignDecoder`, false when chosen by the balancer. */
|
|
25170
|
-
pinned: external_exports.boolean(),
|
|
25171
|
-
/** Why this assignment was made — useful for debugging the decoder balancer. */
|
|
25172
|
-
reason: external_exports.enum([
|
|
25173
|
-
"manual",
|
|
25174
|
-
"co-located",
|
|
25175
|
-
"capacity",
|
|
25176
|
-
"hardware-affinity"
|
|
25177
|
-
])
|
|
25178
|
-
});
|
|
25179
25307
|
var AgentLoadSummarySchema = external_exports.object({
|
|
25180
25308
|
nodeId: external_exports.string(),
|
|
25181
25309
|
online: external_exports.boolean(),
|
|
@@ -25198,6 +25326,11 @@ var GlobalMetricsSchema = external_exports.object({
|
|
|
25198
25326
|
queueDepth: external_exports.number()
|
|
25199
25327
|
});
|
|
25200
25328
|
var CapabilityBindingsSchema = external_exports.record(external_exports.string(), external_exports.string());
|
|
25329
|
+
var IngestOwnerSchema = external_exports.object({
|
|
25330
|
+
ownerNodeId: external_exports.string(),
|
|
25331
|
+
reachableHost: external_exports.string().optional(),
|
|
25332
|
+
configIssue: external_exports.string().optional()
|
|
25333
|
+
});
|
|
25201
25334
|
var CameraSourceStreamSchema = external_exports.object({
|
|
25202
25335
|
camStreamId: external_exports.string(),
|
|
25203
25336
|
codec: external_exports.string(),
|
|
@@ -25211,6 +25344,14 @@ var CameraAssignmentStatusSchema = external_exports.object({
|
|
|
25211
25344
|
detectionNodeId: external_exports.string().nullable(),
|
|
25212
25345
|
decoderNodeId: external_exports.string().nullable(),
|
|
25213
25346
|
audioNodeId: external_exports.string().nullable(),
|
|
25347
|
+
/**
|
|
25348
|
+
* The node that OWNS this camera's physical source pull (dials the RTSP and
|
|
25349
|
+
* hosts the broker/restream) — the cluster ingest owner today
|
|
25350
|
+
* (`clusterRoles.ingestNode`), per-camera once source assignment lands. Lets
|
|
25351
|
+
* the UI show WHERE a camera is sourced without SSH/logs, and is the node the
|
|
25352
|
+
* broker block below was read from (pinned). Nullable only pre-wiring.
|
|
25353
|
+
*/
|
|
25354
|
+
sourceNodeId: external_exports.string().nullable(),
|
|
25214
25355
|
pinned: external_exports.object({
|
|
25215
25356
|
detection: external_exports.boolean(),
|
|
25216
25357
|
decoder: external_exports.boolean(),
|
|
@@ -25384,21 +25525,14 @@ var pipelineOrchestratorCapability = {
|
|
|
25384
25525
|
kind: "mutation",
|
|
25385
25526
|
auth: "admin"
|
|
25386
25527
|
}),
|
|
25387
|
-
/**
|
|
25388
|
-
|
|
25389
|
-
|
|
25390
|
-
|
|
25391
|
-
|
|
25392
|
-
|
|
25393
|
-
|
|
25394
|
-
|
|
25395
|
-
/** Clear a device's decoder pin (revert to auto). */
|
|
25396
|
-
unassignDecoder: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.void(), {
|
|
25397
|
-
kind: "mutation",
|
|
25398
|
-
auth: "admin"
|
|
25399
|
-
}),
|
|
25400
|
-
/** Get every camera's decoder placement. */
|
|
25401
|
-
getDecoderAssignments: method(external_exports.void(), external_exports.array(DecoderAssignmentSchema).readonly()),
|
|
25528
|
+
/**
|
|
25529
|
+
* The cluster's single camera-source owner — resolved UNCONDITIONALLY
|
|
25530
|
+
* from `clusterRoles.ingestNode` (NOT the detection-decode
|
|
25531
|
+
* `remoteSourcingNodes` knob). Consumers (recorder/snapshot/audio) pin
|
|
25532
|
+
* their broker calls to `ownerNodeId` and dial `reachableHost` when
|
|
25533
|
+
* present. Defaults to `{ ownerNodeId: 'hub' }`.
|
|
25534
|
+
*/
|
|
25535
|
+
getIngestOwner: method(external_exports.void(), IngestOwnerSchema),
|
|
25402
25536
|
/** Pin a device's audio analysis to a specific cluster node. */
|
|
25403
25537
|
assignAudio: method(external_exports.object({
|
|
25404
25538
|
deviceId: external_exports.number(),
|
|
@@ -25430,23 +25564,6 @@ var pipelineOrchestratorCapability = {
|
|
|
25430
25564
|
pinned: external_exports.boolean(),
|
|
25431
25565
|
assignedAt: external_exports.number()
|
|
25432
25566
|
}))),
|
|
25433
|
-
/**
|
|
25434
|
-
* Get one camera's decoder placement (computed if not yet pinned).
|
|
25435
|
-
*
|
|
25436
|
-
* ADVISORY today: reports the orchestrator's decoder preference only.
|
|
25437
|
-
* Actual decode placement is broker-owned (local-node pin + frame-plane
|
|
25438
|
-
* co-location guard). Reserved to become the binding source/decoder-owner
|
|
25439
|
-
* control in the stream-LB epic (Phase 2).
|
|
25440
|
-
*
|
|
25441
|
-
* `pipelineNodeId` is the node already chosen to run inference for
|
|
25442
|
-
* this camera. When provided, the balancer prefers co-location with
|
|
25443
|
-
* it; omitted → falls back to the last known assignment in the
|
|
25444
|
-
* `assignments` map and finally to 'hub'.
|
|
25445
|
-
*/
|
|
25446
|
-
getDecoderAssignment: method(external_exports.object({
|
|
25447
|
-
deviceId: external_exports.number(),
|
|
25448
|
-
pipelineNodeId: external_exports.string().optional()
|
|
25449
|
-
}), DecoderAssignmentSchema),
|
|
25450
25567
|
/** Read one agent's settings. Null when not yet seeded. */
|
|
25451
25568
|
getAgentSettings: method(external_exports.object({ agentNodeId: external_exports.string() }), AgentPipelineSettingsSchema.nullable()),
|
|
25452
25569
|
/** Enumerate every agent's settings (hub + remote runners). */
|
|
@@ -25516,20 +25633,65 @@ var pipelineOrchestratorCapability = {
|
|
|
25516
25633
|
* `enabledDecoderNodes`, `enabledAudioNodes`, `remoteSourcingNodes`).
|
|
25517
25634
|
* Each flag is optional in the patch: omit a flag to leave it unchanged,
|
|
25518
25635
|
* pass `null` to reset it to the node default (`hub` → capable, every
|
|
25519
|
-
* other node → not). Detection/
|
|
25520
|
-
*
|
|
25521
|
-
*
|
|
25636
|
+
* other node → not). Detection/audio eligibility is derived from these
|
|
25637
|
+
* flags across the cluster; changing them re-derives the enabled sets
|
|
25638
|
+
* and reconciles dispatch immediately. There is NO separate decode flag:
|
|
25639
|
+
* decode is always co-located with its frame consumer, so decode
|
|
25640
|
+
* eligibility IS detect eligibility.
|
|
25522
25641
|
*/
|
|
25523
25642
|
setAgentCapabilities: method(external_exports.object({
|
|
25524
25643
|
agentNodeId: external_exports.string(),
|
|
25525
25644
|
detect: external_exports.boolean().nullable().optional(),
|
|
25526
|
-
decode: external_exports.boolean().nullable().optional(),
|
|
25527
25645
|
audio: external_exports.boolean().nullable().optional(),
|
|
25528
25646
|
ingest: external_exports.boolean().nullable().optional()
|
|
25529
25647
|
}), external_exports.object({ success: external_exports.literal(true) }), {
|
|
25530
25648
|
kind: "mutation",
|
|
25531
25649
|
auth: "admin"
|
|
25532
25650
|
}),
|
|
25651
|
+
/**
|
|
25652
|
+
* Set (or clear) the operator override for the LAN host a cross-node
|
|
25653
|
+
* decoder dials to reach this node's restream. Pass a non-empty string to
|
|
25654
|
+
* override the auto-detected address (the runner's `CAMSTACK_HUB_URL`
|
|
25655
|
+
* default); pass `null` or an empty string to clear it and revert to
|
|
25656
|
+
* auto-detect. Applied on the next dispatch cycle — takes effect for new
|
|
25657
|
+
* cross-node attaches; existing attaches keep their current host until
|
|
25658
|
+
* re-dispatched.
|
|
25659
|
+
*/
|
|
25660
|
+
setAgentReachableHost: method(external_exports.object({
|
|
25661
|
+
agentNodeId: external_exports.string(),
|
|
25662
|
+
reachableHost: external_exports.string().nullable()
|
|
25663
|
+
}), external_exports.object({ success: external_exports.literal(true) }), {
|
|
25664
|
+
kind: "mutation",
|
|
25665
|
+
auth: "admin"
|
|
25666
|
+
}),
|
|
25667
|
+
/**
|
|
25668
|
+
* Reset one node's pipeline to its hardware-aware defaults — the HONEST
|
|
25669
|
+
* reset (replaces the executor's legacy `resetToDefault`, which cleared a
|
|
25670
|
+
* dead persisted step-tree seed nothing in the live path read):
|
|
25671
|
+
* (a) strips every `modelId` pin from that node's
|
|
25672
|
+
* `agentSettings.addonDefaults` (cells revert to Auto — the node
|
|
25673
|
+
* resolves its own hardware-aware format default at runtime);
|
|
25674
|
+
* (b) clears per-camera step overrides scoped to that node
|
|
25675
|
+
* (`stepOverridesByAgent[node]` + the wholesale
|
|
25676
|
+
* `pipelineByAgent[node]` escape hatch);
|
|
25677
|
+
* (c) clears the executor-side per-device settings stores on that node
|
|
25678
|
+
* (`pipelineExecutor.clearDeviceOverrides`);
|
|
25679
|
+
* (d) hot-reloads every camera assigned to the node.
|
|
25680
|
+
*
|
|
25681
|
+
* Returns the EFFECTIVE post-reset object-detection model for the node
|
|
25682
|
+
* (the executor's pure hardware-aware default) so the UI can report what
|
|
25683
|
+
* will actually run — not a value that never reaches the live path.
|
|
25684
|
+
*/
|
|
25685
|
+
resetNodePipelineDefaults: method(external_exports.object({ agentNodeId: external_exports.string() }), external_exports.object({
|
|
25686
|
+
success: external_exports.literal(true),
|
|
25687
|
+
/** Hardware-aware default detection model now in effect on the node (null when unresolvable). */
|
|
25688
|
+
effectiveModelId: external_exports.string().nullable(),
|
|
25689
|
+
/** Number of cameras whose node-scoped overrides were cleared. */
|
|
25690
|
+
clearedCameraOverrides: external_exports.number()
|
|
25691
|
+
}), {
|
|
25692
|
+
kind: "mutation",
|
|
25693
|
+
auth: "admin"
|
|
25694
|
+
}),
|
|
25533
25695
|
/** Read one camera's settings. Null when never touched (inherits agent defaults fully). */
|
|
25534
25696
|
getCameraSettings: method(external_exports.object({ deviceId: external_exports.number() }), CameraPipelineSettingsSchema.nullable()),
|
|
25535
25697
|
/** Set or clear the 3-state toggle for one (camera, addonId). Pass `enabled: null` to clear and revert to agent default. */
|
|
@@ -25621,33 +25783,107 @@ var pipelineOrchestratorCapability = {
|
|
|
25621
25783
|
})
|
|
25622
25784
|
}
|
|
25623
25785
|
};
|
|
25624
|
-
var
|
|
25625
|
-
|
|
25626
|
-
|
|
25627
|
-
|
|
25628
|
-
|
|
25629
|
-
|
|
25786
|
+
var ServerBootModeSchema = external_exports.enum([
|
|
25787
|
+
"workspace",
|
|
25788
|
+
"baked",
|
|
25789
|
+
"data-root"
|
|
25790
|
+
]);
|
|
25791
|
+
var ServerUpdateStateSchema = external_exports.enum([
|
|
25792
|
+
"idle",
|
|
25793
|
+
"checking",
|
|
25794
|
+
"staging",
|
|
25795
|
+
"pending-restart",
|
|
25796
|
+
"awaiting-confirmation"
|
|
25797
|
+
]);
|
|
25798
|
+
var ServerRollbackInfoSchema = external_exports.object({
|
|
25799
|
+
/** The version that failed (or was manually rolled back). */
|
|
25800
|
+
fromVersion: external_exports.string(),
|
|
25801
|
+
/** The version rolled back to; null = the baked seed. */
|
|
25802
|
+
toVersion: external_exports.string().nullable(),
|
|
25803
|
+
atMs: external_exports.number(),
|
|
25804
|
+
reason: external_exports.string()
|
|
25630
25805
|
});
|
|
25631
|
-
var
|
|
25632
|
-
|
|
25633
|
-
|
|
25634
|
-
|
|
25806
|
+
var ServerPackageStatusSchema = external_exports.object({
|
|
25807
|
+
/** Root package name (`@camstack/server` on the hub). */
|
|
25808
|
+
packageName: external_exports.string(),
|
|
25809
|
+
/** Version of the code the running process ACTUALLY loaded. */
|
|
25810
|
+
runningVersion: external_exports.string().nullable(),
|
|
25811
|
+
/** Node.js runtime version the node's process runs on (`process.versions.node`). */
|
|
25812
|
+
nodeRuntimeVersion: external_exports.string().nullable(),
|
|
25813
|
+
/** Active data-dir root version; null when booted from seed/workspace. */
|
|
25814
|
+
activeVersion: external_exports.string().nullable(),
|
|
25815
|
+
/** N-1 version kept for rollback; null when no previous version exists. */
|
|
25816
|
+
previousVersion: external_exports.string().nullable(),
|
|
25817
|
+
/** Version of the immutable baked seed closure (image fallback). */
|
|
25818
|
+
seedVersion: external_exports.string().nullable(),
|
|
25819
|
+
/** Latest registry version from the most recent check (null = never checked). */
|
|
25820
|
+
latestVersion: external_exports.string().nullable(),
|
|
25821
|
+
updateAvailable: external_exports.boolean(),
|
|
25822
|
+
bootMode: ServerBootModeSchema,
|
|
25823
|
+
updateState: ServerUpdateStateSchema,
|
|
25824
|
+
/** Version staged + awaiting its probation boot, when one is pending. */
|
|
25825
|
+
pendingVersion: external_exports.string().nullable(),
|
|
25826
|
+
/** Set when the last freshly-activated version failed its boot health-check. */
|
|
25827
|
+
rolledBack: ServerRollbackInfoSchema.nullable(),
|
|
25828
|
+
/**
|
|
25829
|
+
* True when `server-root/state.json` EXISTS but is unreadable/corrupt — the
|
|
25830
|
+
* hub is running from the baked seed (or workspace) while installed data-dir
|
|
25831
|
+
* versions are being IGNORED. Surfaced as a warning in the UI.
|
|
25832
|
+
*/
|
|
25833
|
+
stateFileCorrupt: external_exports.boolean(),
|
|
25834
|
+
lastCheckedAtMs: external_exports.number().nullable()
|
|
25835
|
+
});
|
|
25836
|
+
var ServerUpdateCheckResultSchema = external_exports.object({
|
|
25837
|
+
packageName: external_exports.string(),
|
|
25838
|
+
runningVersion: external_exports.string().nullable(),
|
|
25839
|
+
latestVersion: external_exports.string().nullable(),
|
|
25840
|
+
updateAvailable: external_exports.boolean(),
|
|
25841
|
+
checkedAtMs: external_exports.number(),
|
|
25842
|
+
/** Non-null when the registry lookup failed (offline, bad registry, …). */
|
|
25843
|
+
error: external_exports.string().nullable()
|
|
25844
|
+
});
|
|
25845
|
+
var ServerUpdateActionResultSchema = external_exports.object({
|
|
25846
|
+
accepted: external_exports.boolean(),
|
|
25847
|
+
targetVersion: external_exports.string().nullable(),
|
|
25848
|
+
/** True when a graceful restart was scheduled to apply the change. */
|
|
25849
|
+
restarting: external_exports.boolean(),
|
|
25850
|
+
message: external_exports.string()
|
|
25635
25851
|
});
|
|
25636
|
-
var
|
|
25637
|
-
name: "
|
|
25852
|
+
var serverManagementCapability = {
|
|
25853
|
+
name: "server-management",
|
|
25638
25854
|
scope: "system",
|
|
25639
|
-
mode: "
|
|
25640
|
-
internal: true,
|
|
25855
|
+
mode: "singleton",
|
|
25641
25856
|
methods: {
|
|
25642
|
-
|
|
25643
|
-
|
|
25644
|
-
|
|
25645
|
-
|
|
25646
|
-
|
|
25647
|
-
|
|
25857
|
+
getServerPackageStatus: method(external_exports.void(), ServerPackageStatusSchema, { auth: "admin" }),
|
|
25858
|
+
checkServerUpdate: method(external_exports.void(), ServerUpdateCheckResultSchema, {
|
|
25859
|
+
kind: "mutation",
|
|
25860
|
+
auth: "admin"
|
|
25861
|
+
}),
|
|
25862
|
+
applyServerUpdate: method(external_exports.object({
|
|
25863
|
+
/** Explicit target version; omitted = latest from the registry. */
|
|
25864
|
+
version: external_exports.string().optional()
|
|
25865
|
+
}), ServerUpdateActionResultSchema, {
|
|
25866
|
+
kind: "mutation",
|
|
25867
|
+
auth: "admin"
|
|
25868
|
+
}),
|
|
25869
|
+
rollbackServerUpdate: method(external_exports.void(), ServerUpdateActionResultSchema, {
|
|
25870
|
+
kind: "mutation",
|
|
25871
|
+
auth: "admin"
|
|
25872
|
+
}),
|
|
25873
|
+
/**
|
|
25874
|
+
* Plain process restart of the node's root process — no version change.
|
|
25875
|
+
* The supervisor (docker restart policy / launchd / Electron main)
|
|
25876
|
+
* relaunches and the starter loads the SAME active version. Refused while
|
|
25877
|
+
* a stage is in flight or a version is already staged awaiting restart
|
|
25878
|
+
* (use apply/rollback instead, so the pending version is not skipped).
|
|
25879
|
+
*/
|
|
25880
|
+
restartServer: method(external_exports.void(), ServerUpdateActionResultSchema, {
|
|
25881
|
+
kind: "mutation",
|
|
25882
|
+
auth: "admin"
|
|
25883
|
+
})
|
|
25648
25884
|
},
|
|
25649
25885
|
/** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
|
|
25650
|
-
mount: { kind: "
|
|
25886
|
+
mount: { kind: "server-provided" }
|
|
25651
25887
|
};
|
|
25652
25888
|
var QueryFilterSchema = external_exports.object({
|
|
25653
25889
|
where: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
|
|
@@ -25873,20 +26109,6 @@ var snapshotCapability = {
|
|
|
25873
26109
|
kind: "poll"
|
|
25874
26110
|
}
|
|
25875
26111
|
};
|
|
25876
|
-
var snapshotProviderCapability = {
|
|
25877
|
-
name: "snapshot-provider",
|
|
25878
|
-
scope: "system",
|
|
25879
|
-
mode: "collection",
|
|
25880
|
-
methods: {
|
|
25881
|
-
supportsDevice: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.boolean()),
|
|
25882
|
-
getSnapshot: method(external_exports.object({
|
|
25883
|
-
deviceId: external_exports.number(),
|
|
25884
|
-
streamId: external_exports.string().optional()
|
|
25885
|
-
}), SnapshotImageSchema.nullable())
|
|
25886
|
-
},
|
|
25887
|
-
/** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
|
|
25888
|
-
mount: { kind: "custom" }
|
|
25889
|
-
};
|
|
25890
26112
|
var SsoBridgeClaimsSchema = external_exports.object({
|
|
25891
26113
|
userId: external_exports.string(),
|
|
25892
26114
|
username: external_exports.string(),
|
|
@@ -26220,6 +26442,20 @@ var userPasskeysCapability = {
|
|
|
26220
26442
|
kind: "mutation",
|
|
26221
26443
|
access: "view"
|
|
26222
26444
|
}),
|
|
26445
|
+
beginDiscoverableAuthentication: method(external_exports.object({}), external_exports.object({ optionsJSON: external_exports.record(external_exports.string(), external_exports.unknown()) }), {
|
|
26446
|
+
kind: "mutation",
|
|
26447
|
+
access: "view"
|
|
26448
|
+
}),
|
|
26449
|
+
finishDiscoverableAuthentication: method(external_exports.object({
|
|
26450
|
+
/** AuthenticationResponseJSON from the browser. */
|
|
26451
|
+
response: external_exports.record(external_exports.string(), external_exports.unknown())
|
|
26452
|
+
}), external_exports.object({
|
|
26453
|
+
verified: external_exports.boolean(),
|
|
26454
|
+
userId: external_exports.string().nullable()
|
|
26455
|
+
}), {
|
|
26456
|
+
kind: "mutation",
|
|
26457
|
+
access: "view"
|
|
26458
|
+
}),
|
|
26223
26459
|
listPasskeys: method(external_exports.object({ userId: external_exports.string() }), external_exports.array(PasskeySummarySchema), { auth: "admin" }),
|
|
26224
26460
|
removePasskey: method(external_exports.object({
|
|
26225
26461
|
userId: external_exports.string(),
|
|
@@ -26228,6 +26464,15 @@ var userPasskeysCapability = {
|
|
|
26228
26464
|
kind: "mutation",
|
|
26229
26465
|
auth: "admin",
|
|
26230
26466
|
access: "delete"
|
|
26467
|
+
}),
|
|
26468
|
+
getSecondFactorPreference: method(external_exports.object({ userId: external_exports.string() }), external_exports.object({ enabled: external_exports.boolean() }), { auth: "admin" }),
|
|
26469
|
+
setSecondFactorPreference: method(external_exports.object({
|
|
26470
|
+
userId: external_exports.string(),
|
|
26471
|
+
enabled: external_exports.boolean()
|
|
26472
|
+
}), external_exports.object({ success: external_exports.literal(true) }), {
|
|
26473
|
+
kind: "mutation",
|
|
26474
|
+
auth: "admin",
|
|
26475
|
+
access: "create"
|
|
26231
26476
|
})
|
|
26232
26477
|
}
|
|
26233
26478
|
};
|
|
@@ -26291,49 +26536,6 @@ var webrtcClientHintsSchema = external_exports.object({
|
|
|
26291
26536
|
/** Hard tier override; takes precedence over scoring when registered. */
|
|
26292
26537
|
prefersTier: external_exports.string().optional()
|
|
26293
26538
|
}).partial();
|
|
26294
|
-
var webrtcCapability = {
|
|
26295
|
-
name: "webrtc",
|
|
26296
|
-
scope: "system",
|
|
26297
|
-
mode: "collection",
|
|
26298
|
-
internal: true,
|
|
26299
|
-
methods: {
|
|
26300
|
-
handleOffer: method(external_exports.object({
|
|
26301
|
-
streamId: external_exports.string(),
|
|
26302
|
-
sdpOffer: external_exports.string()
|
|
26303
|
-
}), external_exports.string(), { kind: "mutation" }),
|
|
26304
|
-
supportsStream: method(external_exports.object({ streamId: external_exports.string() }), external_exports.boolean()),
|
|
26305
|
-
registerStream: method(external_exports.object({
|
|
26306
|
-
streamId: external_exports.string(),
|
|
26307
|
-
codec: external_exports.string()
|
|
26308
|
-
}), external_exports.void(), { kind: "mutation" }),
|
|
26309
|
-
unregisterStream: method(external_exports.object({ streamId: external_exports.string() }), external_exports.void(), { kind: "mutation" }),
|
|
26310
|
-
/**
|
|
26311
|
-
* Two-step server-offer signaling. `hints` is optional — providers
|
|
26312
|
-
* that don't care about adaptive source selection ignore it.
|
|
26313
|
-
*/
|
|
26314
|
-
createSession: method(external_exports.object({
|
|
26315
|
-
streamId: external_exports.string(),
|
|
26316
|
-
hints: webrtcClientHintsSchema.optional()
|
|
26317
|
-
}), external_exports.object({
|
|
26318
|
-
sessionId: external_exports.string(),
|
|
26319
|
-
sdpOffer: external_exports.string()
|
|
26320
|
-
}), { kind: "mutation" }),
|
|
26321
|
-
handleAnswer: method(external_exports.object({
|
|
26322
|
-
sessionId: external_exports.string(),
|
|
26323
|
-
sdpAnswer: external_exports.string()
|
|
26324
|
-
}), external_exports.void(), { kind: "mutation" }),
|
|
26325
|
-
closeSession: method(external_exports.object({ sessionId: external_exports.string() }), external_exports.void(), { kind: "mutation" }),
|
|
26326
|
-
/**
|
|
26327
|
-
* Whether this provider supports adaptive bitrate for the given stream.
|
|
26328
|
-
* Currently always false — adaptive selection is one-shot at session
|
|
26329
|
-
* start, not in-session encoder switching. Phase 5 plans to layer
|
|
26330
|
-
* encoder-driven adaptation on top.
|
|
26331
|
-
*/
|
|
26332
|
-
hasAdaptiveBitrate: method(external_exports.object({ streamId: external_exports.string() }), external_exports.boolean())
|
|
26333
|
-
},
|
|
26334
|
-
/** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
|
|
26335
|
-
mount: { kind: "skip" }
|
|
26336
|
-
};
|
|
26337
26539
|
var WebrtcStreamTargetSchema = external_exports.discriminatedUnion("kind", [
|
|
26338
26540
|
external_exports.object({ kind: external_exports.literal("adaptive") }),
|
|
26339
26541
|
external_exports.object({
|
|
@@ -26576,7 +26778,7 @@ var webrtcSessionCapability = {
|
|
|
26576
26778
|
}).nullable() }))
|
|
26577
26779
|
},
|
|
26578
26780
|
/** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
|
|
26579
|
-
mount: { kind: "
|
|
26781
|
+
mount: { kind: "server-provided" }
|
|
26580
26782
|
};
|
|
26581
26783
|
var AccessoriesStatusSchema = external_exports.object({
|
|
26582
26784
|
/** All accessory children of the parent. */
|
|
@@ -27176,7 +27378,7 @@ var addonsCapability = {
|
|
|
27176
27378
|
}), LogStreamEntrySchema, { kind: "subscription" })
|
|
27177
27379
|
},
|
|
27178
27380
|
/** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
|
|
27179
|
-
mount: { kind: "
|
|
27381
|
+
mount: { kind: "server-provided" }
|
|
27180
27382
|
};
|
|
27181
27383
|
var buttonCapability = {
|
|
27182
27384
|
name: "button",
|
|
@@ -27521,7 +27723,7 @@ var integrationsCapability = {
|
|
|
27521
27723
|
})
|
|
27522
27724
|
},
|
|
27523
27725
|
/** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
|
|
27524
|
-
mount: { kind: "
|
|
27726
|
+
mount: { kind: "server-provided" }
|
|
27525
27727
|
};
|
|
27526
27728
|
var IntercomAbilitySchema = external_exports.object({
|
|
27527
27729
|
/** Codecs accepted by firmware, in preference order. Driver-authored strings. */
|
|
@@ -28061,7 +28263,7 @@ var networkQualityCapability = {
|
|
|
28061
28263
|
}), external_exports.void(), { kind: "mutation" })
|
|
28062
28264
|
},
|
|
28063
28265
|
/** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
|
|
28064
|
-
mount: { kind: "
|
|
28266
|
+
mount: { kind: "server-provided" }
|
|
28065
28267
|
};
|
|
28066
28268
|
var TopologyServiceSchema = external_exports.object({
|
|
28067
28269
|
addonId: external_exports.string(),
|
|
@@ -28090,6 +28292,10 @@ var TopologyCategorySchema = external_exports.object({
|
|
|
28090
28292
|
healthy: external_exports.number(),
|
|
28091
28293
|
addons: external_exports.array(TopologyCategoryAddonSchema).readonly()
|
|
28092
28294
|
});
|
|
28295
|
+
var TopologyRootPackageSchema = external_exports.object({
|
|
28296
|
+
name: external_exports.string(),
|
|
28297
|
+
version: external_exports.string()
|
|
28298
|
+
});
|
|
28093
28299
|
var TopologyNodeSchema = external_exports.object({
|
|
28094
28300
|
id: external_exports.string(),
|
|
28095
28301
|
name: external_exports.string(),
|
|
@@ -28113,7 +28319,8 @@ var TopologyNodeSchema = external_exports.object({
|
|
|
28113
28319
|
status: external_exports.string()
|
|
28114
28320
|
})).readonly(),
|
|
28115
28321
|
processes: external_exports.array(TopologyProcessSchema).readonly(),
|
|
28116
|
-
categories: external_exports.array(TopologyCategorySchema).readonly()
|
|
28322
|
+
categories: external_exports.array(TopologyCategorySchema).readonly(),
|
|
28323
|
+
rootPackage: TopologyRootPackageSchema.nullable()
|
|
28117
28324
|
});
|
|
28118
28325
|
var CapUsageEdgeSchema = external_exports.object({
|
|
28119
28326
|
callerAddonId: external_exports.string(),
|
|
@@ -28226,7 +28433,7 @@ var nodesCapability = {
|
|
|
28226
28433
|
})
|
|
28227
28434
|
},
|
|
28228
28435
|
/** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
|
|
28229
|
-
mount: { kind: "
|
|
28436
|
+
mount: { kind: "server-provided" }
|
|
28230
28437
|
};
|
|
28231
28438
|
var OsdOverlayKindEnum = external_exports.enum([
|
|
28232
28439
|
"text",
|
|
@@ -28849,7 +29056,7 @@ var systemCapability = {
|
|
|
28849
29056
|
})
|
|
28850
29057
|
},
|
|
28851
29058
|
/** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
|
|
28852
|
-
mount: { kind: "
|
|
29059
|
+
mount: { kind: "server-provided" }
|
|
28853
29060
|
};
|
|
28854
29061
|
var ToastSchema = external_exports.object({
|
|
28855
29062
|
title: external_exports.string(),
|
|
@@ -28871,7 +29078,7 @@ var toastCapability = {
|
|
|
28871
29078
|
mode: "singleton",
|
|
28872
29079
|
methods: { onToast: method(external_exports.void(), ToastSchema, { kind: "subscription" }) },
|
|
28873
29080
|
/** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
|
|
28874
|
-
mount: { kind: "
|
|
29081
|
+
mount: { kind: "server-provided" }
|
|
28875
29082
|
};
|
|
28876
29083
|
var UserSummarySchema = external_exports.object({
|
|
28877
29084
|
id: external_exports.string(),
|
|
@@ -31093,6 +31300,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
31093
31300
|
addonId: null,
|
|
31094
31301
|
access: "create"
|
|
31095
31302
|
},
|
|
31303
|
+
"loginMethod.getLoginMethods": {
|
|
31304
|
+
capName: "login-method",
|
|
31305
|
+
capScope: "system",
|
|
31306
|
+
addonId: null,
|
|
31307
|
+
access: "view"
|
|
31308
|
+
},
|
|
31096
31309
|
"mediaPlayer.next": {
|
|
31097
31310
|
capName: "media-player",
|
|
31098
31311
|
capScope: "device",
|
|
@@ -31723,23 +31936,23 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
31723
31936
|
addonId: null,
|
|
31724
31937
|
access: "create"
|
|
31725
31938
|
},
|
|
31726
|
-
"pipelineExecutor.
|
|
31939
|
+
"pipelineExecutor.clearDeviceOverrides": {
|
|
31727
31940
|
capName: "pipeline-executor",
|
|
31728
31941
|
capScope: "system",
|
|
31729
31942
|
addonId: null,
|
|
31730
31943
|
access: "delete"
|
|
31731
31944
|
},
|
|
31732
|
-
"pipelineExecutor.
|
|
31945
|
+
"pipelineExecutor.deleteModel": {
|
|
31733
31946
|
capName: "pipeline-executor",
|
|
31734
31947
|
capScope: "system",
|
|
31735
31948
|
addonId: null,
|
|
31736
31949
|
access: "delete"
|
|
31737
31950
|
},
|
|
31738
|
-
"pipelineExecutor.
|
|
31951
|
+
"pipelineExecutor.deleteTemplate": {
|
|
31739
31952
|
capName: "pipeline-executor",
|
|
31740
31953
|
capScope: "system",
|
|
31741
31954
|
addonId: null,
|
|
31742
|
-
access: "
|
|
31955
|
+
access: "delete"
|
|
31743
31956
|
},
|
|
31744
31957
|
"pipelineExecutor.downloadModel": {
|
|
31745
31958
|
capName: "pipeline-executor",
|
|
@@ -31933,13 +32146,13 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
31933
32146
|
addonId: null,
|
|
31934
32147
|
access: "create"
|
|
31935
32148
|
},
|
|
31936
|
-
"
|
|
31937
|
-
capName: "pipeline-
|
|
32149
|
+
"pipelineExecutor.validatePipeline": {
|
|
32150
|
+
capName: "pipeline-executor",
|
|
31938
32151
|
capScope: "system",
|
|
31939
32152
|
addonId: null,
|
|
31940
|
-
access: "
|
|
32153
|
+
access: "view"
|
|
31941
32154
|
},
|
|
31942
|
-
"pipelineOrchestrator.
|
|
32155
|
+
"pipelineOrchestrator.assignAudio": {
|
|
31943
32156
|
capName: "pipeline-orchestrator",
|
|
31944
32157
|
capScope: "system",
|
|
31945
32158
|
addonId: null,
|
|
@@ -32023,19 +32236,13 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
32023
32236
|
addonId: null,
|
|
32024
32237
|
access: "view"
|
|
32025
32238
|
},
|
|
32026
|
-
"pipelineOrchestrator.
|
|
32027
|
-
capName: "pipeline-orchestrator",
|
|
32028
|
-
capScope: "system",
|
|
32029
|
-
addonId: null,
|
|
32030
|
-
access: "view"
|
|
32031
|
-
},
|
|
32032
|
-
"pipelineOrchestrator.getDecoderAssignments": {
|
|
32239
|
+
"pipelineOrchestrator.getGlobalMetrics": {
|
|
32033
32240
|
capName: "pipeline-orchestrator",
|
|
32034
32241
|
capScope: "system",
|
|
32035
32242
|
addonId: null,
|
|
32036
32243
|
access: "view"
|
|
32037
32244
|
},
|
|
32038
|
-
"pipelineOrchestrator.
|
|
32245
|
+
"pipelineOrchestrator.getIngestOwner": {
|
|
32039
32246
|
capName: "pipeline-orchestrator",
|
|
32040
32247
|
capScope: "system",
|
|
32041
32248
|
addonId: null,
|
|
@@ -32077,6 +32284,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
32077
32284
|
addonId: null,
|
|
32078
32285
|
access: "delete"
|
|
32079
32286
|
},
|
|
32287
|
+
"pipelineOrchestrator.resetNodePipelineDefaults": {
|
|
32288
|
+
capName: "pipeline-orchestrator",
|
|
32289
|
+
capScope: "system",
|
|
32290
|
+
addonId: null,
|
|
32291
|
+
access: "delete"
|
|
32292
|
+
},
|
|
32080
32293
|
"pipelineOrchestrator.resolvePipeline": {
|
|
32081
32294
|
capName: "pipeline-orchestrator",
|
|
32082
32295
|
capScope: "system",
|
|
@@ -32113,37 +32326,37 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
32113
32326
|
addonId: null,
|
|
32114
32327
|
access: "create"
|
|
32115
32328
|
},
|
|
32116
|
-
"pipelineOrchestrator.
|
|
32329
|
+
"pipelineOrchestrator.setAgentReachableHost": {
|
|
32117
32330
|
capName: "pipeline-orchestrator",
|
|
32118
32331
|
capScope: "system",
|
|
32119
32332
|
addonId: null,
|
|
32120
32333
|
access: "create"
|
|
32121
32334
|
},
|
|
32122
|
-
"pipelineOrchestrator.
|
|
32335
|
+
"pipelineOrchestrator.setCameraPipelineForAgent": {
|
|
32123
32336
|
capName: "pipeline-orchestrator",
|
|
32124
32337
|
capScope: "system",
|
|
32125
32338
|
addonId: null,
|
|
32126
32339
|
access: "create"
|
|
32127
32340
|
},
|
|
32128
|
-
"pipelineOrchestrator.
|
|
32341
|
+
"pipelineOrchestrator.setCameraStepOverride": {
|
|
32129
32342
|
capName: "pipeline-orchestrator",
|
|
32130
32343
|
capScope: "system",
|
|
32131
32344
|
addonId: null,
|
|
32132
32345
|
access: "create"
|
|
32133
32346
|
},
|
|
32134
|
-
"pipelineOrchestrator.
|
|
32347
|
+
"pipelineOrchestrator.setCameraStepToggle": {
|
|
32135
32348
|
capName: "pipeline-orchestrator",
|
|
32136
32349
|
capScope: "system",
|
|
32137
32350
|
addonId: null,
|
|
32138
32351
|
access: "create"
|
|
32139
32352
|
},
|
|
32140
|
-
"pipelineOrchestrator.
|
|
32353
|
+
"pipelineOrchestrator.setCapabilityBinding": {
|
|
32141
32354
|
capName: "pipeline-orchestrator",
|
|
32142
32355
|
capScope: "system",
|
|
32143
32356
|
addonId: null,
|
|
32144
32357
|
access: "create"
|
|
32145
32358
|
},
|
|
32146
|
-
"pipelineOrchestrator.
|
|
32359
|
+
"pipelineOrchestrator.unassignAudio": {
|
|
32147
32360
|
capName: "pipeline-orchestrator",
|
|
32148
32361
|
capScope: "system",
|
|
32149
32362
|
addonId: null,
|
|
@@ -32443,33 +32656,45 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
32443
32656
|
addonId: null,
|
|
32444
32657
|
access: "create"
|
|
32445
32658
|
},
|
|
32446
|
-
"
|
|
32447
|
-
capName: "
|
|
32659
|
+
"scriptRunner.run": {
|
|
32660
|
+
capName: "script-runner",
|
|
32661
|
+
capScope: "device",
|
|
32662
|
+
addonId: null,
|
|
32663
|
+
access: "create"
|
|
32664
|
+
},
|
|
32665
|
+
"scriptRunner.stop": {
|
|
32666
|
+
capName: "script-runner",
|
|
32667
|
+
capScope: "device",
|
|
32668
|
+
addonId: null,
|
|
32669
|
+
access: "create"
|
|
32670
|
+
},
|
|
32671
|
+
"serverManagement.applyServerUpdate": {
|
|
32672
|
+
capName: "server-management",
|
|
32448
32673
|
capScope: "system",
|
|
32449
32674
|
addonId: null,
|
|
32450
|
-
access: "
|
|
32675
|
+
access: "create"
|
|
32451
32676
|
},
|
|
32452
|
-
"
|
|
32453
|
-
capName: "
|
|
32677
|
+
"serverManagement.checkServerUpdate": {
|
|
32678
|
+
capName: "server-management",
|
|
32454
32679
|
capScope: "system",
|
|
32455
32680
|
addonId: null,
|
|
32456
32681
|
access: "create"
|
|
32457
32682
|
},
|
|
32458
|
-
"
|
|
32459
|
-
capName: "
|
|
32683
|
+
"serverManagement.getServerPackageStatus": {
|
|
32684
|
+
capName: "server-management",
|
|
32460
32685
|
capScope: "system",
|
|
32461
32686
|
addonId: null,
|
|
32462
|
-
access: "
|
|
32687
|
+
access: "view"
|
|
32463
32688
|
},
|
|
32464
|
-
"
|
|
32465
|
-
capName: "
|
|
32466
|
-
capScope: "
|
|
32689
|
+
"serverManagement.restartServer": {
|
|
32690
|
+
capName: "server-management",
|
|
32691
|
+
capScope: "system",
|
|
32467
32692
|
addonId: null,
|
|
32468
32693
|
access: "create"
|
|
32469
32694
|
},
|
|
32470
|
-
"
|
|
32471
|
-
capName: "
|
|
32472
|
-
capScope: "
|
|
32695
|
+
"serverManagement.rollbackServerUpdate": {
|
|
32696
|
+
capName: "server-management",
|
|
32697
|
+
capScope: "system",
|
|
32473
32698
|
addonId: null,
|
|
32474
32699
|
access: "create"
|
|
32475
32700
|
},
|
|
@@ -32563,18 +32788,6 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
32563
32788
|
addonId: null,
|
|
32564
32789
|
access: "create"
|
|
32565
32790
|
},
|
|
32566
|
-
"snapshotProvider.getSnapshot": {
|
|
32567
|
-
capName: "snapshot-provider",
|
|
32568
|
-
capScope: "system",
|
|
32569
|
-
addonId: null,
|
|
32570
|
-
access: "view"
|
|
32571
|
-
},
|
|
32572
|
-
"snapshotProvider.supportsDevice": {
|
|
32573
|
-
capName: "snapshot-provider",
|
|
32574
|
-
capScope: "system",
|
|
32575
|
-
addonId: null,
|
|
32576
|
-
access: "view"
|
|
32577
|
-
},
|
|
32578
32791
|
"ssoBridge.signBridgeToken": {
|
|
32579
32792
|
capName: "sso-bridge",
|
|
32580
32793
|
capScope: "system",
|
|
@@ -33001,30 +33214,6 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
33001
33214
|
addonId: null,
|
|
33002
33215
|
access: "view"
|
|
33003
33216
|
},
|
|
33004
|
-
"streamingEngine.getStreamUrl": {
|
|
33005
|
-
capName: "streaming-engine",
|
|
33006
|
-
capScope: "system",
|
|
33007
|
-
addonId: null,
|
|
33008
|
-
access: "view"
|
|
33009
|
-
},
|
|
33010
|
-
"streamingEngine.listStreams": {
|
|
33011
|
-
capName: "streaming-engine",
|
|
33012
|
-
capScope: "system",
|
|
33013
|
-
addonId: null,
|
|
33014
|
-
access: "view"
|
|
33015
|
-
},
|
|
33016
|
-
"streamingEngine.registerStream": {
|
|
33017
|
-
capName: "streaming-engine",
|
|
33018
|
-
capScope: "system",
|
|
33019
|
-
addonId: null,
|
|
33020
|
-
access: "create"
|
|
33021
|
-
},
|
|
33022
|
-
"streamingEngine.unregisterStream": {
|
|
33023
|
-
capName: "streaming-engine",
|
|
33024
|
-
capScope: "system",
|
|
33025
|
-
addonId: null,
|
|
33026
|
-
access: "delete"
|
|
33027
|
-
},
|
|
33028
33217
|
"streamParams.getConfigSchema": {
|
|
33029
33218
|
capName: "stream-params",
|
|
33030
33219
|
capScope: "device",
|
|
@@ -33271,6 +33460,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
33271
33460
|
addonId: null,
|
|
33272
33461
|
access: "view"
|
|
33273
33462
|
},
|
|
33463
|
+
"userPasskeys.beginDiscoverableAuthentication": {
|
|
33464
|
+
capName: "user-passkeys",
|
|
33465
|
+
capScope: "system",
|
|
33466
|
+
addonId: null,
|
|
33467
|
+
access: "view"
|
|
33468
|
+
},
|
|
33274
33469
|
"userPasskeys.beginRegistration": {
|
|
33275
33470
|
capName: "user-passkeys",
|
|
33276
33471
|
capScope: "system",
|
|
@@ -33283,12 +33478,24 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
33283
33478
|
addonId: null,
|
|
33284
33479
|
access: "view"
|
|
33285
33480
|
},
|
|
33481
|
+
"userPasskeys.finishDiscoverableAuthentication": {
|
|
33482
|
+
capName: "user-passkeys",
|
|
33483
|
+
capScope: "system",
|
|
33484
|
+
addonId: null,
|
|
33485
|
+
access: "view"
|
|
33486
|
+
},
|
|
33286
33487
|
"userPasskeys.finishRegistration": {
|
|
33287
33488
|
capName: "user-passkeys",
|
|
33288
33489
|
capScope: "system",
|
|
33289
33490
|
addonId: null,
|
|
33290
33491
|
access: "create"
|
|
33291
33492
|
},
|
|
33493
|
+
"userPasskeys.getSecondFactorPreference": {
|
|
33494
|
+
capName: "user-passkeys",
|
|
33495
|
+
capScope: "system",
|
|
33496
|
+
addonId: null,
|
|
33497
|
+
access: "view"
|
|
33498
|
+
},
|
|
33292
33499
|
"userPasskeys.listPasskeys": {
|
|
33293
33500
|
capName: "user-passkeys",
|
|
33294
33501
|
capScope: "system",
|
|
@@ -33301,6 +33508,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
33301
33508
|
addonId: null,
|
|
33302
33509
|
access: "delete"
|
|
33303
33510
|
},
|
|
33511
|
+
"userPasskeys.setSecondFactorPreference": {
|
|
33512
|
+
capName: "user-passkeys",
|
|
33513
|
+
capScope: "system",
|
|
33514
|
+
addonId: null,
|
|
33515
|
+
access: "create"
|
|
33516
|
+
},
|
|
33304
33517
|
"vacuumControl.locate": {
|
|
33305
33518
|
capName: "vacuum-control",
|
|
33306
33519
|
capScope: "device",
|
|
@@ -33373,6 +33586,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
33373
33586
|
addonId: null,
|
|
33374
33587
|
access: "view"
|
|
33375
33588
|
},
|
|
33589
|
+
"viewerUi.getStaticDir": {
|
|
33590
|
+
capName: "viewer-ui",
|
|
33591
|
+
capScope: "system",
|
|
33592
|
+
addonId: null,
|
|
33593
|
+
access: "view"
|
|
33594
|
+
},
|
|
33595
|
+
"viewerUi.getVersion": {
|
|
33596
|
+
capName: "viewer-ui",
|
|
33597
|
+
capScope: "system",
|
|
33598
|
+
addonId: null,
|
|
33599
|
+
access: "view"
|
|
33600
|
+
},
|
|
33376
33601
|
"waterHeater.setAway": {
|
|
33377
33602
|
capName: "water-heater",
|
|
33378
33603
|
capScope: "device",
|
|
@@ -33391,54 +33616,6 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
33391
33616
|
addonId: null,
|
|
33392
33617
|
access: "create"
|
|
33393
33618
|
},
|
|
33394
|
-
"webrtc.closeSession": {
|
|
33395
|
-
capName: "webrtc",
|
|
33396
|
-
capScope: "system",
|
|
33397
|
-
addonId: null,
|
|
33398
|
-
access: "create"
|
|
33399
|
-
},
|
|
33400
|
-
"webrtc.createSession": {
|
|
33401
|
-
capName: "webrtc",
|
|
33402
|
-
capScope: "system",
|
|
33403
|
-
addonId: null,
|
|
33404
|
-
access: "create"
|
|
33405
|
-
},
|
|
33406
|
-
"webrtc.handleAnswer": {
|
|
33407
|
-
capName: "webrtc",
|
|
33408
|
-
capScope: "system",
|
|
33409
|
-
addonId: null,
|
|
33410
|
-
access: "create"
|
|
33411
|
-
},
|
|
33412
|
-
"webrtc.handleOffer": {
|
|
33413
|
-
capName: "webrtc",
|
|
33414
|
-
capScope: "system",
|
|
33415
|
-
addonId: null,
|
|
33416
|
-
access: "create"
|
|
33417
|
-
},
|
|
33418
|
-
"webrtc.hasAdaptiveBitrate": {
|
|
33419
|
-
capName: "webrtc",
|
|
33420
|
-
capScope: "system",
|
|
33421
|
-
addonId: null,
|
|
33422
|
-
access: "view"
|
|
33423
|
-
},
|
|
33424
|
-
"webrtc.registerStream": {
|
|
33425
|
-
capName: "webrtc",
|
|
33426
|
-
capScope: "system",
|
|
33427
|
-
addonId: null,
|
|
33428
|
-
access: "create"
|
|
33429
|
-
},
|
|
33430
|
-
"webrtc.supportsStream": {
|
|
33431
|
-
capName: "webrtc",
|
|
33432
|
-
capScope: "system",
|
|
33433
|
-
addonId: null,
|
|
33434
|
-
access: "view"
|
|
33435
|
-
},
|
|
33436
|
-
"webrtc.unregisterStream": {
|
|
33437
|
-
capName: "webrtc",
|
|
33438
|
-
capScope: "system",
|
|
33439
|
-
addonId: null,
|
|
33440
|
-
access: "delete"
|
|
33441
|
-
},
|
|
33442
33619
|
"webrtcSession.addIceCandidate": {
|
|
33443
33620
|
capName: "webrtc-session",
|
|
33444
33621
|
capScope: "device",
|