@camstack/addon-tailscale 1.2.11 → 1.2.12
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/client/tailscale.addon.js +1 -1
- package/dist/client/tailscale.addon.mjs +1 -1
- package/dist/{dist-BRf5w7H0.mjs → dist-DodL65lc.mjs} +316 -31
- package/dist/{dist-CSc3X4AE.js → dist-GM5pUTqy.js} +316 -31
- package/dist/ingress/tailscale-ingress.addon.js +1 -1
- package/dist/ingress/tailscale-ingress.addon.mjs +1 -1
- package/package.json +1 -1
|
@@ -24,7 +24,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
24
24
|
enumerable: true
|
|
25
25
|
}) : target, mod));
|
|
26
26
|
//#endregion
|
|
27
|
-
const require_dist = require("../dist-
|
|
27
|
+
const require_dist = require("../dist-GM5pUTqy.js");
|
|
28
28
|
let node_child_process = require("node:child_process");
|
|
29
29
|
let node_util = require("node:util");
|
|
30
30
|
let node_fs = require("node:fs");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as EventCategory, n as networkAccessCapability, r as BaseAddon, t as meshNetworkCapability } from "../dist-
|
|
1
|
+
import { i as EventCategory, n as networkAccessCapability, r as BaseAddon, t as meshNetworkCapability } from "../dist-DodL65lc.mjs";
|
|
2
2
|
import { execFile, spawn } from "node:child_process";
|
|
3
3
|
import { promisify } from "node:util";
|
|
4
4
|
import * as fs from "node:fs";
|
|
@@ -7534,12 +7534,11 @@ var RecordingConfigSchema = object({
|
|
|
7534
7534
|
/**
|
|
7535
7535
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
7536
7536
|
*
|
|
7537
|
-
* One shape shared by the recorder
|
|
7538
|
-
*
|
|
7539
|
-
*
|
|
7540
|
-
*
|
|
7541
|
-
*
|
|
7542
|
-
* row on the owning addon's surface.
|
|
7537
|
+
* One shape shared by the recorder and pipeline-analytics internal movers.
|
|
7538
|
+
* The public admin surface is `storage-migration`; child jobs remain in RAM
|
|
7539
|
+
* because copy-if-absent, verify, delete and index/row repoint are resumable.
|
|
7540
|
+
* Each completed/failed run also lands one durable ops-log row on its owning
|
|
7541
|
+
* addon surface.
|
|
7543
7542
|
*/
|
|
7544
7543
|
var RelocateJobStateSchema = _enum([
|
|
7545
7544
|
"running",
|
|
@@ -7566,19 +7565,100 @@ var RelocateJobSchema = object({
|
|
|
7566
7565
|
finishedAt: number().nullable(),
|
|
7567
7566
|
error: string().nullable()
|
|
7568
7567
|
});
|
|
7568
|
+
/** Profile-derived footage selection used only by the migration coordinator:
|
|
7569
|
+
* `recordings` owns high+mid; `recordingsLow` owns low. */
|
|
7570
|
+
var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
|
|
7569
7571
|
var RelocateFootageInputSchema = object({
|
|
7570
|
-
deviceId: number().optional(),
|
|
7571
7572
|
fromLocationId: string(),
|
|
7572
7573
|
toLocationId: string(),
|
|
7573
7574
|
entities: array(_enum(["segments"])).optional(),
|
|
7575
|
+
/** Limits relocation to the logical profile class. Omit only for the
|
|
7576
|
+
* pre-orchestration compatibility path. */
|
|
7577
|
+
footageClass: RelocateFootageClassSchema.optional(),
|
|
7574
7578
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
7575
7579
|
* never allowed to starve live writers. */
|
|
7576
7580
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7577
7581
|
});
|
|
7578
|
-
|
|
7579
|
-
|
|
7582
|
+
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
7583
|
+
* from persistent recording settings: a migration never changes
|
|
7584
|
+
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
7585
|
+
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
7586
|
+
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
7587
|
+
var StorageMigrationMediaMoveInputSchema = object({
|
|
7580
7588
|
toLocationId: string(),
|
|
7581
7589
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7590
|
+
}).extend({ leaseId: string().min(1) });
|
|
7591
|
+
/** The independently selectable logical storage classes. `recordings`
|
|
7592
|
+
* encompasses the high and mid segment profiles; `recordingsLow` is low
|
|
7593
|
+
* segments; `eventMedia` is post-analysis blobs. */
|
|
7594
|
+
var StorageMigrationClassSchema = _enum([
|
|
7595
|
+
"recordings",
|
|
7596
|
+
"recordingsLow",
|
|
7597
|
+
"eventMedia"
|
|
7598
|
+
]);
|
|
7599
|
+
/** A destination is always an existing, fully-qualified location id. The
|
|
7600
|
+
* migration API intentionally never changes a source location's `basePath`:
|
|
7601
|
+
* callers create a new `<type>:<slug>` location, then select it here. */
|
|
7602
|
+
var StorageMigrationDestinationsSchema = object({
|
|
7603
|
+
recordings: string().min(1).optional(),
|
|
7604
|
+
recordingsLow: string().min(1).optional(),
|
|
7605
|
+
eventMedia: string().min(1).optional()
|
|
7606
|
+
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
7607
|
+
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
7608
|
+
var StorageMigrationInputSchema = object({
|
|
7609
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7610
|
+
throttleMbps: number().min(1).max(1e3).optional()
|
|
7611
|
+
});
|
|
7612
|
+
/** The durable coordinator state machine. The only phase that changes default
|
|
7613
|
+
* locations is `repointing`, after every selected mover has completed and been
|
|
7614
|
+
* verified. */
|
|
7615
|
+
var StorageMigrationPhaseSchema = _enum([
|
|
7616
|
+
"planning",
|
|
7617
|
+
"pausing",
|
|
7618
|
+
"moving",
|
|
7619
|
+
"verifying",
|
|
7620
|
+
"repointing",
|
|
7621
|
+
"refreshing",
|
|
7622
|
+
"resuming",
|
|
7623
|
+
"done",
|
|
7624
|
+
"failed",
|
|
7625
|
+
"cancelled"
|
|
7626
|
+
]);
|
|
7627
|
+
var StorageMigrationParticipantSchema = _enum([
|
|
7628
|
+
"pipeline",
|
|
7629
|
+
"recorder",
|
|
7630
|
+
"analytics"
|
|
7631
|
+
]);
|
|
7632
|
+
var StorageMigrationMoveSchema = object({
|
|
7633
|
+
storageClass: StorageMigrationClassSchema,
|
|
7634
|
+
fromLocationId: string(),
|
|
7635
|
+
toLocationId: string(),
|
|
7636
|
+
moverJobId: string().nullable(),
|
|
7637
|
+
state: RelocateJobStateSchema.nullable(),
|
|
7638
|
+
error: string().nullable()
|
|
7639
|
+
});
|
|
7640
|
+
var StorageMigrationJobSchema = object({
|
|
7641
|
+
jobId: string(),
|
|
7642
|
+
phase: StorageMigrationPhaseSchema,
|
|
7643
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7644
|
+
throttleMbps: number(),
|
|
7645
|
+
moves: array(StorageMigrationMoveSchema),
|
|
7646
|
+
pauseLeaseId: string().nullable(),
|
|
7647
|
+
pausedParticipants: array(StorageMigrationParticipantSchema),
|
|
7648
|
+
repointed: boolean(),
|
|
7649
|
+
cancelRequested: boolean(),
|
|
7650
|
+
startedAt: number(),
|
|
7651
|
+
updatedAt: number(),
|
|
7652
|
+
finishedAt: number().nullable(),
|
|
7653
|
+
error: string().nullable()
|
|
7654
|
+
});
|
|
7655
|
+
var StorageMigrationPlanSchema = object({
|
|
7656
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7657
|
+
moves: array(object({
|
|
7658
|
+
storageClass: StorageMigrationClassSchema,
|
|
7659
|
+
fromLocationId: string(),
|
|
7660
|
+
toLocationId: string()
|
|
7661
|
+
}))
|
|
7582
7662
|
});
|
|
7583
7663
|
/**
|
|
7584
7664
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
@@ -15971,13 +16051,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
15971
16051
|
}), method(object({ deviceId: number() }), EventPruneCountsSchema, {
|
|
15972
16052
|
kind: "mutation",
|
|
15973
16053
|
auth: "admin"
|
|
15974
|
-
}), method(
|
|
16054
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
15975
16055
|
kind: "mutation",
|
|
15976
16056
|
auth: "admin"
|
|
15977
|
-
}), method(object({
|
|
15978
|
-
kind: "
|
|
16057
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
16058
|
+
kind: "mutation",
|
|
16059
|
+
auth: "admin"
|
|
16060
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16061
|
+
kind: "mutation",
|
|
16062
|
+
auth: "admin"
|
|
16063
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16064
|
+
kind: "mutation",
|
|
15979
16065
|
auth: "admin"
|
|
15980
|
-
}), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
16066
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
15981
16067
|
kind: "mutation",
|
|
15982
16068
|
auth: "admin"
|
|
15983
16069
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
@@ -17474,7 +17560,13 @@ var NodeInferenceDevicesSchema = object({
|
|
|
17474
17560
|
reachable: boolean(),
|
|
17475
17561
|
devices: array(NodeInferenceDeviceSchema).readonly()
|
|
17476
17562
|
});
|
|
17477
|
-
method(object({
|
|
17563
|
+
method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
17564
|
+
kind: "mutation",
|
|
17565
|
+
auth: "admin"
|
|
17566
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
17567
|
+
kind: "mutation",
|
|
17568
|
+
auth: "admin"
|
|
17569
|
+
}), method(object({
|
|
17478
17570
|
deviceId: number(),
|
|
17479
17571
|
agentNodeId: string()
|
|
17480
17572
|
}), object({ success: literal(true) }), {
|
|
@@ -18148,6 +18240,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
|
|
|
18148
18240
|
locationId: string(),
|
|
18149
18241
|
targetBytes: number().int().positive()
|
|
18150
18242
|
}), EvictResultSchema, { kind: "mutation" });
|
|
18243
|
+
method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
|
|
18244
|
+
kind: "mutation",
|
|
18245
|
+
auth: "admin"
|
|
18246
|
+
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
18247
|
+
kind: "mutation",
|
|
18248
|
+
auth: "admin"
|
|
18249
|
+
});
|
|
18151
18250
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
18152
18251
|
providerId: string().min(1),
|
|
18153
18252
|
displayName: string().min(1),
|
|
@@ -18251,6 +18350,28 @@ var TerminalProfileInfoSchema = object({
|
|
|
18251
18350
|
label: string(),
|
|
18252
18351
|
description: string().optional()
|
|
18253
18352
|
});
|
|
18353
|
+
/**
|
|
18354
|
+
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
18355
|
+
* an instance declares a camera.
|
|
18356
|
+
*/
|
|
18357
|
+
var TerminalInstanceInfoSchema = object({
|
|
18358
|
+
instanceId: string(),
|
|
18359
|
+
cameraStableId: string(),
|
|
18360
|
+
nodeId: string(),
|
|
18361
|
+
profileId: string(),
|
|
18362
|
+
profileLabel: string(),
|
|
18363
|
+
name: string(),
|
|
18364
|
+
enabled: boolean()
|
|
18365
|
+
});
|
|
18366
|
+
var TerminalLegacyCameraSchema = object({
|
|
18367
|
+
stableId: string(),
|
|
18368
|
+
nodeId: string(),
|
|
18369
|
+
profileId: string(),
|
|
18370
|
+
profileLabel: string(),
|
|
18371
|
+
name: string(),
|
|
18372
|
+
/** Only legacy monitor cameras can retain their historic stable identity. */
|
|
18373
|
+
adoptable: boolean()
|
|
18374
|
+
});
|
|
18254
18375
|
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
18255
18376
|
seq: number().int().positive(),
|
|
18256
18377
|
kind: literal("data"),
|
|
@@ -18267,7 +18388,29 @@ var TerminalOutputBatchSchema = object({
|
|
|
18267
18388
|
snapshot: string().optional(),
|
|
18268
18389
|
events: array(TerminalOutputEventSchema).readonly()
|
|
18269
18390
|
});
|
|
18270
|
-
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(
|
|
18391
|
+
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18392
|
+
targetNodeId: string().min(1),
|
|
18393
|
+
profileId: string().min(1),
|
|
18394
|
+
name: string().trim().min(1).max(160).optional()
|
|
18395
|
+
}), TerminalInstanceInfoSchema, {
|
|
18396
|
+
kind: "mutation",
|
|
18397
|
+
auth: "admin"
|
|
18398
|
+
}), method(object({ instanceId: string().min(1) }), _void(), {
|
|
18399
|
+
kind: "mutation",
|
|
18400
|
+
auth: "admin"
|
|
18401
|
+
}), method(object({
|
|
18402
|
+
instanceId: string().min(1),
|
|
18403
|
+
enabled: boolean()
|
|
18404
|
+
}), TerminalInstanceInfoSchema, {
|
|
18405
|
+
kind: "mutation",
|
|
18406
|
+
auth: "admin"
|
|
18407
|
+
}), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
|
|
18408
|
+
stableId: string().min(1),
|
|
18409
|
+
name: string().trim().min(1).max(160).optional()
|
|
18410
|
+
}), TerminalInstanceInfoSchema, {
|
|
18411
|
+
kind: "mutation",
|
|
18412
|
+
auth: "admin"
|
|
18413
|
+
}), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18271
18414
|
profileId: string(),
|
|
18272
18415
|
cols: number().int().positive(),
|
|
18273
18416
|
rows: number().int().positive()
|
|
@@ -18284,7 +18427,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
18284
18427
|
}), method(object({
|
|
18285
18428
|
sessionId: string(),
|
|
18286
18429
|
afterSeq: number().int().nonnegative(),
|
|
18287
|
-
waitMs: number().int().min(0).max(2e3).default(0)
|
|
18430
|
+
waitMs: number().int().min(0).max(2e3).default(0),
|
|
18431
|
+
/**
|
|
18432
|
+
* Wait when a just-opened session has no output yet. Kept opt-in so a
|
|
18433
|
+
* browser's initial repaint remains immediate; the camera snapshot
|
|
18434
|
+
* relay uses it to avoid encoding a blank startup frame.
|
|
18435
|
+
*/
|
|
18436
|
+
waitForOutput: boolean().optional()
|
|
18288
18437
|
}), TerminalOutputBatchSchema, {
|
|
18289
18438
|
kind: "mutation",
|
|
18290
18439
|
auth: "admin",
|
|
@@ -20225,6 +20374,7 @@ var FaceInfoSchema = object({
|
|
|
20225
20374
|
var FaceFilterEnum = _enum([
|
|
20226
20375
|
"unassigned",
|
|
20227
20376
|
"recognized",
|
|
20377
|
+
"identified",
|
|
20228
20378
|
"all"
|
|
20229
20379
|
]);
|
|
20230
20380
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -20253,6 +20403,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
20253
20403
|
kind: "mutation",
|
|
20254
20404
|
auth: "admin"
|
|
20255
20405
|
}), method(object({
|
|
20406
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
20407
|
+
deviceId: number().int().optional(),
|
|
20256
20408
|
limit: number().int().positive().optional(),
|
|
20257
20409
|
filter: FaceFilterEnum.optional(),
|
|
20258
20410
|
/**
|
|
@@ -22079,6 +22231,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
22079
22231
|
capName: string().min(1).max(64),
|
|
22080
22232
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
22081
22233
|
valuePath: string().min(1).max(64)
|
|
22234
|
+
}),
|
|
22235
|
+
object({
|
|
22236
|
+
kind: literal("latest-recognition"),
|
|
22237
|
+
recognition: _enum(["person", "plate"])
|
|
22082
22238
|
})
|
|
22083
22239
|
]);
|
|
22084
22240
|
var OsdSlotBindingSchema = object({
|
|
@@ -22184,6 +22340,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
22184
22340
|
}), object({ success: literal(true) }), {
|
|
22185
22341
|
kind: "mutation",
|
|
22186
22342
|
auth: "admin"
|
|
22343
|
+
}), method(object({
|
|
22344
|
+
sourceDeviceId: number().int(),
|
|
22345
|
+
targetDeviceId: number().int()
|
|
22346
|
+
}), object({
|
|
22347
|
+
copied: number().int().nonnegative(),
|
|
22348
|
+
skipped: number().int().nonnegative()
|
|
22349
|
+
}), {
|
|
22350
|
+
kind: "mutation",
|
|
22351
|
+
auth: "admin"
|
|
22187
22352
|
}), method(object({
|
|
22188
22353
|
deviceId: number().int(),
|
|
22189
22354
|
slotId: string().min(1),
|
|
@@ -23069,13 +23234,19 @@ method(object({
|
|
|
23069
23234
|
}), {
|
|
23070
23235
|
kind: "mutation",
|
|
23071
23236
|
auth: "admin"
|
|
23072
|
-
}), method(
|
|
23237
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
23073
23238
|
kind: "mutation",
|
|
23074
23239
|
auth: "admin"
|
|
23075
|
-
}), method(object({
|
|
23076
|
-
kind: "
|
|
23240
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
23241
|
+
kind: "mutation",
|
|
23077
23242
|
auth: "admin"
|
|
23078
|
-
}), method(
|
|
23243
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
23244
|
+
kind: "mutation",
|
|
23245
|
+
auth: "admin"
|
|
23246
|
+
}), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
|
|
23247
|
+
kind: "mutation",
|
|
23248
|
+
auth: "admin"
|
|
23249
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
23079
23250
|
kind: "mutation",
|
|
23080
23251
|
auth: "admin"
|
|
23081
23252
|
});
|
|
@@ -27197,6 +27368,12 @@ Object.freeze({
|
|
|
27197
27368
|
addonId: null,
|
|
27198
27369
|
access: "delete"
|
|
27199
27370
|
},
|
|
27371
|
+
"osdManager.copyDeviceConfiguration": {
|
|
27372
|
+
capName: "osd-manager",
|
|
27373
|
+
capScope: "system",
|
|
27374
|
+
addonId: null,
|
|
27375
|
+
access: "create"
|
|
27376
|
+
},
|
|
27200
27377
|
"osdManager.getConditionSupport": {
|
|
27201
27378
|
capName: "osd-manager",
|
|
27202
27379
|
capScope: "system",
|
|
@@ -27293,7 +27470,7 @@ Object.freeze({
|
|
|
27293
27470
|
addonId: null,
|
|
27294
27471
|
access: "create"
|
|
27295
27472
|
},
|
|
27296
|
-
"pipelineAnalytics.
|
|
27473
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
27297
27474
|
capName: "pipeline-analytics",
|
|
27298
27475
|
capScope: "device",
|
|
27299
27476
|
addonId: null,
|
|
@@ -27365,12 +27542,6 @@ Object.freeze({
|
|
|
27365
27542
|
addonId: null,
|
|
27366
27543
|
access: "view"
|
|
27367
27544
|
},
|
|
27368
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
27369
|
-
capName: "pipeline-analytics",
|
|
27370
|
-
capScope: "device",
|
|
27371
|
-
addonId: null,
|
|
27372
|
-
access: "view"
|
|
27373
|
-
},
|
|
27374
27545
|
"pipelineAnalytics.getMotionEvents": {
|
|
27375
27546
|
capName: "pipeline-analytics",
|
|
27376
27547
|
capScope: "device",
|
|
@@ -27407,6 +27578,12 @@ Object.freeze({
|
|
|
27407
27578
|
addonId: null,
|
|
27408
27579
|
access: "view"
|
|
27409
27580
|
},
|
|
27581
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
27582
|
+
capName: "pipeline-analytics",
|
|
27583
|
+
capScope: "device",
|
|
27584
|
+
addonId: null,
|
|
27585
|
+
access: "view"
|
|
27586
|
+
},
|
|
27410
27587
|
"pipelineAnalytics.getTrack": {
|
|
27411
27588
|
capName: "pipeline-analytics",
|
|
27412
27589
|
capScope: "device",
|
|
@@ -27485,6 +27662,12 @@ Object.freeze({
|
|
|
27485
27662
|
addonId: null,
|
|
27486
27663
|
access: "view"
|
|
27487
27664
|
},
|
|
27665
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
27666
|
+
capName: "pipeline-analytics",
|
|
27667
|
+
capScope: "device",
|
|
27668
|
+
addonId: null,
|
|
27669
|
+
access: "create"
|
|
27670
|
+
},
|
|
27488
27671
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
27489
27672
|
capName: "pipeline-analytics",
|
|
27490
27673
|
capScope: "device",
|
|
@@ -27515,7 +27698,7 @@ Object.freeze({
|
|
|
27515
27698
|
addonId: null,
|
|
27516
27699
|
access: "create"
|
|
27517
27700
|
},
|
|
27518
|
-
"pipelineAnalytics.
|
|
27701
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
27519
27702
|
capName: "pipeline-analytics",
|
|
27520
27703
|
capScope: "device",
|
|
27521
27704
|
addonId: null,
|
|
@@ -27527,6 +27710,12 @@ Object.freeze({
|
|
|
27527
27710
|
addonId: null,
|
|
27528
27711
|
access: "create"
|
|
27529
27712
|
},
|
|
27713
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
27714
|
+
capName: "pipeline-analytics",
|
|
27715
|
+
capScope: "device",
|
|
27716
|
+
addonId: null,
|
|
27717
|
+
access: "create"
|
|
27718
|
+
},
|
|
27530
27719
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
27531
27720
|
capName: "pipeline-analytics",
|
|
27532
27721
|
capScope: "device",
|
|
@@ -27551,6 +27740,12 @@ Object.freeze({
|
|
|
27551
27740
|
addonId: null,
|
|
27552
27741
|
access: "create"
|
|
27553
27742
|
},
|
|
27743
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
27744
|
+
capName: "pipeline-analytics",
|
|
27745
|
+
capScope: "device",
|
|
27746
|
+
addonId: null,
|
|
27747
|
+
access: "create"
|
|
27748
|
+
},
|
|
27554
27749
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
27555
27750
|
capName: "pipeline-analytics",
|
|
27556
27751
|
capScope: "device",
|
|
@@ -27917,6 +28112,12 @@ Object.freeze({
|
|
|
27917
28112
|
addonId: null,
|
|
27918
28113
|
access: "view"
|
|
27919
28114
|
},
|
|
28115
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
28116
|
+
capName: "pipeline-orchestrator",
|
|
28117
|
+
capScope: "system",
|
|
28118
|
+
addonId: null,
|
|
28119
|
+
access: "create"
|
|
28120
|
+
},
|
|
27920
28121
|
"pipelineOrchestrator.rebalance": {
|
|
27921
28122
|
capName: "pipeline-orchestrator",
|
|
27922
28123
|
capScope: "system",
|
|
@@ -27941,6 +28142,12 @@ Object.freeze({
|
|
|
27941
28142
|
addonId: null,
|
|
27942
28143
|
access: "view"
|
|
27943
28144
|
},
|
|
28145
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
28146
|
+
capName: "pipeline-orchestrator",
|
|
28147
|
+
capScope: "system",
|
|
28148
|
+
addonId: null,
|
|
28149
|
+
access: "create"
|
|
28150
|
+
},
|
|
27944
28151
|
"pipelineOrchestrator.saveTemplate": {
|
|
27945
28152
|
capName: "pipeline-orchestrator",
|
|
27946
28153
|
capScope: "system",
|
|
@@ -28337,7 +28544,7 @@ Object.freeze({
|
|
|
28337
28544
|
addonId: null,
|
|
28338
28545
|
access: "create"
|
|
28339
28546
|
},
|
|
28340
|
-
"recording.
|
|
28547
|
+
"recording.cancelStorageMigrationMove": {
|
|
28341
28548
|
capName: "recording",
|
|
28342
28549
|
capScope: "system",
|
|
28343
28550
|
addonId: null,
|
|
@@ -28373,7 +28580,7 @@ Object.freeze({
|
|
|
28373
28580
|
addonId: null,
|
|
28374
28581
|
access: "view"
|
|
28375
28582
|
},
|
|
28376
|
-
"recording.
|
|
28583
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
28377
28584
|
capName: "recording",
|
|
28378
28585
|
capScope: "system",
|
|
28379
28586
|
addonId: null,
|
|
@@ -28397,6 +28604,12 @@ Object.freeze({
|
|
|
28397
28604
|
addonId: null,
|
|
28398
28605
|
access: "view"
|
|
28399
28606
|
},
|
|
28607
|
+
"recording.pauseForStorageMigration": {
|
|
28608
|
+
capName: "recording",
|
|
28609
|
+
capScope: "system",
|
|
28610
|
+
addonId: null,
|
|
28611
|
+
access: "create"
|
|
28612
|
+
},
|
|
28400
28613
|
"recording.pruneFootage": {
|
|
28401
28614
|
capName: "recording",
|
|
28402
28615
|
capScope: "system",
|
|
@@ -28415,7 +28628,7 @@ Object.freeze({
|
|
|
28415
28628
|
addonId: null,
|
|
28416
28629
|
access: "view"
|
|
28417
28630
|
},
|
|
28418
|
-
"recording.
|
|
28631
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
28419
28632
|
capName: "recording",
|
|
28420
28633
|
capScope: "system",
|
|
28421
28634
|
addonId: null,
|
|
@@ -28439,12 +28652,24 @@ Object.freeze({
|
|
|
28439
28652
|
addonId: null,
|
|
28440
28653
|
access: "create"
|
|
28441
28654
|
},
|
|
28655
|
+
"recording.resumeForStorageMigration": {
|
|
28656
|
+
capName: "recording",
|
|
28657
|
+
capScope: "system",
|
|
28658
|
+
addonId: null,
|
|
28659
|
+
access: "create"
|
|
28660
|
+
},
|
|
28442
28661
|
"recording.setDeviceConfig": {
|
|
28443
28662
|
capName: "recording",
|
|
28444
28663
|
capScope: "system",
|
|
28445
28664
|
addonId: null,
|
|
28446
28665
|
access: "create"
|
|
28447
28666
|
},
|
|
28667
|
+
"recording.startStorageMigrationMove": {
|
|
28668
|
+
capName: "recording",
|
|
28669
|
+
capScope: "system",
|
|
28670
|
+
addonId: null,
|
|
28671
|
+
access: "create"
|
|
28672
|
+
},
|
|
28448
28673
|
"recordingExport.cancelExport": {
|
|
28449
28674
|
capName: "recordingExport",
|
|
28450
28675
|
capScope: "system",
|
|
@@ -28835,6 +29060,30 @@ Object.freeze({
|
|
|
28835
29060
|
addonId: null,
|
|
28836
29061
|
access: "view"
|
|
28837
29062
|
},
|
|
29063
|
+
"storageMigration.cancel": {
|
|
29064
|
+
capName: "storage-migration",
|
|
29065
|
+
capScope: "system",
|
|
29066
|
+
addonId: null,
|
|
29067
|
+
access: "create"
|
|
29068
|
+
},
|
|
29069
|
+
"storageMigration.plan": {
|
|
29070
|
+
capName: "storage-migration",
|
|
29071
|
+
capScope: "system",
|
|
29072
|
+
addonId: null,
|
|
29073
|
+
access: "view"
|
|
29074
|
+
},
|
|
29075
|
+
"storageMigration.start": {
|
|
29076
|
+
capName: "storage-migration",
|
|
29077
|
+
capScope: "system",
|
|
29078
|
+
addonId: null,
|
|
29079
|
+
access: "create"
|
|
29080
|
+
},
|
|
29081
|
+
"storageMigration.status": {
|
|
29082
|
+
capName: "storage-migration",
|
|
29083
|
+
capScope: "system",
|
|
29084
|
+
addonId: null,
|
|
29085
|
+
access: "view"
|
|
29086
|
+
},
|
|
28838
29087
|
"storageProvider.abortUpload": {
|
|
28839
29088
|
capName: "storage-provider",
|
|
28840
29089
|
capScope: "system",
|
|
@@ -29213,12 +29462,42 @@ Object.freeze({
|
|
|
29213
29462
|
addonId: null,
|
|
29214
29463
|
access: "create"
|
|
29215
29464
|
},
|
|
29465
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
29466
|
+
capName: "terminal-session",
|
|
29467
|
+
capScope: "system",
|
|
29468
|
+
addonId: null,
|
|
29469
|
+
access: "create"
|
|
29470
|
+
},
|
|
29216
29471
|
"terminalSession.close": {
|
|
29217
29472
|
capName: "terminal-session",
|
|
29218
29473
|
capScope: "system",
|
|
29219
29474
|
addonId: null,
|
|
29220
29475
|
access: "create"
|
|
29221
29476
|
},
|
|
29477
|
+
"terminalSession.createInstance": {
|
|
29478
|
+
capName: "terminal-session",
|
|
29479
|
+
capScope: "system",
|
|
29480
|
+
addonId: null,
|
|
29481
|
+
access: "create"
|
|
29482
|
+
},
|
|
29483
|
+
"terminalSession.deleteInstance": {
|
|
29484
|
+
capName: "terminal-session",
|
|
29485
|
+
capScope: "system",
|
|
29486
|
+
addonId: null,
|
|
29487
|
+
access: "delete"
|
|
29488
|
+
},
|
|
29489
|
+
"terminalSession.listInstances": {
|
|
29490
|
+
capName: "terminal-session",
|
|
29491
|
+
capScope: "system",
|
|
29492
|
+
addonId: null,
|
|
29493
|
+
access: "view"
|
|
29494
|
+
},
|
|
29495
|
+
"terminalSession.listLegacyCameras": {
|
|
29496
|
+
capName: "terminal-session",
|
|
29497
|
+
capScope: "system",
|
|
29498
|
+
addonId: null,
|
|
29499
|
+
access: "view"
|
|
29500
|
+
},
|
|
29222
29501
|
"terminalSession.listProfiles": {
|
|
29223
29502
|
capName: "terminal-session",
|
|
29224
29503
|
capScope: "system",
|
|
@@ -29249,6 +29528,12 @@ Object.freeze({
|
|
|
29249
29528
|
addonId: null,
|
|
29250
29529
|
access: "create"
|
|
29251
29530
|
},
|
|
29531
|
+
"terminalSession.setInstanceEnabled": {
|
|
29532
|
+
capName: "terminal-session",
|
|
29533
|
+
capScope: "system",
|
|
29534
|
+
addonId: null,
|
|
29535
|
+
access: "create"
|
|
29536
|
+
},
|
|
29252
29537
|
"terminalSession.writeInput": {
|
|
29253
29538
|
capName: "terminal-session",
|
|
29254
29539
|
capScope: "system",
|
|
@@ -7534,12 +7534,11 @@ var RecordingConfigSchema = object({
|
|
|
7534
7534
|
/**
|
|
7535
7535
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
7536
7536
|
*
|
|
7537
|
-
* One shape shared by the recorder
|
|
7538
|
-
*
|
|
7539
|
-
*
|
|
7540
|
-
*
|
|
7541
|
-
*
|
|
7542
|
-
* row on the owning addon's surface.
|
|
7537
|
+
* One shape shared by the recorder and pipeline-analytics internal movers.
|
|
7538
|
+
* The public admin surface is `storage-migration`; child jobs remain in RAM
|
|
7539
|
+
* because copy-if-absent, verify, delete and index/row repoint are resumable.
|
|
7540
|
+
* Each completed/failed run also lands one durable ops-log row on its owning
|
|
7541
|
+
* addon surface.
|
|
7543
7542
|
*/
|
|
7544
7543
|
var RelocateJobStateSchema = _enum([
|
|
7545
7544
|
"running",
|
|
@@ -7566,19 +7565,100 @@ var RelocateJobSchema = object({
|
|
|
7566
7565
|
finishedAt: number().nullable(),
|
|
7567
7566
|
error: string().nullable()
|
|
7568
7567
|
});
|
|
7568
|
+
/** Profile-derived footage selection used only by the migration coordinator:
|
|
7569
|
+
* `recordings` owns high+mid; `recordingsLow` owns low. */
|
|
7570
|
+
var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
|
|
7569
7571
|
var RelocateFootageInputSchema = object({
|
|
7570
|
-
deviceId: number().optional(),
|
|
7571
7572
|
fromLocationId: string(),
|
|
7572
7573
|
toLocationId: string(),
|
|
7573
7574
|
entities: array(_enum(["segments"])).optional(),
|
|
7575
|
+
/** Limits relocation to the logical profile class. Omit only for the
|
|
7576
|
+
* pre-orchestration compatibility path. */
|
|
7577
|
+
footageClass: RelocateFootageClassSchema.optional(),
|
|
7574
7578
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
7575
7579
|
* never allowed to starve live writers. */
|
|
7576
7580
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7577
7581
|
});
|
|
7578
|
-
|
|
7579
|
-
|
|
7582
|
+
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
7583
|
+
* from persistent recording settings: a migration never changes
|
|
7584
|
+
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
7585
|
+
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
7586
|
+
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
7587
|
+
var StorageMigrationMediaMoveInputSchema = object({
|
|
7580
7588
|
toLocationId: string(),
|
|
7581
7589
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7590
|
+
}).extend({ leaseId: string().min(1) });
|
|
7591
|
+
/** The independently selectable logical storage classes. `recordings`
|
|
7592
|
+
* encompasses the high and mid segment profiles; `recordingsLow` is low
|
|
7593
|
+
* segments; `eventMedia` is post-analysis blobs. */
|
|
7594
|
+
var StorageMigrationClassSchema = _enum([
|
|
7595
|
+
"recordings",
|
|
7596
|
+
"recordingsLow",
|
|
7597
|
+
"eventMedia"
|
|
7598
|
+
]);
|
|
7599
|
+
/** A destination is always an existing, fully-qualified location id. The
|
|
7600
|
+
* migration API intentionally never changes a source location's `basePath`:
|
|
7601
|
+
* callers create a new `<type>:<slug>` location, then select it here. */
|
|
7602
|
+
var StorageMigrationDestinationsSchema = object({
|
|
7603
|
+
recordings: string().min(1).optional(),
|
|
7604
|
+
recordingsLow: string().min(1).optional(),
|
|
7605
|
+
eventMedia: string().min(1).optional()
|
|
7606
|
+
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
7607
|
+
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
7608
|
+
var StorageMigrationInputSchema = object({
|
|
7609
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7610
|
+
throttleMbps: number().min(1).max(1e3).optional()
|
|
7611
|
+
});
|
|
7612
|
+
/** The durable coordinator state machine. The only phase that changes default
|
|
7613
|
+
* locations is `repointing`, after every selected mover has completed and been
|
|
7614
|
+
* verified. */
|
|
7615
|
+
var StorageMigrationPhaseSchema = _enum([
|
|
7616
|
+
"planning",
|
|
7617
|
+
"pausing",
|
|
7618
|
+
"moving",
|
|
7619
|
+
"verifying",
|
|
7620
|
+
"repointing",
|
|
7621
|
+
"refreshing",
|
|
7622
|
+
"resuming",
|
|
7623
|
+
"done",
|
|
7624
|
+
"failed",
|
|
7625
|
+
"cancelled"
|
|
7626
|
+
]);
|
|
7627
|
+
var StorageMigrationParticipantSchema = _enum([
|
|
7628
|
+
"pipeline",
|
|
7629
|
+
"recorder",
|
|
7630
|
+
"analytics"
|
|
7631
|
+
]);
|
|
7632
|
+
var StorageMigrationMoveSchema = object({
|
|
7633
|
+
storageClass: StorageMigrationClassSchema,
|
|
7634
|
+
fromLocationId: string(),
|
|
7635
|
+
toLocationId: string(),
|
|
7636
|
+
moverJobId: string().nullable(),
|
|
7637
|
+
state: RelocateJobStateSchema.nullable(),
|
|
7638
|
+
error: string().nullable()
|
|
7639
|
+
});
|
|
7640
|
+
var StorageMigrationJobSchema = object({
|
|
7641
|
+
jobId: string(),
|
|
7642
|
+
phase: StorageMigrationPhaseSchema,
|
|
7643
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7644
|
+
throttleMbps: number(),
|
|
7645
|
+
moves: array(StorageMigrationMoveSchema),
|
|
7646
|
+
pauseLeaseId: string().nullable(),
|
|
7647
|
+
pausedParticipants: array(StorageMigrationParticipantSchema),
|
|
7648
|
+
repointed: boolean(),
|
|
7649
|
+
cancelRequested: boolean(),
|
|
7650
|
+
startedAt: number(),
|
|
7651
|
+
updatedAt: number(),
|
|
7652
|
+
finishedAt: number().nullable(),
|
|
7653
|
+
error: string().nullable()
|
|
7654
|
+
});
|
|
7655
|
+
var StorageMigrationPlanSchema = object({
|
|
7656
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7657
|
+
moves: array(object({
|
|
7658
|
+
storageClass: StorageMigrationClassSchema,
|
|
7659
|
+
fromLocationId: string(),
|
|
7660
|
+
toLocationId: string()
|
|
7661
|
+
}))
|
|
7582
7662
|
});
|
|
7583
7663
|
/**
|
|
7584
7664
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
@@ -15971,13 +16051,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
15971
16051
|
}), method(object({ deviceId: number() }), EventPruneCountsSchema, {
|
|
15972
16052
|
kind: "mutation",
|
|
15973
16053
|
auth: "admin"
|
|
15974
|
-
}), method(
|
|
16054
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
15975
16055
|
kind: "mutation",
|
|
15976
16056
|
auth: "admin"
|
|
15977
|
-
}), method(object({
|
|
15978
|
-
kind: "
|
|
16057
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
16058
|
+
kind: "mutation",
|
|
16059
|
+
auth: "admin"
|
|
16060
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16061
|
+
kind: "mutation",
|
|
16062
|
+
auth: "admin"
|
|
16063
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16064
|
+
kind: "mutation",
|
|
15979
16065
|
auth: "admin"
|
|
15980
|
-
}), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
16066
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
15981
16067
|
kind: "mutation",
|
|
15982
16068
|
auth: "admin"
|
|
15983
16069
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
@@ -17474,7 +17560,13 @@ var NodeInferenceDevicesSchema = object({
|
|
|
17474
17560
|
reachable: boolean(),
|
|
17475
17561
|
devices: array(NodeInferenceDeviceSchema).readonly()
|
|
17476
17562
|
});
|
|
17477
|
-
method(object({
|
|
17563
|
+
method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
17564
|
+
kind: "mutation",
|
|
17565
|
+
auth: "admin"
|
|
17566
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
17567
|
+
kind: "mutation",
|
|
17568
|
+
auth: "admin"
|
|
17569
|
+
}), method(object({
|
|
17478
17570
|
deviceId: number(),
|
|
17479
17571
|
agentNodeId: string()
|
|
17480
17572
|
}), object({ success: literal(true) }), {
|
|
@@ -18148,6 +18240,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
|
|
|
18148
18240
|
locationId: string(),
|
|
18149
18241
|
targetBytes: number().int().positive()
|
|
18150
18242
|
}), EvictResultSchema, { kind: "mutation" });
|
|
18243
|
+
method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
|
|
18244
|
+
kind: "mutation",
|
|
18245
|
+
auth: "admin"
|
|
18246
|
+
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
18247
|
+
kind: "mutation",
|
|
18248
|
+
auth: "admin"
|
|
18249
|
+
});
|
|
18151
18250
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
18152
18251
|
providerId: string().min(1),
|
|
18153
18252
|
displayName: string().min(1),
|
|
@@ -18251,6 +18350,28 @@ var TerminalProfileInfoSchema = object({
|
|
|
18251
18350
|
label: string(),
|
|
18252
18351
|
description: string().optional()
|
|
18253
18352
|
});
|
|
18353
|
+
/**
|
|
18354
|
+
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
18355
|
+
* an instance declares a camera.
|
|
18356
|
+
*/
|
|
18357
|
+
var TerminalInstanceInfoSchema = object({
|
|
18358
|
+
instanceId: string(),
|
|
18359
|
+
cameraStableId: string(),
|
|
18360
|
+
nodeId: string(),
|
|
18361
|
+
profileId: string(),
|
|
18362
|
+
profileLabel: string(),
|
|
18363
|
+
name: string(),
|
|
18364
|
+
enabled: boolean()
|
|
18365
|
+
});
|
|
18366
|
+
var TerminalLegacyCameraSchema = object({
|
|
18367
|
+
stableId: string(),
|
|
18368
|
+
nodeId: string(),
|
|
18369
|
+
profileId: string(),
|
|
18370
|
+
profileLabel: string(),
|
|
18371
|
+
name: string(),
|
|
18372
|
+
/** Only legacy monitor cameras can retain their historic stable identity. */
|
|
18373
|
+
adoptable: boolean()
|
|
18374
|
+
});
|
|
18254
18375
|
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
18255
18376
|
seq: number().int().positive(),
|
|
18256
18377
|
kind: literal("data"),
|
|
@@ -18267,7 +18388,29 @@ var TerminalOutputBatchSchema = object({
|
|
|
18267
18388
|
snapshot: string().optional(),
|
|
18268
18389
|
events: array(TerminalOutputEventSchema).readonly()
|
|
18269
18390
|
});
|
|
18270
|
-
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(
|
|
18391
|
+
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18392
|
+
targetNodeId: string().min(1),
|
|
18393
|
+
profileId: string().min(1),
|
|
18394
|
+
name: string().trim().min(1).max(160).optional()
|
|
18395
|
+
}), TerminalInstanceInfoSchema, {
|
|
18396
|
+
kind: "mutation",
|
|
18397
|
+
auth: "admin"
|
|
18398
|
+
}), method(object({ instanceId: string().min(1) }), _void(), {
|
|
18399
|
+
kind: "mutation",
|
|
18400
|
+
auth: "admin"
|
|
18401
|
+
}), method(object({
|
|
18402
|
+
instanceId: string().min(1),
|
|
18403
|
+
enabled: boolean()
|
|
18404
|
+
}), TerminalInstanceInfoSchema, {
|
|
18405
|
+
kind: "mutation",
|
|
18406
|
+
auth: "admin"
|
|
18407
|
+
}), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
|
|
18408
|
+
stableId: string().min(1),
|
|
18409
|
+
name: string().trim().min(1).max(160).optional()
|
|
18410
|
+
}), TerminalInstanceInfoSchema, {
|
|
18411
|
+
kind: "mutation",
|
|
18412
|
+
auth: "admin"
|
|
18413
|
+
}), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18271
18414
|
profileId: string(),
|
|
18272
18415
|
cols: number().int().positive(),
|
|
18273
18416
|
rows: number().int().positive()
|
|
@@ -18284,7 +18427,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
18284
18427
|
}), method(object({
|
|
18285
18428
|
sessionId: string(),
|
|
18286
18429
|
afterSeq: number().int().nonnegative(),
|
|
18287
|
-
waitMs: number().int().min(0).max(2e3).default(0)
|
|
18430
|
+
waitMs: number().int().min(0).max(2e3).default(0),
|
|
18431
|
+
/**
|
|
18432
|
+
* Wait when a just-opened session has no output yet. Kept opt-in so a
|
|
18433
|
+
* browser's initial repaint remains immediate; the camera snapshot
|
|
18434
|
+
* relay uses it to avoid encoding a blank startup frame.
|
|
18435
|
+
*/
|
|
18436
|
+
waitForOutput: boolean().optional()
|
|
18288
18437
|
}), TerminalOutputBatchSchema, {
|
|
18289
18438
|
kind: "mutation",
|
|
18290
18439
|
auth: "admin",
|
|
@@ -20225,6 +20374,7 @@ var FaceInfoSchema = object({
|
|
|
20225
20374
|
var FaceFilterEnum = _enum([
|
|
20226
20375
|
"unassigned",
|
|
20227
20376
|
"recognized",
|
|
20377
|
+
"identified",
|
|
20228
20378
|
"all"
|
|
20229
20379
|
]);
|
|
20230
20380
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -20253,6 +20403,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
20253
20403
|
kind: "mutation",
|
|
20254
20404
|
auth: "admin"
|
|
20255
20405
|
}), method(object({
|
|
20406
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
20407
|
+
deviceId: number().int().optional(),
|
|
20256
20408
|
limit: number().int().positive().optional(),
|
|
20257
20409
|
filter: FaceFilterEnum.optional(),
|
|
20258
20410
|
/**
|
|
@@ -22079,6 +22231,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
22079
22231
|
capName: string().min(1).max(64),
|
|
22080
22232
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
22081
22233
|
valuePath: string().min(1).max(64)
|
|
22234
|
+
}),
|
|
22235
|
+
object({
|
|
22236
|
+
kind: literal("latest-recognition"),
|
|
22237
|
+
recognition: _enum(["person", "plate"])
|
|
22082
22238
|
})
|
|
22083
22239
|
]);
|
|
22084
22240
|
var OsdSlotBindingSchema = object({
|
|
@@ -22184,6 +22340,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
22184
22340
|
}), object({ success: literal(true) }), {
|
|
22185
22341
|
kind: "mutation",
|
|
22186
22342
|
auth: "admin"
|
|
22343
|
+
}), method(object({
|
|
22344
|
+
sourceDeviceId: number().int(),
|
|
22345
|
+
targetDeviceId: number().int()
|
|
22346
|
+
}), object({
|
|
22347
|
+
copied: number().int().nonnegative(),
|
|
22348
|
+
skipped: number().int().nonnegative()
|
|
22349
|
+
}), {
|
|
22350
|
+
kind: "mutation",
|
|
22351
|
+
auth: "admin"
|
|
22187
22352
|
}), method(object({
|
|
22188
22353
|
deviceId: number().int(),
|
|
22189
22354
|
slotId: string().min(1),
|
|
@@ -23069,13 +23234,19 @@ method(object({
|
|
|
23069
23234
|
}), {
|
|
23070
23235
|
kind: "mutation",
|
|
23071
23236
|
auth: "admin"
|
|
23072
|
-
}), method(
|
|
23237
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
23073
23238
|
kind: "mutation",
|
|
23074
23239
|
auth: "admin"
|
|
23075
|
-
}), method(object({
|
|
23076
|
-
kind: "
|
|
23240
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
23241
|
+
kind: "mutation",
|
|
23077
23242
|
auth: "admin"
|
|
23078
|
-
}), method(
|
|
23243
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
23244
|
+
kind: "mutation",
|
|
23245
|
+
auth: "admin"
|
|
23246
|
+
}), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
|
|
23247
|
+
kind: "mutation",
|
|
23248
|
+
auth: "admin"
|
|
23249
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
23079
23250
|
kind: "mutation",
|
|
23080
23251
|
auth: "admin"
|
|
23081
23252
|
});
|
|
@@ -27197,6 +27368,12 @@ Object.freeze({
|
|
|
27197
27368
|
addonId: null,
|
|
27198
27369
|
access: "delete"
|
|
27199
27370
|
},
|
|
27371
|
+
"osdManager.copyDeviceConfiguration": {
|
|
27372
|
+
capName: "osd-manager",
|
|
27373
|
+
capScope: "system",
|
|
27374
|
+
addonId: null,
|
|
27375
|
+
access: "create"
|
|
27376
|
+
},
|
|
27200
27377
|
"osdManager.getConditionSupport": {
|
|
27201
27378
|
capName: "osd-manager",
|
|
27202
27379
|
capScope: "system",
|
|
@@ -27293,7 +27470,7 @@ Object.freeze({
|
|
|
27293
27470
|
addonId: null,
|
|
27294
27471
|
access: "create"
|
|
27295
27472
|
},
|
|
27296
|
-
"pipelineAnalytics.
|
|
27473
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
27297
27474
|
capName: "pipeline-analytics",
|
|
27298
27475
|
capScope: "device",
|
|
27299
27476
|
addonId: null,
|
|
@@ -27365,12 +27542,6 @@ Object.freeze({
|
|
|
27365
27542
|
addonId: null,
|
|
27366
27543
|
access: "view"
|
|
27367
27544
|
},
|
|
27368
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
27369
|
-
capName: "pipeline-analytics",
|
|
27370
|
-
capScope: "device",
|
|
27371
|
-
addonId: null,
|
|
27372
|
-
access: "view"
|
|
27373
|
-
},
|
|
27374
27545
|
"pipelineAnalytics.getMotionEvents": {
|
|
27375
27546
|
capName: "pipeline-analytics",
|
|
27376
27547
|
capScope: "device",
|
|
@@ -27407,6 +27578,12 @@ Object.freeze({
|
|
|
27407
27578
|
addonId: null,
|
|
27408
27579
|
access: "view"
|
|
27409
27580
|
},
|
|
27581
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
27582
|
+
capName: "pipeline-analytics",
|
|
27583
|
+
capScope: "device",
|
|
27584
|
+
addonId: null,
|
|
27585
|
+
access: "view"
|
|
27586
|
+
},
|
|
27410
27587
|
"pipelineAnalytics.getTrack": {
|
|
27411
27588
|
capName: "pipeline-analytics",
|
|
27412
27589
|
capScope: "device",
|
|
@@ -27485,6 +27662,12 @@ Object.freeze({
|
|
|
27485
27662
|
addonId: null,
|
|
27486
27663
|
access: "view"
|
|
27487
27664
|
},
|
|
27665
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
27666
|
+
capName: "pipeline-analytics",
|
|
27667
|
+
capScope: "device",
|
|
27668
|
+
addonId: null,
|
|
27669
|
+
access: "create"
|
|
27670
|
+
},
|
|
27488
27671
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
27489
27672
|
capName: "pipeline-analytics",
|
|
27490
27673
|
capScope: "device",
|
|
@@ -27515,7 +27698,7 @@ Object.freeze({
|
|
|
27515
27698
|
addonId: null,
|
|
27516
27699
|
access: "create"
|
|
27517
27700
|
},
|
|
27518
|
-
"pipelineAnalytics.
|
|
27701
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
27519
27702
|
capName: "pipeline-analytics",
|
|
27520
27703
|
capScope: "device",
|
|
27521
27704
|
addonId: null,
|
|
@@ -27527,6 +27710,12 @@ Object.freeze({
|
|
|
27527
27710
|
addonId: null,
|
|
27528
27711
|
access: "create"
|
|
27529
27712
|
},
|
|
27713
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
27714
|
+
capName: "pipeline-analytics",
|
|
27715
|
+
capScope: "device",
|
|
27716
|
+
addonId: null,
|
|
27717
|
+
access: "create"
|
|
27718
|
+
},
|
|
27530
27719
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
27531
27720
|
capName: "pipeline-analytics",
|
|
27532
27721
|
capScope: "device",
|
|
@@ -27551,6 +27740,12 @@ Object.freeze({
|
|
|
27551
27740
|
addonId: null,
|
|
27552
27741
|
access: "create"
|
|
27553
27742
|
},
|
|
27743
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
27744
|
+
capName: "pipeline-analytics",
|
|
27745
|
+
capScope: "device",
|
|
27746
|
+
addonId: null,
|
|
27747
|
+
access: "create"
|
|
27748
|
+
},
|
|
27554
27749
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
27555
27750
|
capName: "pipeline-analytics",
|
|
27556
27751
|
capScope: "device",
|
|
@@ -27917,6 +28112,12 @@ Object.freeze({
|
|
|
27917
28112
|
addonId: null,
|
|
27918
28113
|
access: "view"
|
|
27919
28114
|
},
|
|
28115
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
28116
|
+
capName: "pipeline-orchestrator",
|
|
28117
|
+
capScope: "system",
|
|
28118
|
+
addonId: null,
|
|
28119
|
+
access: "create"
|
|
28120
|
+
},
|
|
27920
28121
|
"pipelineOrchestrator.rebalance": {
|
|
27921
28122
|
capName: "pipeline-orchestrator",
|
|
27922
28123
|
capScope: "system",
|
|
@@ -27941,6 +28142,12 @@ Object.freeze({
|
|
|
27941
28142
|
addonId: null,
|
|
27942
28143
|
access: "view"
|
|
27943
28144
|
},
|
|
28145
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
28146
|
+
capName: "pipeline-orchestrator",
|
|
28147
|
+
capScope: "system",
|
|
28148
|
+
addonId: null,
|
|
28149
|
+
access: "create"
|
|
28150
|
+
},
|
|
27944
28151
|
"pipelineOrchestrator.saveTemplate": {
|
|
27945
28152
|
capName: "pipeline-orchestrator",
|
|
27946
28153
|
capScope: "system",
|
|
@@ -28337,7 +28544,7 @@ Object.freeze({
|
|
|
28337
28544
|
addonId: null,
|
|
28338
28545
|
access: "create"
|
|
28339
28546
|
},
|
|
28340
|
-
"recording.
|
|
28547
|
+
"recording.cancelStorageMigrationMove": {
|
|
28341
28548
|
capName: "recording",
|
|
28342
28549
|
capScope: "system",
|
|
28343
28550
|
addonId: null,
|
|
@@ -28373,7 +28580,7 @@ Object.freeze({
|
|
|
28373
28580
|
addonId: null,
|
|
28374
28581
|
access: "view"
|
|
28375
28582
|
},
|
|
28376
|
-
"recording.
|
|
28583
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
28377
28584
|
capName: "recording",
|
|
28378
28585
|
capScope: "system",
|
|
28379
28586
|
addonId: null,
|
|
@@ -28397,6 +28604,12 @@ Object.freeze({
|
|
|
28397
28604
|
addonId: null,
|
|
28398
28605
|
access: "view"
|
|
28399
28606
|
},
|
|
28607
|
+
"recording.pauseForStorageMigration": {
|
|
28608
|
+
capName: "recording",
|
|
28609
|
+
capScope: "system",
|
|
28610
|
+
addonId: null,
|
|
28611
|
+
access: "create"
|
|
28612
|
+
},
|
|
28400
28613
|
"recording.pruneFootage": {
|
|
28401
28614
|
capName: "recording",
|
|
28402
28615
|
capScope: "system",
|
|
@@ -28415,7 +28628,7 @@ Object.freeze({
|
|
|
28415
28628
|
addonId: null,
|
|
28416
28629
|
access: "view"
|
|
28417
28630
|
},
|
|
28418
|
-
"recording.
|
|
28631
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
28419
28632
|
capName: "recording",
|
|
28420
28633
|
capScope: "system",
|
|
28421
28634
|
addonId: null,
|
|
@@ -28439,12 +28652,24 @@ Object.freeze({
|
|
|
28439
28652
|
addonId: null,
|
|
28440
28653
|
access: "create"
|
|
28441
28654
|
},
|
|
28655
|
+
"recording.resumeForStorageMigration": {
|
|
28656
|
+
capName: "recording",
|
|
28657
|
+
capScope: "system",
|
|
28658
|
+
addonId: null,
|
|
28659
|
+
access: "create"
|
|
28660
|
+
},
|
|
28442
28661
|
"recording.setDeviceConfig": {
|
|
28443
28662
|
capName: "recording",
|
|
28444
28663
|
capScope: "system",
|
|
28445
28664
|
addonId: null,
|
|
28446
28665
|
access: "create"
|
|
28447
28666
|
},
|
|
28667
|
+
"recording.startStorageMigrationMove": {
|
|
28668
|
+
capName: "recording",
|
|
28669
|
+
capScope: "system",
|
|
28670
|
+
addonId: null,
|
|
28671
|
+
access: "create"
|
|
28672
|
+
},
|
|
28448
28673
|
"recordingExport.cancelExport": {
|
|
28449
28674
|
capName: "recordingExport",
|
|
28450
28675
|
capScope: "system",
|
|
@@ -28835,6 +29060,30 @@ Object.freeze({
|
|
|
28835
29060
|
addonId: null,
|
|
28836
29061
|
access: "view"
|
|
28837
29062
|
},
|
|
29063
|
+
"storageMigration.cancel": {
|
|
29064
|
+
capName: "storage-migration",
|
|
29065
|
+
capScope: "system",
|
|
29066
|
+
addonId: null,
|
|
29067
|
+
access: "create"
|
|
29068
|
+
},
|
|
29069
|
+
"storageMigration.plan": {
|
|
29070
|
+
capName: "storage-migration",
|
|
29071
|
+
capScope: "system",
|
|
29072
|
+
addonId: null,
|
|
29073
|
+
access: "view"
|
|
29074
|
+
},
|
|
29075
|
+
"storageMigration.start": {
|
|
29076
|
+
capName: "storage-migration",
|
|
29077
|
+
capScope: "system",
|
|
29078
|
+
addonId: null,
|
|
29079
|
+
access: "create"
|
|
29080
|
+
},
|
|
29081
|
+
"storageMigration.status": {
|
|
29082
|
+
capName: "storage-migration",
|
|
29083
|
+
capScope: "system",
|
|
29084
|
+
addonId: null,
|
|
29085
|
+
access: "view"
|
|
29086
|
+
},
|
|
28838
29087
|
"storageProvider.abortUpload": {
|
|
28839
29088
|
capName: "storage-provider",
|
|
28840
29089
|
capScope: "system",
|
|
@@ -29213,12 +29462,42 @@ Object.freeze({
|
|
|
29213
29462
|
addonId: null,
|
|
29214
29463
|
access: "create"
|
|
29215
29464
|
},
|
|
29465
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
29466
|
+
capName: "terminal-session",
|
|
29467
|
+
capScope: "system",
|
|
29468
|
+
addonId: null,
|
|
29469
|
+
access: "create"
|
|
29470
|
+
},
|
|
29216
29471
|
"terminalSession.close": {
|
|
29217
29472
|
capName: "terminal-session",
|
|
29218
29473
|
capScope: "system",
|
|
29219
29474
|
addonId: null,
|
|
29220
29475
|
access: "create"
|
|
29221
29476
|
},
|
|
29477
|
+
"terminalSession.createInstance": {
|
|
29478
|
+
capName: "terminal-session",
|
|
29479
|
+
capScope: "system",
|
|
29480
|
+
addonId: null,
|
|
29481
|
+
access: "create"
|
|
29482
|
+
},
|
|
29483
|
+
"terminalSession.deleteInstance": {
|
|
29484
|
+
capName: "terminal-session",
|
|
29485
|
+
capScope: "system",
|
|
29486
|
+
addonId: null,
|
|
29487
|
+
access: "delete"
|
|
29488
|
+
},
|
|
29489
|
+
"terminalSession.listInstances": {
|
|
29490
|
+
capName: "terminal-session",
|
|
29491
|
+
capScope: "system",
|
|
29492
|
+
addonId: null,
|
|
29493
|
+
access: "view"
|
|
29494
|
+
},
|
|
29495
|
+
"terminalSession.listLegacyCameras": {
|
|
29496
|
+
capName: "terminal-session",
|
|
29497
|
+
capScope: "system",
|
|
29498
|
+
addonId: null,
|
|
29499
|
+
access: "view"
|
|
29500
|
+
},
|
|
29222
29501
|
"terminalSession.listProfiles": {
|
|
29223
29502
|
capName: "terminal-session",
|
|
29224
29503
|
capScope: "system",
|
|
@@ -29249,6 +29528,12 @@ Object.freeze({
|
|
|
29249
29528
|
addonId: null,
|
|
29250
29529
|
access: "create"
|
|
29251
29530
|
},
|
|
29531
|
+
"terminalSession.setInstanceEnabled": {
|
|
29532
|
+
capName: "terminal-session",
|
|
29533
|
+
capScope: "system",
|
|
29534
|
+
addonId: null,
|
|
29535
|
+
access: "create"
|
|
29536
|
+
},
|
|
29252
29537
|
"terminalSession.writeInput": {
|
|
29253
29538
|
capName: "terminal-session",
|
|
29254
29539
|
capScope: "system",
|
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
5
|
+
const require_dist = require("../dist-GM5pUTqy.js");
|
|
6
6
|
let node_crypto = require("node:crypto");
|
|
7
7
|
let node_child_process = require("node:child_process");
|
|
8
8
|
//#region src/ingress/tailscale-cli.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as EventCategory, n as networkAccessCapability, r as BaseAddon } from "../dist-
|
|
1
|
+
import { i as EventCategory, n as networkAccessCapability, r as BaseAddon } from "../dist-DodL65lc.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import { execFile } from "node:child_process";
|
|
4
4
|
import { promisify } from "node:util";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-tailscale",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.12",
|
|
4
4
|
"description": "Tailscale bundle for CamStack — joins the host to a tailnet (client) and exposes the hub via Serve/Funnel (ingress). Multi-entry npm package shipping 2 addons under a single bundle.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|