@camstack/system 1.2.115 → 1.2.116
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/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
- package/dist/builtins/alerts/alerts.addon.js +1 -1
- package/dist/builtins/alerts/alerts.addon.mjs +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
- package/dist/builtins/console-logging/index.js +1 -1
- package/dist/builtins/console-logging/index.mjs +1 -1
- package/dist/builtins/core-blocks/core-blocks.addon.js +1 -1
- package/dist/builtins/core-blocks/core-blocks.addon.mjs +1 -1
- package/dist/builtins/device-manager/device-manager.addon.js +2 -2
- package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
- package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
- package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
- package/dist/builtins/hub-forwarder/index.js +1 -1
- package/dist/builtins/hub-forwarder/index.mjs +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
- package/dist/builtins/local-auth/local-auth.addon.js +1 -1
- package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
- package/dist/builtins/local-network/local-hostname.d.ts +15 -0
- package/dist/builtins/local-network/local-network.addon.d.ts +31 -7
- package/dist/builtins/local-network/local-network.addon.js +177 -28
- package/dist/builtins/local-network/local-network.addon.mjs +177 -28
- package/dist/builtins/loki-logging/index.js +1 -1
- package/dist/builtins/loki-logging/index.mjs +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
- package/dist/builtins/platform-probe/index.js +1 -1
- package/dist/builtins/platform-probe/index.mjs +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
- package/dist/builtins/snapshot/index.js +1 -1
- package/dist/builtins/snapshot/index.mjs +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +2 -2
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +2 -2
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
- package/dist/builtins/system-config/system-config.addon.js +1 -1
- package/dist/builtins/system-config/system-config.addon.mjs +1 -1
- package/dist/builtins/winston-logging/index.js +1 -1
- package/dist/builtins/winston-logging/index.mjs +1 -1
- package/dist/{dist-Drb54SZD.mjs → dist-BpzbLPel.mjs} +139 -5
- package/dist/{dist-iAwSA2_f.js → dist-Cri60Jd0.js} +139 -5
- package/dist/http/lan-http-bind.d.ts +19 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +29 -472
- package/dist/index.mjs +11 -468
- package/dist/lan-http-bind-BDJm4d-K.mjs +716 -0
- package/dist/lan-http-bind-CZ4EBeD_.js +848 -0
- package/dist/{retired-settings-keys-OfhqQio4.js → retired-settings-keys-BVAxT5XL.js} +1 -1
- package/dist/{retired-settings-keys-Dz5-7gjt.mjs → retired-settings-keys-SrxMH3OT.mjs} +1 -1
- package/dist/tls/cert-manager.d.ts +11 -0
- package/dist/tls/index.d.ts +3 -1
- package/dist/tls/tls-status.d.ts +16 -0
- package/dist/tls/uploaded-cert.d.ts +14 -0
- package/package.json +1 -1
|
@@ -19226,7 +19226,12 @@ var TerminalSessionInfoSchema = z.object({
|
|
|
19226
19226
|
var TerminalProfileInfoSchema = z.object({
|
|
19227
19227
|
profileId: z.string(),
|
|
19228
19228
|
label: z.string(),
|
|
19229
|
-
description: z.string().optional()
|
|
19229
|
+
description: z.string().optional(),
|
|
19230
|
+
/** Spawn defaults the instance form copies on create. */
|
|
19231
|
+
executable: z.string().optional(),
|
|
19232
|
+
args: z.array(z.string()).readonly().optional(),
|
|
19233
|
+
cwd: z.string().optional(),
|
|
19234
|
+
environment: z.array(z.string()).readonly().optional()
|
|
19230
19235
|
});
|
|
19231
19236
|
/**
|
|
19232
19237
|
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
@@ -19239,7 +19244,11 @@ var TerminalInstanceInfoSchema = z.object({
|
|
|
19239
19244
|
profileId: z.string(),
|
|
19240
19245
|
profileLabel: z.string(),
|
|
19241
19246
|
name: z.string(),
|
|
19242
|
-
enabled: z.boolean()
|
|
19247
|
+
enabled: z.boolean(),
|
|
19248
|
+
executable: z.string(),
|
|
19249
|
+
args: z.array(z.string()).readonly(),
|
|
19250
|
+
cwd: z.string(),
|
|
19251
|
+
environment: z.array(z.string()).readonly()
|
|
19243
19252
|
});
|
|
19244
19253
|
var TerminalLegacyCameraSchema = z.object({
|
|
19245
19254
|
stableId: z.string(),
|
|
@@ -19285,7 +19294,22 @@ var terminalSessionCapability = {
|
|
|
19285
19294
|
createInstance: method(z.object({
|
|
19286
19295
|
targetNodeId: z.string().min(1),
|
|
19287
19296
|
profileId: z.string().min(1),
|
|
19288
|
-
name: z.string().trim().min(1).max(160).optional()
|
|
19297
|
+
name: z.string().trim().min(1).max(160).optional(),
|
|
19298
|
+
executable: z.string().max(1024).optional(),
|
|
19299
|
+
args: z.array(z.string().max(2048)).max(64).optional(),
|
|
19300
|
+
cwd: z.string().max(1024).optional(),
|
|
19301
|
+
environment: z.array(z.string().max(4096)).max(64).optional()
|
|
19302
|
+
}), TerminalInstanceInfoSchema, {
|
|
19303
|
+
kind: "mutation",
|
|
19304
|
+
auth: "admin"
|
|
19305
|
+
}),
|
|
19306
|
+
updateInstance: method(z.object({
|
|
19307
|
+
instanceId: z.string().min(1),
|
|
19308
|
+
name: z.string().trim().min(1).max(160).optional(),
|
|
19309
|
+
executable: z.string().max(1024).optional(),
|
|
19310
|
+
args: z.array(z.string().max(2048)).max(64).optional(),
|
|
19311
|
+
cwd: z.string().max(1024).optional(),
|
|
19312
|
+
environment: z.array(z.string().max(4096)).max(64).optional()
|
|
19289
19313
|
}), TerminalInstanceInfoSchema, {
|
|
19290
19314
|
kind: "mutation",
|
|
19291
19315
|
auth: "admin"
|
|
@@ -19320,7 +19344,11 @@ var terminalSessionCapability = {
|
|
|
19320
19344
|
openSession: method(z.object({
|
|
19321
19345
|
profileId: z.string(),
|
|
19322
19346
|
cols: z.number().int().positive(),
|
|
19323
|
-
rows: z.number().int().positive()
|
|
19347
|
+
rows: z.number().int().positive(),
|
|
19348
|
+
executable: z.string().max(1024).optional(),
|
|
19349
|
+
args: z.array(z.string().max(2048)).max(64).optional(),
|
|
19350
|
+
cwd: z.string().max(1024).optional(),
|
|
19351
|
+
environment: z.array(z.string().max(4096)).max(64).optional()
|
|
19324
19352
|
}), TerminalSessionInfoSchema, {
|
|
19325
19353
|
kind: "mutation",
|
|
19326
19354
|
auth: "admin"
|
|
@@ -23919,6 +23947,20 @@ var AllowedAddressesSchema = z.object({
|
|
|
23919
23947
|
* Network Addresses admin page and persisted by the addon.
|
|
23920
23948
|
*/
|
|
23921
23949
|
addresses: z.array(z.string()).readonly() });
|
|
23950
|
+
var TlsStatusSchema = z.object({
|
|
23951
|
+
mode: z.enum([
|
|
23952
|
+
"generated",
|
|
23953
|
+
"uploaded",
|
|
23954
|
+
"disabled"
|
|
23955
|
+
]),
|
|
23956
|
+
leafFingerprintSha256: z.string().nullable(),
|
|
23957
|
+
caFingerprintSha256: z.string().nullable(),
|
|
23958
|
+
validTo: z.string().nullable(),
|
|
23959
|
+
sans: z.array(z.string()),
|
|
23960
|
+
caCertPem: z.string().nullable(),
|
|
23961
|
+
reissueError: z.string().nullable(),
|
|
23962
|
+
restartRequired: z.boolean()
|
|
23963
|
+
});
|
|
23922
23964
|
var localNetworkCapability = {
|
|
23923
23965
|
name: "local-network",
|
|
23924
23966
|
scope: "system",
|
|
@@ -24024,7 +24066,34 @@ var localNetworkCapability = {
|
|
|
24024
24066
|
* when the operator wants to wipe their manual edits and start
|
|
24025
24067
|
* over from the auto-detected best matches.
|
|
24026
24068
|
*/
|
|
24027
|
-
resetAllowlistToBestMatch: method(z.void(), AllowedAddressesSchema, { kind: "mutation" })
|
|
24069
|
+
resetAllowlistToBestMatch: method(z.void(), AllowedAddressesSchema, { kind: "mutation" }),
|
|
24070
|
+
/**
|
|
24071
|
+
* Live TLS material for the Network → Local access certificate card.
|
|
24072
|
+
* LAN HTTP / hostname are addon settings (`globalSettingsSchema`), not
|
|
24073
|
+
* a second store — this query is status, not configuration.
|
|
24074
|
+
*/
|
|
24075
|
+
getTlsStatus: method(z.void(), TlsStatusSchema),
|
|
24076
|
+
/** Issue a new leaf under the existing local CA. Disabled in uploaded mode. */
|
|
24077
|
+
regenerateCertificate: method(z.object({ reason: z.string().optional() }), TlsStatusSchema, {
|
|
24078
|
+
kind: "mutation",
|
|
24079
|
+
auth: "admin"
|
|
24080
|
+
}),
|
|
24081
|
+
/** Replace the served material with operator-supplied PEMs. */
|
|
24082
|
+
uploadCertificate: method(z.object({
|
|
24083
|
+
certPem: z.string().min(1),
|
|
24084
|
+
keyPem: z.string().min(1),
|
|
24085
|
+
caPem: z.string().optional()
|
|
24086
|
+
}), TlsStatusSchema, {
|
|
24087
|
+
kind: "mutation",
|
|
24088
|
+
auth: "admin"
|
|
24089
|
+
}),
|
|
24090
|
+
/** The local CA PEM, or empty when there is none to download. */
|
|
24091
|
+
downloadCa: method(z.void(), z.object({ pem: z.string() })),
|
|
24092
|
+
/** Drop uploaded material and return to the generated local CA. */
|
|
24093
|
+
revertToGeneratedCertificate: method(z.void(), TlsStatusSchema, {
|
|
24094
|
+
kind: "mutation",
|
|
24095
|
+
auth: "admin"
|
|
24096
|
+
})
|
|
24028
24097
|
},
|
|
24029
24098
|
/** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
|
|
24030
24099
|
mount: { kind: "hub-only" }
|
|
@@ -32478,6 +32547,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
32478
32547
|
addonId: null,
|
|
32479
32548
|
access: "create"
|
|
32480
32549
|
},
|
|
32550
|
+
"localNetwork.downloadCa": {
|
|
32551
|
+
capName: "local-network",
|
|
32552
|
+
capScope: "system",
|
|
32553
|
+
addonId: null,
|
|
32554
|
+
access: "view"
|
|
32555
|
+
},
|
|
32481
32556
|
"localNetwork.getAllowedAddresses": {
|
|
32482
32557
|
capName: "local-network",
|
|
32483
32558
|
capScope: "system",
|
|
@@ -32502,18 +32577,36 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
32502
32577
|
addonId: null,
|
|
32503
32578
|
access: "view"
|
|
32504
32579
|
},
|
|
32580
|
+
"localNetwork.getTlsStatus": {
|
|
32581
|
+
capName: "local-network",
|
|
32582
|
+
capScope: "system",
|
|
32583
|
+
addonId: null,
|
|
32584
|
+
access: "view"
|
|
32585
|
+
},
|
|
32505
32586
|
"localNetwork.list": {
|
|
32506
32587
|
capName: "local-network",
|
|
32507
32588
|
capScope: "system",
|
|
32508
32589
|
addonId: null,
|
|
32509
32590
|
access: "view"
|
|
32510
32591
|
},
|
|
32592
|
+
"localNetwork.regenerateCertificate": {
|
|
32593
|
+
capName: "local-network",
|
|
32594
|
+
capScope: "system",
|
|
32595
|
+
addonId: null,
|
|
32596
|
+
access: "create"
|
|
32597
|
+
},
|
|
32511
32598
|
"localNetwork.resetAllowlistToBestMatch": {
|
|
32512
32599
|
capName: "local-network",
|
|
32513
32600
|
capScope: "system",
|
|
32514
32601
|
addonId: null,
|
|
32515
32602
|
access: "delete"
|
|
32516
32603
|
},
|
|
32604
|
+
"localNetwork.revertToGeneratedCertificate": {
|
|
32605
|
+
capName: "local-network",
|
|
32606
|
+
capScope: "system",
|
|
32607
|
+
addonId: null,
|
|
32608
|
+
access: "create"
|
|
32609
|
+
},
|
|
32517
32610
|
"localNetwork.setAllowedAddresses": {
|
|
32518
32611
|
capName: "local-network",
|
|
32519
32612
|
capScope: "system",
|
|
@@ -32526,6 +32619,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
32526
32619
|
addonId: null,
|
|
32527
32620
|
access: "create"
|
|
32528
32621
|
},
|
|
32622
|
+
"localNetwork.uploadCertificate": {
|
|
32623
|
+
capName: "local-network",
|
|
32624
|
+
capScope: "system",
|
|
32625
|
+
addonId: null,
|
|
32626
|
+
access: "create"
|
|
32627
|
+
},
|
|
32529
32628
|
"lockControl.lock": {
|
|
32530
32629
|
capName: "lock-control",
|
|
32531
32630
|
capScope: "device",
|
|
@@ -35406,6 +35505,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
35406
35505
|
addonId: null,
|
|
35407
35506
|
access: "create"
|
|
35408
35507
|
},
|
|
35508
|
+
"terminalSession.updateInstance": {
|
|
35509
|
+
capName: "terminal-session",
|
|
35510
|
+
capScope: "system",
|
|
35511
|
+
addonId: null,
|
|
35512
|
+
access: "create"
|
|
35513
|
+
},
|
|
35409
35514
|
"terminalSession.writeInput": {
|
|
35410
35515
|
capName: "terminal-session",
|
|
35411
35516
|
capScope: "system",
|
|
@@ -38173,6 +38278,35 @@ Object.freeze(Object.fromEntries([{
|
|
|
38173
38278
|
}]
|
|
38174
38279
|
}].map((s) => [s.stepId, s.defaultModelId])));
|
|
38175
38280
|
z.string().min(1);
|
|
38281
|
+
var CLUSTER_STEP_SETTING_FIELDS = [{
|
|
38282
|
+
stepId: "face-embedding",
|
|
38283
|
+
key: "minLandmarkFaceSize",
|
|
38284
|
+
label: "Min face size for recognition (detection px)",
|
|
38285
|
+
description: "Refuse to embed a face smaller than this IN THE DETECTION FRAME. Applies to every node — the enrolled gallery is one index, and two admission floors would fill it from two policies. 0 disables the gate.",
|
|
38286
|
+
type: "slider",
|
|
38287
|
+
min: 0,
|
|
38288
|
+
max: 64,
|
|
38289
|
+
step: 2,
|
|
38290
|
+
default: 24
|
|
38291
|
+
}];
|
|
38292
|
+
function clusterStepSettingKey(stepId, fieldKey) {
|
|
38293
|
+
return `clusterStepSetting:${stepId}:${fieldKey}`;
|
|
38294
|
+
}
|
|
38295
|
+
var ClusterSettingNumberSchema = z.number().finite();
|
|
38296
|
+
function readClusterStepSettings(config) {
|
|
38297
|
+
const out = {};
|
|
38298
|
+
for (const field of CLUSTER_STEP_SETTING_FIELDS) {
|
|
38299
|
+
const parsed = ClusterSettingNumberSchema.safeParse(config[clusterStepSettingKey(field.stepId, field.key)]);
|
|
38300
|
+
const value = parsed.success ? parsed.data : field.default;
|
|
38301
|
+
const existing = out[field.stepId] ?? {};
|
|
38302
|
+
out[field.stepId] = {
|
|
38303
|
+
...existing,
|
|
38304
|
+
[field.key]: value
|
|
38305
|
+
};
|
|
38306
|
+
}
|
|
38307
|
+
return out;
|
|
38308
|
+
}
|
|
38309
|
+
readClusterStepSettings({});
|
|
38176
38310
|
z.object({
|
|
38177
38311
|
/**
|
|
38178
38312
|
* Fraction of the box's own size added on EACH side before cutting.
|
|
@@ -19226,7 +19226,12 @@ var TerminalSessionInfoSchema = zod.z.object({
|
|
|
19226
19226
|
var TerminalProfileInfoSchema = zod.z.object({
|
|
19227
19227
|
profileId: zod.z.string(),
|
|
19228
19228
|
label: zod.z.string(),
|
|
19229
|
-
description: zod.z.string().optional()
|
|
19229
|
+
description: zod.z.string().optional(),
|
|
19230
|
+
/** Spawn defaults the instance form copies on create. */
|
|
19231
|
+
executable: zod.z.string().optional(),
|
|
19232
|
+
args: zod.z.array(zod.z.string()).readonly().optional(),
|
|
19233
|
+
cwd: zod.z.string().optional(),
|
|
19234
|
+
environment: zod.z.array(zod.z.string()).readonly().optional()
|
|
19230
19235
|
});
|
|
19231
19236
|
/**
|
|
19232
19237
|
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
@@ -19239,7 +19244,11 @@ var TerminalInstanceInfoSchema = zod.z.object({
|
|
|
19239
19244
|
profileId: zod.z.string(),
|
|
19240
19245
|
profileLabel: zod.z.string(),
|
|
19241
19246
|
name: zod.z.string(),
|
|
19242
|
-
enabled: zod.z.boolean()
|
|
19247
|
+
enabled: zod.z.boolean(),
|
|
19248
|
+
executable: zod.z.string(),
|
|
19249
|
+
args: zod.z.array(zod.z.string()).readonly(),
|
|
19250
|
+
cwd: zod.z.string(),
|
|
19251
|
+
environment: zod.z.array(zod.z.string()).readonly()
|
|
19243
19252
|
});
|
|
19244
19253
|
var TerminalLegacyCameraSchema = zod.z.object({
|
|
19245
19254
|
stableId: zod.z.string(),
|
|
@@ -19285,7 +19294,22 @@ var terminalSessionCapability = {
|
|
|
19285
19294
|
createInstance: method(zod.z.object({
|
|
19286
19295
|
targetNodeId: zod.z.string().min(1),
|
|
19287
19296
|
profileId: zod.z.string().min(1),
|
|
19288
|
-
name: zod.z.string().trim().min(1).max(160).optional()
|
|
19297
|
+
name: zod.z.string().trim().min(1).max(160).optional(),
|
|
19298
|
+
executable: zod.z.string().max(1024).optional(),
|
|
19299
|
+
args: zod.z.array(zod.z.string().max(2048)).max(64).optional(),
|
|
19300
|
+
cwd: zod.z.string().max(1024).optional(),
|
|
19301
|
+
environment: zod.z.array(zod.z.string().max(4096)).max(64).optional()
|
|
19302
|
+
}), TerminalInstanceInfoSchema, {
|
|
19303
|
+
kind: "mutation",
|
|
19304
|
+
auth: "admin"
|
|
19305
|
+
}),
|
|
19306
|
+
updateInstance: method(zod.z.object({
|
|
19307
|
+
instanceId: zod.z.string().min(1),
|
|
19308
|
+
name: zod.z.string().trim().min(1).max(160).optional(),
|
|
19309
|
+
executable: zod.z.string().max(1024).optional(),
|
|
19310
|
+
args: zod.z.array(zod.z.string().max(2048)).max(64).optional(),
|
|
19311
|
+
cwd: zod.z.string().max(1024).optional(),
|
|
19312
|
+
environment: zod.z.array(zod.z.string().max(4096)).max(64).optional()
|
|
19289
19313
|
}), TerminalInstanceInfoSchema, {
|
|
19290
19314
|
kind: "mutation",
|
|
19291
19315
|
auth: "admin"
|
|
@@ -19320,7 +19344,11 @@ var terminalSessionCapability = {
|
|
|
19320
19344
|
openSession: method(zod.z.object({
|
|
19321
19345
|
profileId: zod.z.string(),
|
|
19322
19346
|
cols: zod.z.number().int().positive(),
|
|
19323
|
-
rows: zod.z.number().int().positive()
|
|
19347
|
+
rows: zod.z.number().int().positive(),
|
|
19348
|
+
executable: zod.z.string().max(1024).optional(),
|
|
19349
|
+
args: zod.z.array(zod.z.string().max(2048)).max(64).optional(),
|
|
19350
|
+
cwd: zod.z.string().max(1024).optional(),
|
|
19351
|
+
environment: zod.z.array(zod.z.string().max(4096)).max(64).optional()
|
|
19324
19352
|
}), TerminalSessionInfoSchema, {
|
|
19325
19353
|
kind: "mutation",
|
|
19326
19354
|
auth: "admin"
|
|
@@ -23919,6 +23947,20 @@ var AllowedAddressesSchema = zod.z.object({
|
|
|
23919
23947
|
* Network Addresses admin page and persisted by the addon.
|
|
23920
23948
|
*/
|
|
23921
23949
|
addresses: zod.z.array(zod.z.string()).readonly() });
|
|
23950
|
+
var TlsStatusSchema = zod.z.object({
|
|
23951
|
+
mode: zod.z.enum([
|
|
23952
|
+
"generated",
|
|
23953
|
+
"uploaded",
|
|
23954
|
+
"disabled"
|
|
23955
|
+
]),
|
|
23956
|
+
leafFingerprintSha256: zod.z.string().nullable(),
|
|
23957
|
+
caFingerprintSha256: zod.z.string().nullable(),
|
|
23958
|
+
validTo: zod.z.string().nullable(),
|
|
23959
|
+
sans: zod.z.array(zod.z.string()),
|
|
23960
|
+
caCertPem: zod.z.string().nullable(),
|
|
23961
|
+
reissueError: zod.z.string().nullable(),
|
|
23962
|
+
restartRequired: zod.z.boolean()
|
|
23963
|
+
});
|
|
23922
23964
|
var localNetworkCapability = {
|
|
23923
23965
|
name: "local-network",
|
|
23924
23966
|
scope: "system",
|
|
@@ -24024,7 +24066,34 @@ var localNetworkCapability = {
|
|
|
24024
24066
|
* when the operator wants to wipe their manual edits and start
|
|
24025
24067
|
* over from the auto-detected best matches.
|
|
24026
24068
|
*/
|
|
24027
|
-
resetAllowlistToBestMatch: method(zod.z.void(), AllowedAddressesSchema, { kind: "mutation" })
|
|
24069
|
+
resetAllowlistToBestMatch: method(zod.z.void(), AllowedAddressesSchema, { kind: "mutation" }),
|
|
24070
|
+
/**
|
|
24071
|
+
* Live TLS material for the Network → Local access certificate card.
|
|
24072
|
+
* LAN HTTP / hostname are addon settings (`globalSettingsSchema`), not
|
|
24073
|
+
* a second store — this query is status, not configuration.
|
|
24074
|
+
*/
|
|
24075
|
+
getTlsStatus: method(zod.z.void(), TlsStatusSchema),
|
|
24076
|
+
/** Issue a new leaf under the existing local CA. Disabled in uploaded mode. */
|
|
24077
|
+
regenerateCertificate: method(zod.z.object({ reason: zod.z.string().optional() }), TlsStatusSchema, {
|
|
24078
|
+
kind: "mutation",
|
|
24079
|
+
auth: "admin"
|
|
24080
|
+
}),
|
|
24081
|
+
/** Replace the served material with operator-supplied PEMs. */
|
|
24082
|
+
uploadCertificate: method(zod.z.object({
|
|
24083
|
+
certPem: zod.z.string().min(1),
|
|
24084
|
+
keyPem: zod.z.string().min(1),
|
|
24085
|
+
caPem: zod.z.string().optional()
|
|
24086
|
+
}), TlsStatusSchema, {
|
|
24087
|
+
kind: "mutation",
|
|
24088
|
+
auth: "admin"
|
|
24089
|
+
}),
|
|
24090
|
+
/** The local CA PEM, or empty when there is none to download. */
|
|
24091
|
+
downloadCa: method(zod.z.void(), zod.z.object({ pem: zod.z.string() })),
|
|
24092
|
+
/** Drop uploaded material and return to the generated local CA. */
|
|
24093
|
+
revertToGeneratedCertificate: method(zod.z.void(), TlsStatusSchema, {
|
|
24094
|
+
kind: "mutation",
|
|
24095
|
+
auth: "admin"
|
|
24096
|
+
})
|
|
24028
24097
|
},
|
|
24029
24098
|
/** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
|
|
24030
24099
|
mount: { kind: "hub-only" }
|
|
@@ -32478,6 +32547,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
32478
32547
|
addonId: null,
|
|
32479
32548
|
access: "create"
|
|
32480
32549
|
},
|
|
32550
|
+
"localNetwork.downloadCa": {
|
|
32551
|
+
capName: "local-network",
|
|
32552
|
+
capScope: "system",
|
|
32553
|
+
addonId: null,
|
|
32554
|
+
access: "view"
|
|
32555
|
+
},
|
|
32481
32556
|
"localNetwork.getAllowedAddresses": {
|
|
32482
32557
|
capName: "local-network",
|
|
32483
32558
|
capScope: "system",
|
|
@@ -32502,18 +32577,36 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
32502
32577
|
addonId: null,
|
|
32503
32578
|
access: "view"
|
|
32504
32579
|
},
|
|
32580
|
+
"localNetwork.getTlsStatus": {
|
|
32581
|
+
capName: "local-network",
|
|
32582
|
+
capScope: "system",
|
|
32583
|
+
addonId: null,
|
|
32584
|
+
access: "view"
|
|
32585
|
+
},
|
|
32505
32586
|
"localNetwork.list": {
|
|
32506
32587
|
capName: "local-network",
|
|
32507
32588
|
capScope: "system",
|
|
32508
32589
|
addonId: null,
|
|
32509
32590
|
access: "view"
|
|
32510
32591
|
},
|
|
32592
|
+
"localNetwork.regenerateCertificate": {
|
|
32593
|
+
capName: "local-network",
|
|
32594
|
+
capScope: "system",
|
|
32595
|
+
addonId: null,
|
|
32596
|
+
access: "create"
|
|
32597
|
+
},
|
|
32511
32598
|
"localNetwork.resetAllowlistToBestMatch": {
|
|
32512
32599
|
capName: "local-network",
|
|
32513
32600
|
capScope: "system",
|
|
32514
32601
|
addonId: null,
|
|
32515
32602
|
access: "delete"
|
|
32516
32603
|
},
|
|
32604
|
+
"localNetwork.revertToGeneratedCertificate": {
|
|
32605
|
+
capName: "local-network",
|
|
32606
|
+
capScope: "system",
|
|
32607
|
+
addonId: null,
|
|
32608
|
+
access: "create"
|
|
32609
|
+
},
|
|
32517
32610
|
"localNetwork.setAllowedAddresses": {
|
|
32518
32611
|
capName: "local-network",
|
|
32519
32612
|
capScope: "system",
|
|
@@ -32526,6 +32619,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
32526
32619
|
addonId: null,
|
|
32527
32620
|
access: "create"
|
|
32528
32621
|
},
|
|
32622
|
+
"localNetwork.uploadCertificate": {
|
|
32623
|
+
capName: "local-network",
|
|
32624
|
+
capScope: "system",
|
|
32625
|
+
addonId: null,
|
|
32626
|
+
access: "create"
|
|
32627
|
+
},
|
|
32529
32628
|
"lockControl.lock": {
|
|
32530
32629
|
capName: "lock-control",
|
|
32531
32630
|
capScope: "device",
|
|
@@ -35406,6 +35505,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
35406
35505
|
addonId: null,
|
|
35407
35506
|
access: "create"
|
|
35408
35507
|
},
|
|
35508
|
+
"terminalSession.updateInstance": {
|
|
35509
|
+
capName: "terminal-session",
|
|
35510
|
+
capScope: "system",
|
|
35511
|
+
addonId: null,
|
|
35512
|
+
access: "create"
|
|
35513
|
+
},
|
|
35409
35514
|
"terminalSession.writeInput": {
|
|
35410
35515
|
capName: "terminal-session",
|
|
35411
35516
|
capScope: "system",
|
|
@@ -38173,6 +38278,35 @@ Object.freeze(Object.fromEntries([{
|
|
|
38173
38278
|
}]
|
|
38174
38279
|
}].map((s) => [s.stepId, s.defaultModelId])));
|
|
38175
38280
|
zod.z.string().min(1);
|
|
38281
|
+
var CLUSTER_STEP_SETTING_FIELDS = [{
|
|
38282
|
+
stepId: "face-embedding",
|
|
38283
|
+
key: "minLandmarkFaceSize",
|
|
38284
|
+
label: "Min face size for recognition (detection px)",
|
|
38285
|
+
description: "Refuse to embed a face smaller than this IN THE DETECTION FRAME. Applies to every node — the enrolled gallery is one index, and two admission floors would fill it from two policies. 0 disables the gate.",
|
|
38286
|
+
type: "slider",
|
|
38287
|
+
min: 0,
|
|
38288
|
+
max: 64,
|
|
38289
|
+
step: 2,
|
|
38290
|
+
default: 24
|
|
38291
|
+
}];
|
|
38292
|
+
function clusterStepSettingKey(stepId, fieldKey) {
|
|
38293
|
+
return `clusterStepSetting:${stepId}:${fieldKey}`;
|
|
38294
|
+
}
|
|
38295
|
+
var ClusterSettingNumberSchema = zod.z.number().finite();
|
|
38296
|
+
function readClusterStepSettings(config) {
|
|
38297
|
+
const out = {};
|
|
38298
|
+
for (const field of CLUSTER_STEP_SETTING_FIELDS) {
|
|
38299
|
+
const parsed = ClusterSettingNumberSchema.safeParse(config[clusterStepSettingKey(field.stepId, field.key)]);
|
|
38300
|
+
const value = parsed.success ? parsed.data : field.default;
|
|
38301
|
+
const existing = out[field.stepId] ?? {};
|
|
38302
|
+
out[field.stepId] = {
|
|
38303
|
+
...existing,
|
|
38304
|
+
[field.key]: value
|
|
38305
|
+
};
|
|
38306
|
+
}
|
|
38307
|
+
return out;
|
|
38308
|
+
}
|
|
38309
|
+
readClusterStepSettings({});
|
|
38176
38310
|
zod.z.object({
|
|
38177
38311
|
/**
|
|
38178
38312
|
* Fraction of the box's own size added on EACH side before cutting.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { IncomingMessage, ServerResponse } from 'node:http';
|
|
2
|
+
export interface LanHttpBindOptions {
|
|
3
|
+
readonly enabled: boolean;
|
|
4
|
+
readonly port: number;
|
|
5
|
+
readonly host: string;
|
|
6
|
+
}
|
|
7
|
+
export interface LanHttpBindResult {
|
|
8
|
+
readonly listening: boolean;
|
|
9
|
+
readonly error: string | null;
|
|
10
|
+
readonly port: number;
|
|
11
|
+
}
|
|
12
|
+
export type LanHttpRequestHandler = (req: IncomingMessage, res: ServerResponse) => void;
|
|
13
|
+
export declare const DEFAULT_LAN_HTTP_PORT = 4480;
|
|
14
|
+
export declare function registerLanHttpHandler(next: LanHttpRequestHandler | null): void;
|
|
15
|
+
export declare function readLanHttpState(): LanHttpBindResult;
|
|
16
|
+
export declare function applyLanHttp(options: LanHttpBindOptions): Promise<LanHttpBindResult>;
|
|
17
|
+
/** After the hub registers the Fastify request handler, bind whatever was pending. */
|
|
18
|
+
export declare function bindPendingLanHttp(): Promise<LanHttpBindResult>;
|
|
19
|
+
export declare function closeLanHttp(): Promise<void>;
|
package/dist/index.d.ts
CHANGED
|
@@ -80,6 +80,7 @@ export { StorageLocationManager } from './storage/storage-location-manager.js';
|
|
|
80
80
|
export type { IFileStorage, IStorageLocation, IStorageProvider as ICoreStorageProvider, IStructuredStorage, QueryFilter, StorageRecord, } from './storage/storage-manager.js';
|
|
81
81
|
export { StorageManager } from './storage/storage-manager.js';
|
|
82
82
|
export * from './tls/index.js';
|
|
83
|
+
export { applyLanHttp, bindPendingLanHttp, closeLanHttp, DEFAULT_LAN_HTTP_PORT, readLanHttpState, registerLanHttpHandler, } from './http/lan-http-bind.js';
|
|
83
84
|
export { IntegrationRegistry } from './builtins/sqlite-storage/integration-registry.js';
|
|
84
85
|
export { type EnsureAddonNativePrebuildsOptions, ensureAddonNativePrebuilds, type NativeEnsureOutcome, type NativeEnsureResult, } from './kernel/deps/ensure-addon-natives.js';
|
|
85
86
|
export { type EnsureNativePrebuildsOptions, ensureNativePrebuilds, hasDotNode, NATIVE_SCAN_DEPTH, type PrebuildFetchFn, type PrebuildTarget, TRADITIONAL_NATIVE_PACKAGES, } from './kernel/deps/ensure-native-prebuilds.js';
|