@camstack/addon-remote-storage 1.2.61 → 1.2.63

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/s3.addon.js CHANGED
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_shared = require("./shared-61TcI1bp.js");
5
+ const require_shared = require("./shared-CwWrgspC.js");
6
6
  let node_stream = require("node:stream");
7
7
  let _aws_sdk_client_s3 = require("@aws-sdk/client-s3");
8
8
  let _aws_sdk_lib_storage = require("@aws-sdk/lib-storage");
package/dist/s3.addon.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { c as BaseAddon, i as rearmIdleAbort, n as getOptionalBasePath, o as scheduleIdleAbort, s as storageProviderCapability, t as createSessionId } from "./shared-DafV_cel.mjs";
1
+ import { c as BaseAddon, i as rearmIdleAbort, n as getOptionalBasePath, o as scheduleIdleAbort, s as storageProviderCapability, t as createSessionId } from "./shared-Dzyn58Kk.mjs";
2
2
  import { PassThrough } from "node:stream";
3
3
  import { DeleteObjectCommand, GetObjectCommand, HeadBucketCommand, HeadObjectCommand, ListObjectsV2Command, PutObjectCommand, S3Client } from "@aws-sdk/client-s3";
4
4
  import { Upload } from "@aws-sdk/lib-storage";
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_shared = require("./shared-61TcI1bp.js");
5
+ const require_shared = require("./shared-CwWrgspC.js");
6
6
  let ssh2 = require("ssh2");
7
7
  let node_path = require("node:path");
8
8
  node_path = require_shared.__toESM(node_path);
@@ -1,4 +1,4 @@
1
- import { a as safeJoinRemotePath, c as BaseAddon, i as rearmIdleAbort, o as scheduleIdleAbort, r as getRequiredBasePath, s as storageProviderCapability, t as createSessionId } from "./shared-DafV_cel.mjs";
1
+ import { a as safeJoinRemotePath, c as BaseAddon, i as rearmIdleAbort, o as scheduleIdleAbort, r as getRequiredBasePath, s as storageProviderCapability, t as createSessionId } from "./shared-Dzyn58Kk.mjs";
2
2
  import { Client } from "ssh2";
3
3
  import * as path from "node:path";
4
4
  //#region src/providers/sftp/sftp-config-schema.ts
@@ -12645,6 +12645,24 @@ method(_void(), _void(), { kind: "mutation" }), method(_void(), _void(), { kind:
12645
12645
  kind: "mutation",
12646
12646
  auth: "admin"
12647
12647
  });
12648
+ /**
12649
+ * Device Manager capability — hub-side singleton that unifies device persistence,
12650
+ * live registry access, and all management operations into a single tRPC surface.
12651
+ *
12652
+ * Replaces:
12653
+ * - `device-persistence` capability (persistence methods absorbed here)
12654
+ * - `device-management.router.ts` (deleted in Phase 2)
12655
+ * - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
12656
+ *
12657
+ * All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
12658
+ * fork into separate processes but never run on remote cluster agents. Therefore:
12659
+ * - No nodeId routing needed — this is a pure hub singleton.
12660
+ * - The hub's DeviceRegistry is the single source of truth for all live devices.
12661
+ * - No shadow registry or cross-node aggregation required.
12662
+ *
12663
+ * Forked workers register devices back to the hub via `ctx.devices`
12664
+ * (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
12665
+ */
12648
12666
  /** One child-placement directive on a container's `childLayout`. Structurally
12649
12667
  * identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
12650
12668
  * shape for the same field. The child is identified by its re-sync-stable
@@ -18293,6 +18311,9 @@ var RetrainStatusSchema = _enum([
18293
18311
  *
18294
18312
  * `debug` does NOT pin; it is attention, not durability.
18295
18313
  *
18314
+ * `debugNote` is the operator's own words about WHAT should be checked on this
18315
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
18316
+ *
18296
18317
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
18297
18318
  * A favourited track is skipped by retention the same way `staging` is, but
18298
18319
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -18303,6 +18324,21 @@ var TrackFlagFields = {
18303
18324
  markForTrain: boolean().optional(),
18304
18325
  /** Operator marked this track for diagnostic attention. */
18305
18326
  debug: boolean().optional(),
18327
+ /**
18328
+ * What the operator wants CHECKED on this track, in their own words.
18329
+ *
18330
+ * The flag alone says "look at this" and nothing about what for; a debug set
18331
+ * reviewed hours later is a list of tracks with no question attached. Bound
18332
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
18333
+ * and refuses it on a track whose debug is off — so a note can never outlive
18334
+ * the attention it belongs to.
18335
+ *
18336
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
18337
+ * "leave whatever is stored alone", which is what lets a surface turn debug
18338
+ * on without a note (a cancelled prompt) and what lets it edit the note
18339
+ * without touching the flag.
18340
+ */
18341
+ debugNote: string().max(500).optional(),
18306
18342
  /** Operator favourited this track. Pins it against pruning. */
18307
18343
  favourited: boolean().optional()
18308
18344
  };
@@ -18329,6 +18365,12 @@ var TrackFlagsSchema = object({
18329
18365
  trackId: string(),
18330
18366
  markForTrain: boolean(),
18331
18367
  debug: boolean(),
18368
+ /** The note as it STANDS after the write — never absent here (a track with no
18369
+ * note reports `''`), for the same reason the booleans are required: a
18370
+ * surface that has just written must be able to render the note it now owns
18371
+ * without a re-fetch, and an absent key would read as "unchanged" on a
18372
+ * screen that has no previous value to keep. */
18373
+ debugNote: string(),
18332
18374
  favourited: boolean(),
18333
18375
  /** The lifecycle state the boolean was derived from. Required here (unlike on
18334
18376
  * a track row) because this shape is only ever produced by the write body,
@@ -12622,6 +12622,24 @@ method(_void(), _void(), { kind: "mutation" }), method(_void(), _void(), { kind:
12622
12622
  kind: "mutation",
12623
12623
  auth: "admin"
12624
12624
  });
12625
+ /**
12626
+ * Device Manager capability — hub-side singleton that unifies device persistence,
12627
+ * live registry access, and all management operations into a single tRPC surface.
12628
+ *
12629
+ * Replaces:
12630
+ * - `device-persistence` capability (persistence methods absorbed here)
12631
+ * - `device-management.router.ts` (deleted in Phase 2)
12632
+ * - `device-ops.router.ts` (compat layer — deleted; device-provider ops absorbed here)
12633
+ *
12634
+ * All device provider addons (rtsp, onvif, frigate, …) are hub-local: they may
12635
+ * fork into separate processes but never run on remote cluster agents. Therefore:
12636
+ * - No nodeId routing needed — this is a pure hub singleton.
12637
+ * - The hub's DeviceRegistry is the single source of truth for all live devices.
12638
+ * - No shadow registry or cross-node aggregation required.
12639
+ *
12640
+ * Forked workers register devices back to the hub via `ctx.devices`
12641
+ * (DeviceManagerApi → ctx.api.deviceManager.registerDevice), same as today.
12642
+ */
12625
12643
  /** One child-placement directive on a container's `childLayout`. Structurally
12626
12644
  * identical to `ChildLayoutEntry` in `device-management.ts` — the cap wire
12627
12645
  * shape for the same field. The child is identified by its re-sync-stable
@@ -18270,6 +18288,9 @@ var RetrainStatusSchema = _enum([
18270
18288
  *
18271
18289
  * `debug` does NOT pin; it is attention, not durability.
18272
18290
  *
18291
+ * `debugNote` is the operator's own words about WHAT should be checked on this
18292
+ * track, and it lives and dies with `debug` — see {@link MAX_TRACK_DEBUG_NOTE_LEN}.
18293
+ *
18273
18294
  * `favourited` IS a BOOLEAN pin (durability bit), not a retrain lifecycle.
18274
18295
  * A favourited track is skipped by retention the same way `staging` is, but
18275
18296
  * it does not enter `none|staging|trained` and has no staging budget.
@@ -18280,6 +18301,21 @@ var TrackFlagFields = {
18280
18301
  markForTrain: boolean().optional(),
18281
18302
  /** Operator marked this track for diagnostic attention. */
18282
18303
  debug: boolean().optional(),
18304
+ /**
18305
+ * What the operator wants CHECKED on this track, in their own words.
18306
+ *
18307
+ * The flag alone says "look at this" and nothing about what for; a debug set
18308
+ * reviewed hours later is a list of tracks with no question attached. Bound
18309
+ * to `debug` on the WRITE side — the body clears it when `debug` goes off,
18310
+ * and refuses it on a track whose debug is off — so a note can never outlive
18311
+ * the attention it belongs to.
18312
+ *
18313
+ * `''` is a real value ("marked, nothing to add"); the ABSENT key means
18314
+ * "leave whatever is stored alone", which is what lets a surface turn debug
18315
+ * on without a note (a cancelled prompt) and what lets it edit the note
18316
+ * without touching the flag.
18317
+ */
18318
+ debugNote: string().max(500).optional(),
18283
18319
  /** Operator favourited this track. Pins it against pruning. */
18284
18320
  favourited: boolean().optional()
18285
18321
  };
@@ -18306,6 +18342,12 @@ var TrackFlagsSchema = object({
18306
18342
  trackId: string(),
18307
18343
  markForTrain: boolean(),
18308
18344
  debug: boolean(),
18345
+ /** The note as it STANDS after the write — never absent here (a track with no
18346
+ * note reports `''`), for the same reason the booleans are required: a
18347
+ * surface that has just written must be able to render the note it now owns
18348
+ * without a re-fetch, and an absent key would read as "unchanged" on a
18349
+ * screen that has no previous value to keep. */
18350
+ debugNote: string(),
18309
18351
  favourited: boolean(),
18310
18352
  /** The lifecycle state the boolean was derived from. Required here (unlike on
18311
18353
  * a track row) because this shape is only ever produced by the write body,
package/dist/smb.addon.js CHANGED
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_shared = require("./shared-61TcI1bp.js");
5
+ const require_shared = require("./shared-CwWrgspC.js");
6
6
  let node_crypto = require("node:crypto");
7
7
  let node_path = require("node:path");
8
8
  node_path = require_shared.__toESM(node_path);
@@ -1,4 +1,4 @@
1
- import { c as BaseAddon, i as rearmIdleAbort, o as scheduleIdleAbort, s as storageProviderCapability } from "./shared-DafV_cel.mjs";
1
+ import { c as BaseAddon, i as rearmIdleAbort, o as scheduleIdleAbort, s as storageProviderCapability } from "./shared-Dzyn58Kk.mjs";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import * as path from "node:path";
4
4
  import * as fsp from "node:fs/promises";
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_shared = require("./shared-61TcI1bp.js");
5
+ const require_shared = require("./shared-CwWrgspC.js");
6
6
  let node_stream = require("node:stream");
7
7
  let webdav = require("webdav");
8
8
  //#region src/providers/webdav/webdav-config-schema.ts
@@ -1,4 +1,4 @@
1
- import { a as safeJoinRemotePath, c as BaseAddon, i as rearmIdleAbort, o as scheduleIdleAbort, r as getRequiredBasePath, s as storageProviderCapability, t as createSessionId } from "./shared-DafV_cel.mjs";
1
+ import { a as safeJoinRemotePath, c as BaseAddon, i as rearmIdleAbort, o as scheduleIdleAbort, r as getRequiredBasePath, s as storageProviderCapability, t as createSessionId } from "./shared-Dzyn58Kk.mjs";
2
2
  import { PassThrough } from "node:stream";
3
3
  import { AuthType, createClient } from "webdav";
4
4
  //#region src/providers/webdav/webdav-config-schema.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-remote-storage",
3
- "version": "1.2.61",
3
+ "version": "1.2.63",
4
4
  "description": "Remote storage providers (SFTP, S3, WebDAV, SMB) — unifies remote backends behind the storage-provider cap",
5
5
  "keywords": [
6
6
  "camstack",