camstack 1.2.15 → 1.2.16

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.
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/env node
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
9
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
10
+ }) : x)(function(x) {
11
+ if (typeof require !== "undefined") return require.apply(this, arguments);
12
+ throw Error('Dynamic require of "' + x + '" is not supported');
13
+ });
14
+ var __esm = (fn, res) => function __init() {
15
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
16
+ };
17
+ var __commonJS = (cb, mod) => function __require2() {
18
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
19
+ };
20
+ var __export = (target, all) => {
21
+ for (var name in all)
22
+ __defProp(target, name, { get: all[name], enumerable: true });
23
+ };
24
+ var __copyProps = (to, from, except, desc) => {
25
+ if (from && typeof from === "object" || typeof from === "function") {
26
+ for (let key of __getOwnPropNames(from))
27
+ if (!__hasOwnProp.call(to, key) && key !== except)
28
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
29
+ }
30
+ return to;
31
+ };
32
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
33
+ // If the importer is in node compatibility mode or this is not an ESM
34
+ // file that has been converted to a CommonJS file using a Babel-
35
+ // compatible transform (i.e. "__esModule" has not been set), then set
36
+ // "default" to the CommonJS "module.exports" for node compatibility.
37
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
38
+ mod
39
+ ));
40
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
41
+
42
+ export {
43
+ __require,
44
+ __esm,
45
+ __commonJS,
46
+ __export,
47
+ __toESM,
48
+ __toCommonJS
49
+ };
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  __export
4
- } from "./chunk-K3NQKI34.js";
4
+ } from "./chunk-LMMQX4CK.js";
5
5
 
6
6
  // src/commands/discover.ts
7
7
  import * as dgram from "dgram";
@@ -15555,14 +15555,7 @@ var RecordingConfigSchema = external_exports.object({
15555
15555
  * windows only — existing sheets are immutable, and each window's index
15556
15556
  * carries its own tile dims so mixed-preset history renders correctly.
15557
15557
  */
15558
- scrubThumbnails: ScrubThumbnailPresetSchema.optional(),
15559
- /**
15560
- * OPT-IN thumbnail-strip generation for this camera: every keyframe of the
15561
- * low recording saved as a JPEG (the fast-drag scrub depth), a derived
15562
- * cache that eviction reclaims with the footage. Absent/false = no strips
15563
- * are written and scrub reads exact keyframes at every velocity.
15564
- */
15565
- stripsEnabled: external_exports.boolean().optional()
15558
+ scrubThumbnails: ScrubThumbnailPresetSchema.optional()
15566
15559
  }).strict();
15567
15560
  var OpsLogDomainSchema = external_exports.enum(["recording", "events"]);
15568
15561
  var OpsLogOpSchema = external_exports.enum([
@@ -15620,7 +15613,7 @@ var RelocateJobSchema = external_exports.object({
15620
15613
  toLocationId: external_exports.string(),
15621
15614
  /** Scoped device, or null = every device. */
15622
15615
  deviceId: external_exports.number().nullable(),
15623
- /** What the job moves (owner-addon specific: segments/strips or media). */
15616
+ /** What the job moves (owner-addon specific: segments or media). */
15624
15617
  entities: external_exports.array(external_exports.string()),
15625
15618
  filesMoved: external_exports.number().int(),
15626
15619
  bytesMoved: external_exports.number().int(),
@@ -15634,7 +15627,7 @@ var RelocateFootageInputSchema = external_exports.object({
15634
15627
  deviceId: external_exports.number().optional(),
15635
15628
  fromLocationId: external_exports.string(),
15636
15629
  toLocationId: external_exports.string(),
15637
- entities: external_exports.array(external_exports.enum(["segments", "strips"])).optional(),
15630
+ entities: external_exports.array(external_exports.enum(["segments"])).optional(),
15638
15631
  /** Copy throttle in MB/s (default 40) — the drain is a background chore,
15639
15632
  * never allowed to starve live writers. */
15640
15633
  throttleMbps: external_exports.number().min(1).max(1e3).optional()
@@ -24493,6 +24486,218 @@ var decoderCapability = {
24493
24486
  })
24494
24487
  }
24495
24488
  };
24489
+ var QueryFilterSchema = external_exports.object({
24490
+ where: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
24491
+ whereIn: external_exports.record(external_exports.string(), external_exports.array(external_exports.unknown())).optional(),
24492
+ whereBetween: external_exports.record(external_exports.string(), external_exports.tuple([external_exports.unknown(), external_exports.unknown()])).optional(),
24493
+ orderBy: external_exports.object({
24494
+ field: external_exports.string(),
24495
+ direction: external_exports.enum(["asc", "desc"])
24496
+ }).optional(),
24497
+ limit: external_exports.number().optional(),
24498
+ offset: external_exports.number().optional()
24499
+ });
24500
+ var SettingsRecordSchema = external_exports.object({
24501
+ id: external_exports.string(),
24502
+ data: external_exports.record(external_exports.string(), external_exports.unknown())
24503
+ });
24504
+ var CollectionColumnSchema = external_exports.object({
24505
+ name: external_exports.string(),
24506
+ type: external_exports.enum([
24507
+ "TEXT",
24508
+ "INTEGER",
24509
+ "REAL",
24510
+ "JSON",
24511
+ "BOOLEAN"
24512
+ ]),
24513
+ primaryKey: external_exports.boolean().optional(),
24514
+ notNull: external_exports.boolean().optional(),
24515
+ unique: external_exports.boolean().optional()
24516
+ });
24517
+ var CollectionIndexSchema = external_exports.object({
24518
+ name: external_exports.string(),
24519
+ columns: external_exports.array(external_exports.string()).readonly(),
24520
+ unique: external_exports.boolean().optional()
24521
+ });
24522
+ var settingsStoreCapability = {
24523
+ name: "settings-store",
24524
+ scope: "system",
24525
+ mode: "singleton",
24526
+ methods: {
24527
+ /** Get a single value by key from a collection. */
24528
+ get: method(external_exports.object({
24529
+ namespace: external_exports.string().optional(),
24530
+ collection: external_exports.string(),
24531
+ key: external_exports.string()
24532
+ }), external_exports.unknown()),
24533
+ /** Set a value by key in a collection (upsert). */
24534
+ set: method(external_exports.object({
24535
+ namespace: external_exports.string().optional(),
24536
+ collection: external_exports.string(),
24537
+ key: external_exports.string(),
24538
+ value: external_exports.unknown()
24539
+ }), external_exports.void(), { kind: "mutation" }),
24540
+ /** Get all entries matching an optional filter. */
24541
+ query: method(external_exports.object({
24542
+ namespace: external_exports.string().optional(),
24543
+ collection: external_exports.string(),
24544
+ filter: QueryFilterSchema.optional()
24545
+ }), external_exports.array(SettingsRecordSchema).readonly()),
24546
+ /** Insert a new record. */
24547
+ insert: method(external_exports.object({
24548
+ namespace: external_exports.string().optional(),
24549
+ collection: external_exports.string(),
24550
+ record: SettingsRecordSchema
24551
+ }), external_exports.void(), { kind: "mutation" }),
24552
+ /** Update an existing record by ID. */
24553
+ update: method(external_exports.object({
24554
+ namespace: external_exports.string().optional(),
24555
+ collection: external_exports.string(),
24556
+ id: external_exports.string(),
24557
+ data: external_exports.record(external_exports.string(), external_exports.unknown())
24558
+ }), external_exports.void(), { kind: "mutation" }),
24559
+ /** Delete a record by key/ID. */
24560
+ delete: method(external_exports.object({
24561
+ namespace: external_exports.string().optional(),
24562
+ collection: external_exports.string(),
24563
+ key: external_exports.string()
24564
+ }), external_exports.void(), { kind: "mutation" }),
24565
+ /** Count entries in a collection, optionally filtered. */
24566
+ count: method(external_exports.object({
24567
+ namespace: external_exports.string().optional(),
24568
+ collection: external_exports.string(),
24569
+ filter: QueryFilterSchema.optional()
24570
+ }), external_exports.number()),
24571
+ /** Grouped counts per ((field-origin)/bucketSize) bucket, filtered. */
24572
+ histogram: method(external_exports.object({
24573
+ namespace: external_exports.string().optional(),
24574
+ collection: external_exports.string(),
24575
+ field: external_exports.string(),
24576
+ bucketSize: external_exports.number().int().positive(),
24577
+ origin: external_exports.number().int(),
24578
+ filter: QueryFilterSchema.optional()
24579
+ }), external_exports.array(external_exports.object({
24580
+ bucket: external_exports.number().int(),
24581
+ count: external_exports.number().int()
24582
+ })).readonly()),
24583
+ /** Check if a collection is empty. */
24584
+ isEmpty: method(external_exports.object({
24585
+ namespace: external_exports.string().optional(),
24586
+ collection: external_exports.string()
24587
+ }), external_exports.boolean()),
24588
+ /**
24589
+ * Declare a typed (SQL-backed) collection with explicit columns +
24590
+ * indexes. Idempotent: re-declaring an existing collection with the
24591
+ * same shape is a no-op; shape changes (new columns, new indexes)
24592
+ * are applied additively. Subsequent `insert` / `update` / `delete`
24593
+ * / `query` calls on this collection use typed columns instead of
24594
+ * JSON-blob storage — `record.data` fields are spread across
24595
+ * columns, `query.filter.where` matches real columns (no
24596
+ * `json_extract` overhead), `orderBy` uses column indexes.
24597
+ *
24598
+ * Addons call this in `onInitialize` before their first read/write.
24599
+ * Collection names should be namespaced by addon (e.g.
24600
+ * `pipeline-analytics:object-events`) to avoid cross-addon
24601
+ * clashes — no automatic prefix is added.
24602
+ */
24603
+ declareCollection: method(external_exports.object({
24604
+ namespace: external_exports.string().optional(),
24605
+ collection: external_exports.string(),
24606
+ columns: external_exports.array(CollectionColumnSchema).readonly(),
24607
+ indexes: external_exports.array(CollectionIndexSchema).readonly().optional()
24608
+ }), external_exports.void(), { kind: "mutation" })
24609
+ }
24610
+ };
24611
+ var EngineInfoSchema = external_exports.object({
24612
+ engineId: external_exports.string(),
24613
+ /**
24614
+ * `relational` — rows, columns, indexes, the surface `settings-store`
24615
+ * has always described. `vector` — an embedding store answering
24616
+ * similarity queries. A registrant declares exactly one; an engine that
24617
+ * does both registers twice, because "both" would make the routing
24618
+ * decision ambiguous at exactly the point it must not be.
24619
+ */
24620
+ kind: external_exports.enum(["relational", "vector"]),
24621
+ displayName: external_exports.string()
24622
+ });
24623
+ var dataStoreProviderCapability = {
24624
+ name: "data-store-provider",
24625
+ scope: "system",
24626
+ mode: "collection",
24627
+ internal: true,
24628
+ methods: {
24629
+ /** Self-description — how the orchestrator picks a registrant. */
24630
+ getEngineInfo: method(external_exports.void(), EngineInfoSchema),
24631
+ /** Get a single value by key from a collection. */
24632
+ get: method(external_exports.object({
24633
+ namespace: external_exports.string().optional(),
24634
+ collection: external_exports.string(),
24635
+ key: external_exports.string()
24636
+ }), external_exports.unknown()),
24637
+ /** Set a value by key in a collection (upsert). */
24638
+ set: method(external_exports.object({
24639
+ namespace: external_exports.string().optional(),
24640
+ collection: external_exports.string(),
24641
+ key: external_exports.string(),
24642
+ value: external_exports.unknown()
24643
+ }), external_exports.void(), { kind: "mutation" }),
24644
+ /** Get all entries matching an optional filter. */
24645
+ query: method(external_exports.object({
24646
+ namespace: external_exports.string().optional(),
24647
+ collection: external_exports.string(),
24648
+ filter: QueryFilterSchema.optional()
24649
+ }), external_exports.array(SettingsRecordSchema).readonly()),
24650
+ /** Insert a new record. */
24651
+ insert: method(external_exports.object({
24652
+ namespace: external_exports.string().optional(),
24653
+ collection: external_exports.string(),
24654
+ record: SettingsRecordSchema
24655
+ }), external_exports.void(), { kind: "mutation" }),
24656
+ /** Update an existing record by ID. */
24657
+ update: method(external_exports.object({
24658
+ namespace: external_exports.string().optional(),
24659
+ collection: external_exports.string(),
24660
+ id: external_exports.string(),
24661
+ data: external_exports.record(external_exports.string(), external_exports.unknown())
24662
+ }), external_exports.void(), { kind: "mutation" }),
24663
+ /** Delete a record by key/ID. */
24664
+ delete: method(external_exports.object({
24665
+ namespace: external_exports.string().optional(),
24666
+ collection: external_exports.string(),
24667
+ key: external_exports.string()
24668
+ }), external_exports.void(), { kind: "mutation" }),
24669
+ /** Count entries in a collection, optionally filtered. */
24670
+ count: method(external_exports.object({
24671
+ namespace: external_exports.string().optional(),
24672
+ collection: external_exports.string(),
24673
+ filter: QueryFilterSchema.optional()
24674
+ }), external_exports.number()),
24675
+ /** Grouped counts per ((field-origin)/bucketSize) bucket, filtered. */
24676
+ histogram: method(external_exports.object({
24677
+ namespace: external_exports.string().optional(),
24678
+ collection: external_exports.string(),
24679
+ field: external_exports.string(),
24680
+ bucketSize: external_exports.number().int().positive(),
24681
+ origin: external_exports.number().int(),
24682
+ filter: QueryFilterSchema.optional()
24683
+ }), external_exports.array(external_exports.object({
24684
+ bucket: external_exports.number().int(),
24685
+ count: external_exports.number().int()
24686
+ })).readonly()),
24687
+ /** Check if a collection is empty. */
24688
+ isEmpty: method(external_exports.object({
24689
+ namespace: external_exports.string().optional(),
24690
+ collection: external_exports.string()
24691
+ }), external_exports.boolean()),
24692
+ /** Declare a typed (SQL-backed) collection with columns + indexes. */
24693
+ declareCollection: method(external_exports.object({
24694
+ namespace: external_exports.string().optional(),
24695
+ collection: external_exports.string(),
24696
+ columns: external_exports.array(CollectionColumnSchema).readonly(),
24697
+ indexes: external_exports.array(CollectionIndexSchema).readonly().optional()
24698
+ }), external_exports.void(), { kind: "mutation" })
24699
+ }
24700
+ };
24496
24701
  var detectionPipelineCapability = {
24497
24702
  name: "detection-pipeline",
24498
24703
  scope: "device",
@@ -28207,6 +28412,29 @@ var ServerUpdateStateSchema = external_exports.enum([
28207
28412
  "pending-restart",
28208
28413
  "awaiting-confirmation"
28209
28414
  ]);
28415
+ var ImageContractStateSchema = external_exports.enum([
28416
+ "in-sync",
28417
+ "behind-patch",
28418
+ "behind-series",
28419
+ "ahead",
28420
+ "unknown"
28421
+ ]);
28422
+ var ImageContractSchema = external_exports.object({
28423
+ state: ImageContractStateSchema,
28424
+ /** The baked seed closure version — the image/app-bundle fingerprint. */
28425
+ seedVersion: external_exports.string().nullable(),
28426
+ /** Best-known version the deployment contract delivers today. */
28427
+ contractVersion: external_exports.string().nullable(),
28428
+ /**
28429
+ * Where `contractVersion` came from: a real registry check (`registry`), or
28430
+ * the node's own running version (`running` — a node can never run code
28431
+ * newer than the newest release, so `seed < running` proves image staleness
28432
+ * even before any registry check has run).
28433
+ */
28434
+ contractSource: external_exports.enum(["registry", "running"]).nullable(),
28435
+ /** One operator-grade sentence: this node runs image X; the contract says Y. */
28436
+ message: external_exports.string()
28437
+ });
28210
28438
  var ServerRollbackInfoSchema = external_exports.object({
28211
28439
  /** The version that failed (or was manually rolled back). */
28212
28440
  fromVersion: external_exports.string(),
@@ -28243,7 +28471,12 @@ var ServerPackageStatusSchema = external_exports.object({
28243
28471
  * versions are being IGNORED. Surfaced as a warning in the UI.
28244
28472
  */
28245
28473
  stateFileCorrupt: external_exports.boolean(),
28246
- lastCheckedAtMs: external_exports.number().nullable()
28474
+ lastCheckedAtMs: external_exports.number().nullable(),
28475
+ /**
28476
+ * Seed-vs-contract verdict (see {@link ImageContractSchema}). Optional for
28477
+ * version skew: an older provider's payload simply omits it.
28478
+ */
28479
+ imageContract: ImageContractSchema.optional()
28247
28480
  });
28248
28481
  var ServerUpdateCheckResultSchema = external_exports.object({
28249
28482
  packageName: external_exports.string(),
@@ -28298,128 +28531,6 @@ var serverManagementCapability = {
28298
28531
  /** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
28299
28532
  mount: { kind: "server-provided" }
28300
28533
  };
28301
- var QueryFilterSchema = external_exports.object({
28302
- where: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
28303
- whereIn: external_exports.record(external_exports.string(), external_exports.array(external_exports.unknown())).optional(),
28304
- whereBetween: external_exports.record(external_exports.string(), external_exports.tuple([external_exports.unknown(), external_exports.unknown()])).optional(),
28305
- orderBy: external_exports.object({
28306
- field: external_exports.string(),
28307
- direction: external_exports.enum(["asc", "desc"])
28308
- }).optional(),
28309
- limit: external_exports.number().optional(),
28310
- offset: external_exports.number().optional()
28311
- });
28312
- var SettingsRecordSchema = external_exports.object({
28313
- id: external_exports.string(),
28314
- data: external_exports.record(external_exports.string(), external_exports.unknown())
28315
- });
28316
- var CollectionColumnSchema = external_exports.object({
28317
- name: external_exports.string(),
28318
- type: external_exports.enum([
28319
- "TEXT",
28320
- "INTEGER",
28321
- "REAL",
28322
- "JSON",
28323
- "BOOLEAN"
28324
- ]),
28325
- primaryKey: external_exports.boolean().optional(),
28326
- notNull: external_exports.boolean().optional(),
28327
- unique: external_exports.boolean().optional()
28328
- });
28329
- var CollectionIndexSchema = external_exports.object({
28330
- name: external_exports.string(),
28331
- columns: external_exports.array(external_exports.string()).readonly(),
28332
- unique: external_exports.boolean().optional()
28333
- });
28334
- var settingsStoreCapability = {
28335
- name: "settings-store",
28336
- scope: "system",
28337
- mode: "singleton",
28338
- methods: {
28339
- /** Get a single value by key from a collection. */
28340
- get: method(external_exports.object({
28341
- namespace: external_exports.string().optional(),
28342
- collection: external_exports.string(),
28343
- key: external_exports.string()
28344
- }), external_exports.unknown()),
28345
- /** Set a value by key in a collection (upsert). */
28346
- set: method(external_exports.object({
28347
- namespace: external_exports.string().optional(),
28348
- collection: external_exports.string(),
28349
- key: external_exports.string(),
28350
- value: external_exports.unknown()
28351
- }), external_exports.void(), { kind: "mutation" }),
28352
- /** Get all entries matching an optional filter. */
28353
- query: method(external_exports.object({
28354
- namespace: external_exports.string().optional(),
28355
- collection: external_exports.string(),
28356
- filter: QueryFilterSchema.optional()
28357
- }), external_exports.array(SettingsRecordSchema).readonly()),
28358
- /** Insert a new record. */
28359
- insert: method(external_exports.object({
28360
- namespace: external_exports.string().optional(),
28361
- collection: external_exports.string(),
28362
- record: SettingsRecordSchema
28363
- }), external_exports.void(), { kind: "mutation" }),
28364
- /** Update an existing record by ID. */
28365
- update: method(external_exports.object({
28366
- namespace: external_exports.string().optional(),
28367
- collection: external_exports.string(),
28368
- id: external_exports.string(),
28369
- data: external_exports.record(external_exports.string(), external_exports.unknown())
28370
- }), external_exports.void(), { kind: "mutation" }),
28371
- /** Delete a record by key/ID. */
28372
- delete: method(external_exports.object({
28373
- namespace: external_exports.string().optional(),
28374
- collection: external_exports.string(),
28375
- key: external_exports.string()
28376
- }), external_exports.void(), { kind: "mutation" }),
28377
- /** Count entries in a collection, optionally filtered. */
28378
- count: method(external_exports.object({
28379
- namespace: external_exports.string().optional(),
28380
- collection: external_exports.string(),
28381
- filter: QueryFilterSchema.optional()
28382
- }), external_exports.number()),
28383
- /** Grouped counts per ((field-origin)/bucketSize) bucket, filtered. */
28384
- histogram: method(external_exports.object({
28385
- namespace: external_exports.string().optional(),
28386
- collection: external_exports.string(),
28387
- field: external_exports.string(),
28388
- bucketSize: external_exports.number().int().positive(),
28389
- origin: external_exports.number().int(),
28390
- filter: QueryFilterSchema.optional()
28391
- }), external_exports.array(external_exports.object({
28392
- bucket: external_exports.number().int(),
28393
- count: external_exports.number().int()
28394
- })).readonly()),
28395
- /** Check if a collection is empty. */
28396
- isEmpty: method(external_exports.object({
28397
- namespace: external_exports.string().optional(),
28398
- collection: external_exports.string()
28399
- }), external_exports.boolean()),
28400
- /**
28401
- * Declare a typed (SQL-backed) collection with explicit columns +
28402
- * indexes. Idempotent: re-declaring an existing collection with the
28403
- * same shape is a no-op; shape changes (new columns, new indexes)
28404
- * are applied additively. Subsequent `insert` / `update` / `delete`
28405
- * / `query` calls on this collection use typed columns instead of
28406
- * JSON-blob storage — `record.data` fields are spread across
28407
- * columns, `query.filter.where` matches real columns (no
28408
- * `json_extract` overhead), `orderBy` uses column indexes.
28409
- *
28410
- * Addons call this in `onInitialize` before their first read/write.
28411
- * Collection names should be namespaced by addon (e.g.
28412
- * `pipeline-analytics:object-events`) to avoid cross-addon
28413
- * clashes — no automatic prefix is added.
28414
- */
28415
- declareCollection: method(external_exports.object({
28416
- namespace: external_exports.string().optional(),
28417
- collection: external_exports.string(),
28418
- columns: external_exports.array(CollectionColumnSchema).readonly(),
28419
- indexes: external_exports.array(CollectionIndexSchema).readonly().optional()
28420
- }), external_exports.void(), { kind: "mutation" })
28421
- }
28422
- };
28423
28534
  var EmailAddressSchema = external_exports.email();
28424
28535
  var SendEmailInputSchema = external_exports.object({
28425
28536
  to: external_exports.union([EmailAddressSchema, external_exports.array(EmailAddressSchema).min(1)]),
@@ -31584,7 +31695,7 @@ var recordingCapability = {
31584
31695
  auth: "admin"
31585
31696
  }),
31586
31697
  /**
31587
- * Move footage (segments and/or strips) from one recordings location to
31698
+ * Move footage (recorded segments) from one recordings location to
31588
31699
  * another — the drain workflow's mover (entity-routing spec Phase 4).
31589
31700
  * Throttled copy → size-verify → delete source → index refresh; resumable
31590
31701
  * by construction (copy-if-absent). Single-flight: one job at a time.
@@ -32907,6 +33018,72 @@ var METHOD_ACCESS_MAP = Object.freeze({
32907
33018
  addonId: null,
32908
33019
  access: "view"
32909
33020
  },
33021
+ "dataStoreProvider.count": {
33022
+ capName: "data-store-provider",
33023
+ capScope: "system",
33024
+ addonId: null,
33025
+ access: "view"
33026
+ },
33027
+ "dataStoreProvider.declareCollection": {
33028
+ capName: "data-store-provider",
33029
+ capScope: "system",
33030
+ addonId: null,
33031
+ access: "create"
33032
+ },
33033
+ "dataStoreProvider.delete": {
33034
+ capName: "data-store-provider",
33035
+ capScope: "system",
33036
+ addonId: null,
33037
+ access: "delete"
33038
+ },
33039
+ "dataStoreProvider.get": {
33040
+ capName: "data-store-provider",
33041
+ capScope: "system",
33042
+ addonId: null,
33043
+ access: "view"
33044
+ },
33045
+ "dataStoreProvider.getEngineInfo": {
33046
+ capName: "data-store-provider",
33047
+ capScope: "system",
33048
+ addonId: null,
33049
+ access: "view"
33050
+ },
33051
+ "dataStoreProvider.histogram": {
33052
+ capName: "data-store-provider",
33053
+ capScope: "system",
33054
+ addonId: null,
33055
+ access: "view"
33056
+ },
33057
+ "dataStoreProvider.insert": {
33058
+ capName: "data-store-provider",
33059
+ capScope: "system",
33060
+ addonId: null,
33061
+ access: "create"
33062
+ },
33063
+ "dataStoreProvider.isEmpty": {
33064
+ capName: "data-store-provider",
33065
+ capScope: "system",
33066
+ addonId: null,
33067
+ access: "view"
33068
+ },
33069
+ "dataStoreProvider.query": {
33070
+ capName: "data-store-provider",
33071
+ capScope: "system",
33072
+ addonId: null,
33073
+ access: "view"
33074
+ },
33075
+ "dataStoreProvider.set": {
33076
+ capName: "data-store-provider",
33077
+ capScope: "system",
33078
+ addonId: null,
33079
+ access: "create"
33080
+ },
33081
+ "dataStoreProvider.update": {
33082
+ capName: "data-store-provider",
33083
+ capScope: "system",
33084
+ addonId: null,
33085
+ access: "create"
33086
+ },
32910
33087
  "dayNight.getOptions": {
32911
33088
  capName: "day-night",
32912
33089
  capScope: "device",