@camstack/system 1.2.472 → 1.2.473

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.
Files changed (84) hide show
  1. package/dist/{agent-https-bnyFRK7Y.js → agent-https-B9Q3-IKd.js} +2 -5
  2. package/dist/{agent-https-JhvY1axF.mjs → agent-https-DOwn4pqL.mjs} +3 -6
  3. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  4. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  5. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  6. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  7. package/dist/builtins/alerts/alerts.addon.js +1 -1
  8. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  9. package/dist/builtins/autotrack/index.js +1 -1
  10. package/dist/builtins/autotrack/index.mjs +1 -1
  11. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +2 -2
  12. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +2 -2
  13. package/dist/builtins/calendars/calendars.addon.js +1 -1
  14. package/dist/builtins/calendars/calendars.addon.mjs +1 -1
  15. package/dist/builtins/camera-grid/index.js +1 -1
  16. package/dist/builtins/camera-grid/index.mjs +1 -1
  17. package/dist/builtins/composer/composer.addon.js +2 -2
  18. package/dist/builtins/composer/composer.addon.mjs +2 -2
  19. package/dist/builtins/console-logging/index.js +1 -1
  20. package/dist/builtins/console-logging/index.mjs +1 -1
  21. package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
  22. package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
  23. package/dist/builtins/device-history/device-history.addon.js +1 -1
  24. package/dist/builtins/device-history/device-history.addon.mjs +1 -1
  25. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  26. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  27. package/dist/builtins/hub-forwarder/index.js +1 -1
  28. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  29. package/dist/builtins/keychain/index.js +3 -3
  30. package/dist/builtins/keychain/index.mjs +3 -3
  31. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  32. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  33. package/dist/builtins/local-auth/local-auth.addon.js +16 -2
  34. package/dist/builtins/local-auth/local-auth.addon.mjs +16 -2
  35. package/dist/builtins/local-auth/person-scopes.d.ts +7 -0
  36. package/dist/builtins/local-network/local-network.addon.js +2 -2
  37. package/dist/builtins/local-network/local-network.addon.mjs +2 -2
  38. package/dist/builtins/loki-logging/index.js +1 -1
  39. package/dist/builtins/loki-logging/index.mjs +1 -1
  40. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  41. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  42. package/dist/builtins/platform-probe/accelerator-facts-probe.d.ts +24 -0
  43. package/dist/builtins/platform-probe/index.js +110 -10
  44. package/dist/builtins/platform-probe/index.mjs +109 -10
  45. package/dist/builtins/platform-probe/platform-scorer.d.ts +10 -2
  46. package/dist/builtins/record-entries/index.js +1 -1
  47. package/dist/builtins/record-entries/index.mjs +1 -1
  48. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  49. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  50. package/dist/builtins/snapshot/index.js +1 -1
  51. package/dist/builtins/snapshot/index.mjs +1 -1
  52. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  53. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  54. package/dist/builtins/sqlite-storage/index.js +1 -1
  55. package/dist/builtins/sqlite-storage/index.mjs +1 -1
  56. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +3 -3
  57. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +3 -3
  58. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  59. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  60. package/dist/builtins/system-config/system-config.addon.js +3 -3
  61. package/dist/builtins/system-config/system-config.addon.mjs +3 -3
  62. package/dist/builtins/winston-logging/index.js +1 -1
  63. package/dist/builtins/winston-logging/index.mjs +1 -1
  64. package/dist/{composition-sources-D3h-tNoJ.js → composition-sources-Dj_nInUQ.js} +1 -1
  65. package/dist/{composition-sources-BY6rFuAE.mjs → composition-sources-cwD35HB0.mjs} +1 -1
  66. package/dist/{constants-CqbO6e9i.js → constants-XkWSVvgY.js} +1 -1
  67. package/dist/{constants-zBiEodEM.mjs → constants-p5mPM1iL.mjs} +1 -1
  68. package/dist/{device-ca-CfiIg3a9.js → device-ca-BXzQ1pYj.js} +1 -1
  69. package/dist/{device-ca-BWTWWBcc.mjs → device-ca-DyUtcpf4.mjs} +1 -1
  70. package/dist/{dist-DX5Fu3mV.js → dist-Bmah6waF.js} +109 -12
  71. package/dist/{dist-CdFkkmXW.mjs → dist-C9lbdBL5.mjs} +104 -13
  72. package/dist/file-host-worker.js +1 -1
  73. package/dist/file-host-worker.mjs +1 -1
  74. package/dist/{hub-mdns-ciao-CYp1Gipm.mjs → hub-mdns-ciao-BemeCNGe.mjs} +2 -2
  75. package/dist/{hub-mdns-ciao-C174UDzO.js → hub-mdns-ciao-CUr6ewsX.js} +2 -2
  76. package/dist/index.js +9 -7
  77. package/dist/index.mjs +9 -7
  78. package/dist/{restore-archive-BX0gaKtG.mjs → restore-archive-C0aohmAK.mjs} +1 -1
  79. package/dist/{restore-archive-B2jIFfu_.js → restore-archive-DbPmyjiM.js} +1 -1
  80. package/dist/{retired-settings-keys-C_Kjp-Bj.mjs → retired-settings-keys-CWp7ZSeA.mjs} +8 -0
  81. package/dist/{retired-settings-keys-CGUqX-Oz.js → retired-settings-keys-DorakcxV.js} +8 -0
  82. package/dist/{wal-maintenance-Dxqd5igw.js → wal-maintenance-BT8Ns0W3.js} +0 -0
  83. package/dist/{wal-maintenance-KHzJXlF2.mjs → wal-maintenance-BuB731DK.mjs} +0 -0
  84. package/package.json +6 -6
@@ -1,5 +1,5 @@
1
1
  /** `secret://system/global/meshCaKey` — EC P-256 PKCS#8 PEM of the hub mesh CA. */
2
- var MESH_CA_KEY_REF = require("./dist-DX5Fu3mV.js").buildSecretRef({
2
+ var MESH_CA_KEY_REF = require("./dist-Bmah6waF.js").buildSecretRef({
3
3
  owner: "system",
4
4
  scope: { kind: "global" },
5
5
  fieldPath: "meshCaKey"
@@ -1,4 +1,4 @@
1
- import { Ri as buildSecretRef } from "./dist-CdFkkmXW.mjs";
1
+ import { zi as buildSecretRef } from "./dist-C9lbdBL5.mjs";
2
2
  /** `secret://system/global/meshCaKey` — EC P-256 PKCS#8 PEM of the hub mesh CA. */
3
3
  var MESH_CA_KEY_REF = buildSecretRef({
4
4
  owner: "system",
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-DX5Fu3mV.js");
1
+ const require_dist = require("./dist-Bmah6waF.js");
2
2
  const require_x509_es = require("./x509.es-C4cOo48M.js");
3
3
  let node_crypto = require("node:crypto");
4
4
  //#region src/auth/jwt-signing-key.ts
@@ -1,4 +1,4 @@
1
- import { A as DEVICE_SAN_USER_PREFIX, Ri as buildSecretRef, k as DEVICE_SAN_CREDENTIAL_PREFIX } from "./dist-CdFkkmXW.mjs";
1
+ import { A as DEVICE_SAN_USER_PREFIX, k as DEVICE_SAN_CREDENTIAL_PREFIX, zi as buildSecretRef } from "./dist-C9lbdBL5.mjs";
2
2
  import { S as backdatedNotBefore, a as KeyUsageFlags, d as SubjectKeyIdentifierExtension, f as X509Certificate$1, m as cryptoProvider, n as BasicConstraintsExtension, o as KeyUsagesExtension, p as X509CertificateGenerator, r as ExtendedKeyUsageExtension, s as PemConverter, t as AuthorityKeyIdentifierExtension, u as SubjectAlternativeNameExtension } from "./x509.es-DK__ETIe.mjs";
3
3
  import { X509Certificate, createPublicKey, randomBytes, verify, webcrypto } from "node:crypto";
4
4
  //#region src/auth/jwt-signing-key.ts
@@ -15543,7 +15543,7 @@ function kindOfValue(value) {
15543
15543
  function only(kind) {
15544
15544
  return new Set([kind]);
15545
15545
  }
15546
- function union(...sets) {
15546
+ function union$1(...sets) {
15547
15547
  return new Set(sets.flatMap((s) => [...s]));
15548
15548
  }
15549
15549
  function withoutNull(set) {
@@ -15571,8 +15571,8 @@ function callKinds(callee, args) {
15571
15571
  const rule = BUILTIN_RESULT_KINDS[callee];
15572
15572
  if (rule === void 0) throw new KindInferenceError(`no result-kind rule for builtin '${callee}'`);
15573
15573
  if (rule.kind === "fixed") return new Set(rule.result);
15574
- const nonNull = union(...args.map(withoutNull));
15575
- return args.every((a) => a.has("null")) ? union(nonNull, only("null")) : nonNull;
15574
+ const nonNull = union$1(...args.map(withoutNull));
15575
+ return args.every((a) => a.has("null")) ? union$1(nonNull, only("null")) : nonNull;
15576
15576
  }
15577
15577
  function kindsOf(node, bindings) {
15578
15578
  switch (node.kind) {
@@ -15585,8 +15585,8 @@ function kindsOf(node, bindings) {
15585
15585
  }
15586
15586
  case "unary": return only(node.op === "!" ? "boolean" : "number");
15587
15587
  case "binary": return binaryKinds(node.op, kindsOf(node.left, bindings), kindsOf(node.right, bindings));
15588
- case "logical": return union(kindsOf(node.left, bindings), kindsOf(node.right, bindings));
15589
- case "conditional": return union(kindsOf(node.consequent, bindings), kindsOf(node.alternate, bindings));
15588
+ case "logical": return union$1(kindsOf(node.left, bindings), kindsOf(node.right, bindings));
15589
+ case "conditional": return union$1(kindsOf(node.consequent, bindings), kindsOf(node.alternate, bindings));
15590
15590
  case "call": return callKinds(node.callee, node.args.map((a) => kindsOf(a, bindings)));
15591
15591
  }
15592
15592
  }
@@ -47934,6 +47934,18 @@ Object.freeze({
47934
47934
  reason: "camera sensor mappings not loaded"
47935
47935
  });
47936
47936
  /**
47937
+ * What the vision model must answer before a package event is emitted
47938
+ * when a packages rule has "Confirm with the LLM" on.
47939
+ *
47940
+ * `package` is the verdict. `confidence` is 0..1. `reason` is the model's
47941
+ * one-line explanation, stored on the event so a drop is not silent.
47942
+ */
47943
+ var PackageLlmVerdictSchema = zod.z.object({
47944
+ package: zod.z.boolean(),
47945
+ confidence: zod.z.number().min(0).max(1),
47946
+ reason: zod.z.string().min(1)
47947
+ });
47948
+ /**
47937
47949
  * A model choice has a SCOPE, and a scope change has a workflow.
47938
47950
  *
47939
47951
  * ## The two scopes
@@ -48878,6 +48890,21 @@ var ObjectEventSchema = zod.z.object({
48878
48890
  * pick-up written before D684 — UNKNOWN, never 0 and never `timestamp`.
48879
48891
  */
48880
48892
  observedAt: zod.z.number().optional(),
48893
+ /**
48894
+ * The delivery was emitted without a vision-model yes (D931).
48895
+ *
48896
+ * Set only when the packages rule asked for an LLM confirm and the model
48897
+ * was unreachable, timed out, or answered something that did not parse.
48898
+ * A notification reads it so it can say "possible" instead of a definite
48899
+ * delivery. Absent on every other row, and on a confirm that said yes.
48900
+ */
48901
+ packagePossible: zod.z.boolean().optional(),
48902
+ /**
48903
+ * The vision model's verdict, when a packages rule asked for one and the
48904
+ * model answered the schema (D931). A "no" never becomes a row — the
48905
+ * detector drops it and logs the reason. Present on a yes.
48906
+ */
48907
+ packageLlmVerdict: PackageLlmVerdictSchema.optional(),
48881
48908
  /** The parent track's key-event importance [0,1], propagated to every object
48882
48909
  * event of the track (so an event row can be sorted by importance without a
48883
48910
  * track join). Absent on legacy rows / before the track was scored. */
@@ -52034,11 +52061,18 @@ var KeptReasonSchema = zod.z.enum(["custom-pin"]);
52034
52061
  * Where a choice's latency came from (D791): this node's own benchmark
52035
52062
  * result, or the hardware-class table. Measured on the node beats the table.
52036
52063
  */
52037
- var LatencySourceSchema = zod.z.discriminatedUnion("kind", [zod.z.object({ kind: zod.z.literal("table") }), zod.z.object({
52038
- kind: zod.z.literal("node-benchmark"),
52039
- resultId: zod.z.string(),
52040
- measuredAtMs: zod.z.number()
52041
- })]);
52064
+ var LatencySourceSchema = zod.z.discriminatedUnion("kind", [
52065
+ zod.z.object({ kind: zod.z.literal("table") }),
52066
+ zod.z.object({
52067
+ kind: zod.z.literal("node-benchmark"),
52068
+ resultId: zod.z.string(),
52069
+ measuredAtMs: zod.z.number()
52070
+ }),
52071
+ zod.z.object({
52072
+ kind: zod.z.literal("estimated"),
52073
+ estimatedFrom: HardwareClassIdSchema
52074
+ })
52075
+ ]);
52042
52076
  var DeviceModelChoiceSchema = zod.z.object({
52043
52077
  modelId: zod.z.string(),
52044
52078
  p50Ms: zod.z.number(),
@@ -52046,6 +52080,11 @@ var DeviceModelChoiceSchema = zod.z.object({
52046
52080
  measured: zod.z.boolean(),
52047
52081
  /** Absent on a plan from before D791 — read as the table. */
52048
52082
  source: LatencySourceSchema.optional(),
52083
+ /**
52084
+ * The measured class this latency was scaled from (D930). Absent when the
52085
+ * cell is the table or a node benchmark.
52086
+ */
52087
+ estimatedFrom: HardwareClassIdSchema.optional(),
52049
52088
  /** Parallel sessions at the camera rate with the headroom kept free: ⌊fps × (1 − headroom) / camera fps⌋. */
52050
52089
  capacitySessions: zod.z.number(),
52051
52090
  personRecall: zod.z.number()
@@ -66951,6 +66990,36 @@ includeCrops: zod.z.boolean().optional() }).optional(), zod.z.array(VehicleSchem
66951
66990
  })
66952
66991
  }
66953
66992
  };
66993
+ var CORE_ULTRA_265K_IGPU_CLOCK_MHZ = 2e3;
66994
+ var positiveOrNull = zod.z.number().nullable().transform((value) => value !== null && Number.isFinite(value) && value > 0 ? value : null);
66995
+ var textOrNull = zod.z.string().nullable().transform((value) => value !== null && value.trim() !== "" ? value : null);
66996
+ var PrecisionGopsSchema = zod.z.object({
66997
+ int8: positiveOrNull,
66998
+ fp16: positiveOrNull
66999
+ });
67000
+ /** What one accelerator device reported. Every failed query is null. */
67001
+ var AcceleratorComputeSchema = zod.z.object({
67002
+ deviceKey: zod.z.string(),
67003
+ fullDeviceName: textOrNull,
67004
+ executionUnits: positiveOrNull,
67005
+ clockMHz: positiveOrNull,
67006
+ gops: PrecisionGopsSchema.nullable(),
67007
+ architecture: textOrNull,
67008
+ npuName: textOrNull,
67009
+ tops: positiveOrNull,
67010
+ vendor: textOrNull,
67011
+ webgpuArchitecture: textOrNull,
67012
+ webgpuDevice: textOrNull,
67013
+ computeUnits: positiveOrNull
67014
+ });
67015
+ var AcceleratorFactsPayloadSchema = zod.z.object({ accelerators: zod.z.array(AcceleratorComputeSchema).nullable() });
67016
+ 64 * CORE_ULTRA_265K_IGPU_CLOCK_MHZ;
67017
+ /** Parse a probe payload. `null` means the probe failed — not "no accelerators". */
67018
+ function parseAcceleratorFactsJson(raw) {
67019
+ const parsed = AcceleratorFactsPayloadSchema.safeParse(raw);
67020
+ if (!parsed.success || parsed.data.accelerators === null) return null;
67021
+ return parsed.data.accelerators;
67022
+ }
66954
67023
  var ModelFormatSchema = zod.z.enum(MODEL_FORMATS);
66955
67024
  var HwAccelBackendInputSchema = zod.z.enum([
66956
67025
  "videotoolbox",
@@ -67065,7 +67134,12 @@ var HardwareInfoSchema = zod.z.object({
67065
67134
  availableRAM_MB: zod.z.number(),
67066
67135
  gpu: GpuInfoSchema.nullable(),
67067
67136
  npu: NpuInfoSchema.nullable(),
67068
- coral: CoralInfoSchema.nullable().optional()
67137
+ coral: CoralInfoSchema.nullable().optional(),
67138
+ /**
67139
+ * Per-accelerator compute (D930). Omitted by a node that has not probed it.
67140
+ * `null` fields inside an entry are a failed query, never a zero.
67141
+ */
67142
+ accelerators: zod.z.array(AcceleratorComputeSchema).readonly().optional()
67069
67143
  });
67070
67144
  var PlatformScoreSchema = zod.z.object({
67071
67145
  runtime: zod.z.literal("python"),
@@ -70437,7 +70511,20 @@ var ZoneRuleSchema = zod.z.object({
70437
70511
  * Defaults to `true` so operators creating a rule via the UI
70438
70512
  * see it active immediately.
70439
70513
  */
70440
- enabled: zod.z.boolean().default(true)
70514
+ enabled: zod.z.boolean().default(true),
70515
+ /**
70516
+ * Package stage only. When true, a package candidate may open from a
70517
+ * scene difference in this rule's zone after a person leaves. The
70518
+ * package model, when it boxes something overlapping, is extra evidence
70519
+ * and is not the gate. Absent or false keeps today's model path.
70520
+ */
70521
+ detectBySceneDifference: zod.z.boolean().optional(),
70522
+ /**
70523
+ * Package stage only. When true, a promoted package is shown to the
70524
+ * `llm` cap before the delivery event is emitted. Absent or false emits
70525
+ * as today. Usable with or without `detectBySceneDifference`.
70526
+ */
70527
+ confirmWithLlm: zod.z.boolean().optional()
70441
70528
  });
70442
70529
  zod.z.array(ZoneRuleSchema).readonly();
70443
70530
  /**
@@ -93845,6 +93932,10 @@ TimelapseRuleInputSchema.extend({
93845
93932
  updatedAt: zod.z.number()
93846
93933
  });
93847
93934
  MotionOnMotionChangedDataSchema.omit({ triggeredBy: true });
93935
+ Object.freeze({
93936
+ person: .8,
93937
+ vehicle: .8
93938
+ });
93848
93939
  zod.z.object({
93849
93940
  /**
93850
93941
  * Fraction of the box's own size added on EACH side before cutting.
@@ -95832,6 +95923,12 @@ Object.defineProperty(exports, "objectInputDeclaresRequiredDeviceId", {
95832
95923
  return objectInputDeclaresRequiredDeviceId;
95833
95924
  }
95834
95925
  });
95926
+ Object.defineProperty(exports, "parseAcceleratorFactsJson", {
95927
+ enumerable: true,
95928
+ get: function() {
95929
+ return parseAcceleratorFactsJson;
95930
+ }
95931
+ });
95835
95932
  Object.defineProperty(exports, "parseJsonObject", {
95836
95933
  enumerable: true,
95837
95934
  get: function() {
@@ -15543,7 +15543,7 @@ function kindOfValue(value) {
15543
15543
  function only(kind) {
15544
15544
  return new Set([kind]);
15545
15545
  }
15546
- function union(...sets) {
15546
+ function union$1(...sets) {
15547
15547
  return new Set(sets.flatMap((s) => [...s]));
15548
15548
  }
15549
15549
  function withoutNull(set) {
@@ -15571,8 +15571,8 @@ function callKinds(callee, args) {
15571
15571
  const rule = BUILTIN_RESULT_KINDS[callee];
15572
15572
  if (rule === void 0) throw new KindInferenceError(`no result-kind rule for builtin '${callee}'`);
15573
15573
  if (rule.kind === "fixed") return new Set(rule.result);
15574
- const nonNull = union(...args.map(withoutNull));
15575
- return args.every((a) => a.has("null")) ? union(nonNull, only("null")) : nonNull;
15574
+ const nonNull = union$1(...args.map(withoutNull));
15575
+ return args.every((a) => a.has("null")) ? union$1(nonNull, only("null")) : nonNull;
15576
15576
  }
15577
15577
  function kindsOf(node, bindings) {
15578
15578
  switch (node.kind) {
@@ -15585,8 +15585,8 @@ function kindsOf(node, bindings) {
15585
15585
  }
15586
15586
  case "unary": return only(node.op === "!" ? "boolean" : "number");
15587
15587
  case "binary": return binaryKinds(node.op, kindsOf(node.left, bindings), kindsOf(node.right, bindings));
15588
- case "logical": return union(kindsOf(node.left, bindings), kindsOf(node.right, bindings));
15589
- case "conditional": return union(kindsOf(node.consequent, bindings), kindsOf(node.alternate, bindings));
15588
+ case "logical": return union$1(kindsOf(node.left, bindings), kindsOf(node.right, bindings));
15589
+ case "conditional": return union$1(kindsOf(node.consequent, bindings), kindsOf(node.alternate, bindings));
15590
15590
  case "call": return callKinds(node.callee, node.args.map((a) => kindsOf(a, bindings)));
15591
15591
  }
15592
15592
  }
@@ -47934,6 +47934,18 @@ Object.freeze({
47934
47934
  reason: "camera sensor mappings not loaded"
47935
47935
  });
47936
47936
  /**
47937
+ * What the vision model must answer before a package event is emitted
47938
+ * when a packages rule has "Confirm with the LLM" on.
47939
+ *
47940
+ * `package` is the verdict. `confidence` is 0..1. `reason` is the model's
47941
+ * one-line explanation, stored on the event so a drop is not silent.
47942
+ */
47943
+ var PackageLlmVerdictSchema = z.object({
47944
+ package: z.boolean(),
47945
+ confidence: z.number().min(0).max(1),
47946
+ reason: z.string().min(1)
47947
+ });
47948
+ /**
47937
47949
  * A model choice has a SCOPE, and a scope change has a workflow.
47938
47950
  *
47939
47951
  * ## The two scopes
@@ -48878,6 +48890,21 @@ var ObjectEventSchema = z.object({
48878
48890
  * pick-up written before D684 — UNKNOWN, never 0 and never `timestamp`.
48879
48891
  */
48880
48892
  observedAt: z.number().optional(),
48893
+ /**
48894
+ * The delivery was emitted without a vision-model yes (D931).
48895
+ *
48896
+ * Set only when the packages rule asked for an LLM confirm and the model
48897
+ * was unreachable, timed out, or answered something that did not parse.
48898
+ * A notification reads it so it can say "possible" instead of a definite
48899
+ * delivery. Absent on every other row, and on a confirm that said yes.
48900
+ */
48901
+ packagePossible: z.boolean().optional(),
48902
+ /**
48903
+ * The vision model's verdict, when a packages rule asked for one and the
48904
+ * model answered the schema (D931). A "no" never becomes a row — the
48905
+ * detector drops it and logs the reason. Present on a yes.
48906
+ */
48907
+ packageLlmVerdict: PackageLlmVerdictSchema.optional(),
48881
48908
  /** The parent track's key-event importance [0,1], propagated to every object
48882
48909
  * event of the track (so an event row can be sorted by importance without a
48883
48910
  * track join). Absent on legacy rows / before the track was scored. */
@@ -52034,11 +52061,18 @@ var KeptReasonSchema = z.enum(["custom-pin"]);
52034
52061
  * Where a choice's latency came from (D791): this node's own benchmark
52035
52062
  * result, or the hardware-class table. Measured on the node beats the table.
52036
52063
  */
52037
- var LatencySourceSchema = z.discriminatedUnion("kind", [z.object({ kind: z.literal("table") }), z.object({
52038
- kind: z.literal("node-benchmark"),
52039
- resultId: z.string(),
52040
- measuredAtMs: z.number()
52041
- })]);
52064
+ var LatencySourceSchema = z.discriminatedUnion("kind", [
52065
+ z.object({ kind: z.literal("table") }),
52066
+ z.object({
52067
+ kind: z.literal("node-benchmark"),
52068
+ resultId: z.string(),
52069
+ measuredAtMs: z.number()
52070
+ }),
52071
+ z.object({
52072
+ kind: z.literal("estimated"),
52073
+ estimatedFrom: HardwareClassIdSchema
52074
+ })
52075
+ ]);
52042
52076
  var DeviceModelChoiceSchema = z.object({
52043
52077
  modelId: z.string(),
52044
52078
  p50Ms: z.number(),
@@ -52046,6 +52080,11 @@ var DeviceModelChoiceSchema = z.object({
52046
52080
  measured: z.boolean(),
52047
52081
  /** Absent on a plan from before D791 — read as the table. */
52048
52082
  source: LatencySourceSchema.optional(),
52083
+ /**
52084
+ * The measured class this latency was scaled from (D930). Absent when the
52085
+ * cell is the table or a node benchmark.
52086
+ */
52087
+ estimatedFrom: HardwareClassIdSchema.optional(),
52049
52088
  /** Parallel sessions at the camera rate with the headroom kept free: ⌊fps × (1 − headroom) / camera fps⌋. */
52050
52089
  capacitySessions: z.number(),
52051
52090
  personRecall: z.number()
@@ -66951,6 +66990,36 @@ includeCrops: z.boolean().optional() }).optional(), z.array(VehicleSchema).reado
66951
66990
  })
66952
66991
  }
66953
66992
  };
66993
+ var CORE_ULTRA_265K_IGPU_CLOCK_MHZ = 2e3;
66994
+ var positiveOrNull = z.number().nullable().transform((value) => value !== null && Number.isFinite(value) && value > 0 ? value : null);
66995
+ var textOrNull = z.string().nullable().transform((value) => value !== null && value.trim() !== "" ? value : null);
66996
+ var PrecisionGopsSchema = z.object({
66997
+ int8: positiveOrNull,
66998
+ fp16: positiveOrNull
66999
+ });
67000
+ /** What one accelerator device reported. Every failed query is null. */
67001
+ var AcceleratorComputeSchema = z.object({
67002
+ deviceKey: z.string(),
67003
+ fullDeviceName: textOrNull,
67004
+ executionUnits: positiveOrNull,
67005
+ clockMHz: positiveOrNull,
67006
+ gops: PrecisionGopsSchema.nullable(),
67007
+ architecture: textOrNull,
67008
+ npuName: textOrNull,
67009
+ tops: positiveOrNull,
67010
+ vendor: textOrNull,
67011
+ webgpuArchitecture: textOrNull,
67012
+ webgpuDevice: textOrNull,
67013
+ computeUnits: positiveOrNull
67014
+ });
67015
+ var AcceleratorFactsPayloadSchema = z.object({ accelerators: z.array(AcceleratorComputeSchema).nullable() });
67016
+ 64 * CORE_ULTRA_265K_IGPU_CLOCK_MHZ;
67017
+ /** Parse a probe payload. `null` means the probe failed — not "no accelerators". */
67018
+ function parseAcceleratorFactsJson(raw) {
67019
+ const parsed = AcceleratorFactsPayloadSchema.safeParse(raw);
67020
+ if (!parsed.success || parsed.data.accelerators === null) return null;
67021
+ return parsed.data.accelerators;
67022
+ }
66954
67023
  var ModelFormatSchema = z.enum(MODEL_FORMATS);
66955
67024
  var HwAccelBackendInputSchema = z.enum([
66956
67025
  "videotoolbox",
@@ -67065,7 +67134,12 @@ var HardwareInfoSchema = z.object({
67065
67134
  availableRAM_MB: z.number(),
67066
67135
  gpu: GpuInfoSchema.nullable(),
67067
67136
  npu: NpuInfoSchema.nullable(),
67068
- coral: CoralInfoSchema.nullable().optional()
67137
+ coral: CoralInfoSchema.nullable().optional(),
67138
+ /**
67139
+ * Per-accelerator compute (D930). Omitted by a node that has not probed it.
67140
+ * `null` fields inside an entry are a failed query, never a zero.
67141
+ */
67142
+ accelerators: z.array(AcceleratorComputeSchema).readonly().optional()
67069
67143
  });
67070
67144
  var PlatformScoreSchema = z.object({
67071
67145
  runtime: z.literal("python"),
@@ -70437,7 +70511,20 @@ var ZoneRuleSchema = z.object({
70437
70511
  * Defaults to `true` so operators creating a rule via the UI
70438
70512
  * see it active immediately.
70439
70513
  */
70440
- enabled: z.boolean().default(true)
70514
+ enabled: z.boolean().default(true),
70515
+ /**
70516
+ * Package stage only. When true, a package candidate may open from a
70517
+ * scene difference in this rule's zone after a person leaves. The
70518
+ * package model, when it boxes something overlapping, is extra evidence
70519
+ * and is not the gate. Absent or false keeps today's model path.
70520
+ */
70521
+ detectBySceneDifference: z.boolean().optional(),
70522
+ /**
70523
+ * Package stage only. When true, a promoted package is shown to the
70524
+ * `llm` cap before the delivery event is emitted. Absent or false emits
70525
+ * as today. Usable with or without `detectBySceneDifference`.
70526
+ */
70527
+ confirmWithLlm: z.boolean().optional()
70441
70528
  });
70442
70529
  z.array(ZoneRuleSchema).readonly();
70443
70530
  /**
@@ -93845,6 +93932,10 @@ TimelapseRuleInputSchema.extend({
93845
93932
  updatedAt: z.number()
93846
93933
  });
93847
93934
  MotionOnMotionChangedDataSchema.omit({ triggeredBy: true });
93935
+ Object.freeze({
93936
+ person: .8,
93937
+ vehicle: .8
93938
+ });
93848
93939
  z.object({
93849
93940
  /**
93850
93941
  * Fraction of the box's own size added on EACH side before cutting.
@@ -94404,4 +94495,4 @@ function armRemovalReconcile(opts) {
94404
94495
  return () => clearInterval(timer);
94405
94496
  }
94406
94497
  //#endregion
94407
- export { PreferenceDeviceIdSchema as $, isDeviceConfigCap as $i, platformProbeCapability as $n, errMsg as $r, deviceExtensionCapability as $t, DEVICE_SAN_USER_PREFIX as A, UnindexedFilterError as Ai, keychainAdminCapability as An, supportedRuntimes as Ar, buildDeviceSignatureMessage as At, HISTORY_ITEM_CATALOG as B, collectSecretLeaves as Bi, mayReadLocation as Bn, cloneStatefulExpressionMemory as Br, coreBlockComposition as Bt, DATA_STORE_DATABASES as C, toSecretFieldView as Ca, RecordNotFoundError as Ci, isCollectionArrayMethod as Cn, storageAdminCapability as Cr, armRemovalReconcile as Ct, DEVICE_HISTORY_ENERGY_KEY as D, EventCategory as Da, SECRET_CLEAR as Di, isObjectInput as Dn, storageProviderCapability as Dr, batteryCapability as Dt, DEVICE_ENROLLMENT_TTL_MS as E, withoutCallerStamp as Ea, RevConflictError as Ei, isLocationEnabled as En, storageOccupancyCapability as Er, bareAddonId as Et, DeviceTombstoneSchema as F, asString$1 as Fi, localNetworkCapability as Fn, vectorIndexDimConflictError as Fr, checkRoleAddress as Ft, KeychainResetRecordSchema as G, defineCustomActions as Gi, motionCapability as Gn, compositionSliceKey as Gr, dataStoreProviderCapability as Gt, HUB_MDNS_TXT_KEYS as H, collectZodSecretPaths as Hi, memoizePinnedFfmpeg as Hn, composedDeviceStableId as Hr, coreBlockSourceKind as Ht, FIRST_LEVEL_MACRO_CLASSES as I, assertTransactScope as Ii, locationIconKey as In, vectorStoreCapability as Ir, composerCapability as It, METHOD_ACCESS_MAP as J, emitReadiness as Ji, objectInputDeclaresAddonId as Jn, disarmRoseMemory as Jr, decodeVectorBase64 as Jt, LOG_LEVEL_RANK as K, defineRecordKinds as Ki, normalizeCoreBlockWrite as Kn, compositionSourceKey as Kr, databaseSnapshotCapability as Kt, FieldClaimModeSchema as L, assertValidDeclaration as Li, logDestinationCapability as Ln, withLocationMode as Lr, compositionFieldKey as Lt, DataStoreDatabaseSchema as M, WELL_KNOWN_TAB_MAP as Mi, legacyAutoLinkIds as Mn, validateComposition as Mr, calendarsCapability as Mt, DeclaredDevices as N, asJsonObject as Ni, legacyModeOf as Nn, validateCustomAddress as Nr, cameraGridLayoutCapability as Nt, DEVICE_NONCE_TTL_MS as O, StoredRecordKindDeclarationSchema as Oi, isVoidInput as On, streamCatalogCapability as Or, buildCapabilityLookup as Ot, DeviceStatusSchema as P, asNumber as Pi, lifecycleJobSchema as Pn, vectorDimFromBase64 as Pr, canonicalIconKey as Pt, PREFERENCES_MAX_VALUE_BYTES as Q, hydrateSchema as Qi, planComposition as Qn, DeviceType as Qr, deviceCredentialsCapability as Qt, FieldClaimSchema as R, buildSecretRef as Ri, logLevelAtMost as Rn, COMPOSER_ADDON_ID as Rr, compositionSourceRefs as Rt, DATABASE_SNAPSHOT_TIMEOUT_MS as S, toNodeId as Sa, RecordKindDeclarationSchema as Si, isArrayOutputSchema as Sn, splitTranslationRef as Sr, alertsCapability as St, DERIVED_CAMERA_SILENCED_CAP_NAMES as T, userError as Ta, RecordUniqueViolationError as Ti, isDefaultAppConnectionEndpoint as Tn, storageMigrationCapability as Tr, backupCapability as Tt, KEYCHAIN_RESET_TRIGGER_ACTOR as U, createEvent as Ui, metricsProviderCapability as Un, compositionFeatureEnabled as Ur, coreBlocksCapability as Ut, HUB_MDNS_SERVICE_TYPE as V, collectSecretMarkerRefs as Vi, mayWriteToLocation as Vn, composedDeviceRef as Vr, coreBlockIdFromAddonId as Vt, KeychainAuditEntrySchema as W, customAction as Wi, modeMayWrite as Wn, compositionItemFieldPath as Wr, createDeviceExtensionProvider as Wt, MOTION_CLOSE_AFTER_MS as X, formatSecretScope as Xi, parseStreamParamsFormPatch as Xn, DeviceFeature as Xr, deriveBatteryPresence as Xt, MINUTES_PER_DAY as Y, expandCapMethods as Yi, objectInputDeclaresRequiredDeviceId as Yn, toExpressionValue as Yr, defineExtensionSlotProvider as Yt, NetworkTunnelStartedDataSchema as Z, historyItemFieldPath as Zi, pickAppLinkHub as Zn, DeviceRole as Zr, describeComposableCaps as Zt, CatalogFileSchema as _, resolveSecretMarkers as _a, REDACTED_SECRET as _i, gbToBytes as _n, scoreRuntimes as _r, addonPagesCapability as _t, BaseDevice as a, isSecretRefOwnedBy as aa, DEVICE_STATUS_METHOD as ai, enumerateInferenceDevices as an, replacedFieldKeys as ar, STORAGE_ACCESS_FALLBACK as at, DATABASE_SNAPSHOT_PARTIAL_SUFFIX as b, secretTreeFromSchema as ba, ReadinessRegistry as bi, isAlertEpisodeSeverity as bn, siteZoneKey as br, alertEpisodeId as bt, CAMSTACK_APP_LINK_ORIGIN as c, nodePin as ca, ForeignSecretMarkerError as ci, evaluateCompositionField as cn, resolveCoreBlockEntry as cr, ServerNameSchema as ct, COMPOSED_ITEM_FIXED_FIELDS as d, parseJsonObject as da, NoCallerError as di, expressionContainsBuiltinCall as dn, resolveLocationMode as dr, StorageLocationModeSchema as dt, isEvent as ea, BaseAddon as ei, deviceHistoryCapability as en, procedureAuthKey as er, PreferenceNamespaceSchema as et, COMPOSER_RUNNER_ID as f, parseJsonUnknown as fa, PlaintextSecretError as fi, extractNestedAddonId as fn, resolveMethodAuth as fr, StorageLocationTypeSchema as ft, CalendarPreferencesSchema as g, resolveCapMount as ga, RECORD_SWEEP_INTERVAL_MS as gi, formatMinutes as gn, scopesAllowDeviceCap as gr, UserRecordSchema as gt, CREDENTIAL_TOKEN_AUDIENCE as h, recordSecretRef as ha, RECORD_DELETE_BATCH as hi, formatDeviceRevoker as hn, scopesAllowAddon as hr, UNATTRIBUTED_BUCKET_KEY as ht, AlertSchema as i, isSecretMarkerLike as ia, DEVICE_SETTINGS_CONTRIBUTION_METHODS as ii, deviceStatusCapability as in, reducePoints as ir, RecordingStatusSchema as it, DEVICE_TOMBSTONE_RETENTION_MS as j, UnknownRecordKindError as ji, keychainCapability as jn, userManagementCapability as jr, buildStreamParamsConfigSchema as jt, DEVICE_SAN_CREDENTIAL_PREFIX as k, TransactRefusedError as ki, kebabToCamel as kn, streamQualityLabel as kr, buildDeviceEnrollmentLink as kt, CAP_NAMES_WITH_STATUS as l, normalizeNodeId as la, HISTORY_DEFAULT_MIN_INTERVAL_MS as li, evictionPolicyOfLocation as ln, resolveCoreBlockFiles as lr, SsoBridgeClaimsSchema as lt, CORE_BLOCK_ADDON_PREFIX as m, readinessKey as ma, RECORD_BATCH_MAX_BYTES as mi, foldSnapshotByFunction as mn, runtimeStatePolicyFor as mr, TokenScopeSchema as mt, AGENT_MDNS_TXT_KEYS as n, isSecretClear as na, CALLER_STAMPED_CAPABILITIES as ni, deviceRemovalHookCapability as nn, recordEntriesCapability as nr, RECORDING_SOURCE_CAMSTACK_ADDON as nt, BatteryStatusSchema as o, makeSecretMarker as oa, DeclarationRefusedError as oi, enumerateItemArrayFields as on, resolveAppConnections as or, STREAM_PROFILE_META as ot, CORE_BLOCKS_ADDON_ID as p, parseSecretRef as pa, RECORD_BATCH_MAX as pi, filesystemBrowseCapability as pn, resolveNotificationTapAddress as pr, StorageMigrationJobSchema as pt, LegacyStorageLocationDefaultSchema as q, emitDownForOwnedCaps as qi, normalizeUnit as qn, createStatefulExpressionMemory as qr, declarationOwnerNodeId as qt, ALL_CAPABILITY_DEFINITIONS as r, isSecretMarker as ra, DATAPLANE_SECRET_HEADER as ri, deviceStateCapability as rn, recordsCapability as rr, ROOT_BUCKET_KEY as rt, CAMERA_SWITCH_ORDER as s, mapSecretLeaves as sa, FilterRequiredError as si, enumerateSchemaFields as sn, resolveBucketMs as sr, ScopedTokenSchema as st, AGENT_MDNS_SERVICE_TYPE as t, isKeychainStoredField as ta, BatchTooLargeError as ti, deviceManagerCapability as tn, ptzAutotrackCapability as tr, PreferenceValueSchema as tt, CATALOG_LANGS as u, normalizeSecretOwner as ua, InvalidRecordError as ui, expandContainer as un, resolveHubAddressRoles as ur, StorageCleanupJobSchema as ut, CoreBlockSchema as v, scopeKey as va, REMOVE_LEAF as vi, interpolate as vn, settingsStoreCapability as vr, addonSettingsCapability as vt, DAY_NAMES as w, transformSecretWrite as wa, RecordTooLargeError as wi, isCredentialTokenPayload as wn, storageCapability as wr, authProviderCapability as wt, DATABASE_SNAPSHOT_SUFFIX as x, sleep as xa, ReadinessTimeoutError as xi, isAppLinkBase as xn, snapshotCapability as xr, alertEpisodePayload as xt, CredentialTokenClaimsSchema as y, secretTreeFromPaths as ya, RUNTIME_DEFAULTS as yi, isAlertEpisodeOpen as yn, shortHostname as yr, addonWidgetsCapability as yt, HISTORY_CATALOG as z, collectSecretConfigKeys as zi, looseSchema as zn, buildFfmpegArgs as zr, coreBlockAddonId as zt };
94498
+ export { PreferenceDeviceIdSchema as $, hydrateSchema as $i, planComposition as $n, DeviceType as $r, deviceExtensionCapability as $t, DEVICE_SAN_USER_PREFIX as A, TransactRefusedError as Ai, keychainAdminCapability as An, streamQualityLabel as Ar, buildDeviceSignatureMessage as At, HISTORY_ITEM_CATALOG as B, collectSecretConfigKeys as Bi, mayReadLocation as Bn, buildFfmpegArgs as Br, coreBlockComposition as Bt, DATA_STORE_DATABASES as C, toNodeId as Ca, RecordKindDeclarationSchema as Ci, isCollectionArrayMethod as Cn, splitTranslationRef as Cr, armRemovalReconcile as Ct, DEVICE_HISTORY_ENERGY_KEY as D, withoutCallerStamp as Da, RevConflictError as Di, isObjectInput as Dn, storageOccupancyCapability as Dr, batteryCapability as Dt, DEVICE_ENROLLMENT_TTL_MS as E, userError as Ea, RecordUniqueViolationError as Ei, isLocationEnabled as En, storageMigrationCapability as Er, bareAddonId as Et, DeviceTombstoneSchema as F, asNumber as Fi, localNetworkCapability as Fn, vectorDimFromBase64 as Fr, checkRoleAddress as Ft, KeychainResetRecordSchema as G, customAction as Gi, motionCapability as Gn, compositionItemFieldPath as Gr, dataStoreProviderCapability as Gt, HUB_MDNS_TXT_KEYS as H, collectSecretMarkerRefs as Hi, memoizePinnedFfmpeg as Hn, composedDeviceRef as Hr, coreBlockSourceKind as Ht, FIRST_LEVEL_MACRO_CLASSES as I, asString$1 as Ii, locationIconKey as In, vectorIndexDimConflictError as Ir, composerCapability as It, METHOD_ACCESS_MAP as J, emitDownForOwnedCaps as Ji, objectInputDeclaresAddonId as Jn, createStatefulExpressionMemory as Jr, decodeVectorBase64 as Jt, LOG_LEVEL_RANK as K, defineCustomActions as Ki, normalizeCoreBlockWrite as Kn, compositionSliceKey as Kr, databaseSnapshotCapability as Kt, FieldClaimModeSchema as L, assertTransactScope as Li, logDestinationCapability as Ln, vectorStoreCapability as Lr, compositionFieldKey as Lt, DataStoreDatabaseSchema as M, UnknownRecordKindError as Mi, legacyAutoLinkIds as Mn, userManagementCapability as Mr, calendarsCapability as Mt, DeclaredDevices as N, WELL_KNOWN_TAB_MAP as Ni, legacyModeOf as Nn, validateComposition as Nr, cameraGridLayoutCapability as Nt, DEVICE_NONCE_TTL_MS as O, EventCategory as Oa, SECRET_CLEAR as Oi, isVoidInput as On, storageProviderCapability as Or, buildCapabilityLookup as Ot, DeviceStatusSchema as P, asJsonObject as Pi, lifecycleJobSchema as Pn, validateCustomAddress as Pr, canonicalIconKey as Pt, PREFERENCES_MAX_VALUE_BYTES as Q, historyItemFieldPath as Qi, pickAppLinkHub as Qn, DeviceRole as Qr, deviceCredentialsCapability as Qt, FieldClaimSchema as R, assertValidDeclaration as Ri, logLevelAtMost as Rn, withLocationMode as Rr, compositionSourceRefs as Rt, DATABASE_SNAPSHOT_TIMEOUT_MS as S, sleep as Sa, ReadinessTimeoutError as Si, isArrayOutputSchema as Sn, snapshotCapability as Sr, alertsCapability as St, DERIVED_CAMERA_SILENCED_CAP_NAMES as T, transformSecretWrite as Ta, RecordTooLargeError as Ti, isDefaultAppConnectionEndpoint as Tn, storageCapability as Tr, backupCapability as Tt, KEYCHAIN_RESET_TRIGGER_ACTOR as U, collectZodSecretPaths as Ui, metricsProviderCapability as Un, composedDeviceStableId as Ur, coreBlocksCapability as Ut, HUB_MDNS_SERVICE_TYPE as V, collectSecretLeaves as Vi, mayWriteToLocation as Vn, cloneStatefulExpressionMemory as Vr, coreBlockIdFromAddonId as Vt, KeychainAuditEntrySchema as W, createEvent as Wi, modeMayWrite as Wn, compositionFeatureEnabled as Wr, createDeviceExtensionProvider as Wt, MOTION_CLOSE_AFTER_MS as X, expandCapMethods as Xi, parseAcceleratorFactsJson as Xn, toExpressionValue as Xr, deriveBatteryPresence as Xt, MINUTES_PER_DAY as Y, emitReadiness as Yi, objectInputDeclaresRequiredDeviceId as Yn, disarmRoseMemory as Yr, defineExtensionSlotProvider as Yt, NetworkTunnelStartedDataSchema as Z, formatSecretScope as Zi, parseStreamParamsFormPatch as Zn, DeviceFeature as Zr, describeComposableCaps as Zt, CatalogFileSchema as _, resolveCapMount as _a, RECORD_SWEEP_INTERVAL_MS as _i, gbToBytes as _n, scopesAllowDeviceCap as _r, addonPagesCapability as _t, BaseDevice as a, isSecretMarkerLike as aa, DEVICE_SETTINGS_CONTRIBUTION_METHODS as ai, enumerateInferenceDevices as an, reducePoints as ar, STORAGE_ACCESS_FALLBACK as at, DATABASE_SNAPSHOT_PARTIAL_SUFFIX as b, secretTreeFromPaths as ba, RUNTIME_DEFAULTS as bi, isAlertEpisodeSeverity as bn, shortHostname as br, alertEpisodeId as bt, CAMSTACK_APP_LINK_ORIGIN as c, mapSecretLeaves as ca, FilterRequiredError as ci, evaluateCompositionField as cn, resolveBucketMs as cr, ServerNameSchema as ct, COMPOSED_ITEM_FIXED_FIELDS as d, normalizeSecretOwner as da, InvalidRecordError as di, expressionContainsBuiltinCall as dn, resolveHubAddressRoles as dr, StorageLocationModeSchema as dt, isDeviceConfigCap as ea, errMsg as ei, deviceHistoryCapability as en, platformProbeCapability as er, PreferenceNamespaceSchema as et, COMPOSER_RUNNER_ID as f, parseJsonObject as fa, NoCallerError as fi, extractNestedAddonId as fn, resolveLocationMode as fr, StorageLocationTypeSchema as ft, CalendarPreferencesSchema as g, recordSecretRef as ga, RECORD_DELETE_BATCH as gi, formatMinutes as gn, scopesAllowAddon as gr, UserRecordSchema as gt, CREDENTIAL_TOKEN_AUDIENCE as h, readinessKey as ha, RECORD_BATCH_MAX_BYTES as hi, formatDeviceRevoker as hn, runtimeStatePolicyFor as hr, UNATTRIBUTED_BUCKET_KEY as ht, AlertSchema as i, isSecretMarker as ia, DATAPLANE_SECRET_HEADER as ii, deviceStatusCapability as in, recordsCapability as ir, RecordingStatusSchema as it, DEVICE_TOMBSTONE_RETENTION_MS as j, UnindexedFilterError as ji, keychainCapability as jn, supportedRuntimes as jr, buildStreamParamsConfigSchema as jt, DEVICE_SAN_CREDENTIAL_PREFIX as k, StoredRecordKindDeclarationSchema as ki, kebabToCamel as kn, streamCatalogCapability as kr, buildDeviceEnrollmentLink as kt, CAP_NAMES_WITH_STATUS as l, nodePin as la, ForeignSecretMarkerError as li, evictionPolicyOfLocation as ln, resolveCoreBlockEntry as lr, SsoBridgeClaimsSchema as lt, CORE_BLOCK_ADDON_PREFIX as m, parseSecretRef as ma, RECORD_BATCH_MAX as mi, foldSnapshotByFunction as mn, resolveNotificationTapAddress as mr, TokenScopeSchema as mt, AGENT_MDNS_TXT_KEYS as n, isKeychainStoredField as na, BatchTooLargeError as ni, deviceRemovalHookCapability as nn, ptzAutotrackCapability as nr, RECORDING_SOURCE_CAMSTACK_ADDON as nt, BatteryStatusSchema as o, isSecretRefOwnedBy as oa, DEVICE_STATUS_METHOD as oi, enumerateItemArrayFields as on, replacedFieldKeys as or, STREAM_PROFILE_META as ot, CORE_BLOCKS_ADDON_ID as p, parseJsonUnknown as pa, PlaintextSecretError as pi, filesystemBrowseCapability as pn, resolveMethodAuth as pr, StorageMigrationJobSchema as pt, LegacyStorageLocationDefaultSchema as q, defineRecordKinds as qi, normalizeUnit as qn, compositionSourceKey as qr, declarationOwnerNodeId as qt, ALL_CAPABILITY_DEFINITIONS as r, isSecretClear as ra, CALLER_STAMPED_CAPABILITIES as ri, deviceStateCapability as rn, recordEntriesCapability as rr, ROOT_BUCKET_KEY as rt, CAMERA_SWITCH_ORDER as s, makeSecretMarker as sa, DeclarationRefusedError as si, enumerateSchemaFields as sn, resolveAppConnections as sr, ScopedTokenSchema as st, AGENT_MDNS_SERVICE_TYPE as t, isEvent as ta, BaseAddon as ti, deviceManagerCapability as tn, procedureAuthKey as tr, PreferenceValueSchema as tt, CATALOG_LANGS as u, normalizeNodeId as ua, HISTORY_DEFAULT_MIN_INTERVAL_MS as ui, expandContainer as un, resolveCoreBlockFiles as ur, StorageCleanupJobSchema as ut, CoreBlockSchema as v, resolveSecretMarkers as va, REDACTED_SECRET as vi, interpolate as vn, scoreRuntimes as vr, addonSettingsCapability as vt, DAY_NAMES as w, toSecretFieldView as wa, RecordNotFoundError as wi, isCredentialTokenPayload as wn, storageAdminCapability as wr, authProviderCapability as wt, DATABASE_SNAPSHOT_SUFFIX as x, secretTreeFromSchema as xa, ReadinessRegistry as xi, isAppLinkBase as xn, siteZoneKey as xr, alertEpisodePayload as xt, CredentialTokenClaimsSchema as y, scopeKey as ya, REMOVE_LEAF as yi, isAlertEpisodeOpen as yn, settingsStoreCapability as yr, addonWidgetsCapability as yt, HISTORY_CATALOG as z, buildSecretRef as zi, looseSchema as zn, COMPOSER_ADDON_ID as zr, coreBlockAddonId as zt };
@@ -1,5 +1,5 @@
1
1
  require("./chunk-Cek0wNdY.js");
2
- const require_wal_maintenance = require("./wal-maintenance-Dxqd5igw.js");
2
+ const require_wal_maintenance = require("./wal-maintenance-BT8Ns0W3.js");
3
3
  let node_worker_threads = require("node:worker_threads");
4
4
  //#region src/builtins/sqlite-storage/file-host-worker.ts
5
5
  /**
@@ -1,4 +1,4 @@
1
- import { C as RecordsEngine, D as callVector, E as callRecords, O as controlTargetOf, T as callData, _ as collectTransferables, a as WalMaintenance, b as isFileHostWorkerData, h as serializeError, l as SqliteSettingsBackend, o as createVectorIndex, s as vectorProviderOf, w as callControl, x as trustInput, y as isFileHostRequest } from "./wal-maintenance-KHzJXlF2.mjs";
1
+ import { C as RecordsEngine, D as callVector, E as callRecords, O as controlTargetOf, T as callData, _ as collectTransferables, a as WalMaintenance, b as isFileHostWorkerData, h as serializeError, l as SqliteSettingsBackend, o as createVectorIndex, s as vectorProviderOf, w as callControl, x as trustInput, y as isFileHostRequest } from "./wal-maintenance-BuB731DK.mjs";
2
2
  import { parentPort, threadId, workerData } from "node:worker_threads";
3
3
  //#region src/builtins/sqlite-storage/file-host-worker.ts
4
4
  /**
@@ -1,7 +1,7 @@
1
1
  import { o as __toESM } from "./chunk-CNf5ZN-e.mjs";
2
- import { Ta as userError } from "./dist-CdFkkmXW.mjs";
2
+ import { Ea as userError } from "./dist-C9lbdBL5.mjs";
3
3
  import { f as X509Certificate$1 } from "./x509.es-DK__ETIe.mjs";
4
- import { D as reasonRequiresNewCa, E as evaluateExistingCert, F as readNameConstraints, N as permitsIdentity, _ as issueLeaf, b as collectCertIdentity, g as generateCa, j as isConstrainedCa, v as loadCa, y as localCaCommonName } from "./agent-https-JhvY1axF.mjs";
4
+ import { D as reasonRequiresNewCa, E as evaluateExistingCert, F as readNameConstraints, N as permitsIdentity, _ as issueLeaf, b as collectCertIdentity, g as generateCa, j as isConstrainedCa, v as loadCa, y as localCaCommonName } from "./agent-https-DOwn4pqL.mjs";
5
5
  import { X509Certificate, createPrivateKey } from "node:crypto";
6
6
  import { writeOwnerOnlyFileSync } from "@camstack/types/node";
7
7
  import { mkdir, writeFile } from "node:fs/promises";
@@ -1,7 +1,7 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_dist = require("./dist-DX5Fu3mV.js");
2
+ const require_dist = require("./dist-Bmah6waF.js");
3
3
  const require_x509_es = require("./x509.es-C4cOo48M.js");
4
- const require_agent_https = require("./agent-https-bnyFRK7Y.js");
4
+ const require_agent_https = require("./agent-https-B9Q3-IKd.js");
5
5
  let node_crypto = require("node:crypto");
6
6
  let _camstack_types_node = require("@camstack/types/node");
7
7
  let node_fs_promises = require("node:fs/promises");
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_chunk = require("./chunk-Cek0wNdY.js");
3
- const require_dist = require("./dist-DX5Fu3mV.js");
4
- const require_device_ca = require("./device-ca-CfiIg3a9.js");
3
+ const require_dist = require("./dist-Bmah6waF.js");
4
+ const require_device_ca = require("./device-ca-BXzQ1pYj.js");
5
5
  const require_read_all_rows$1 = require("./read-all-rows-CVoO1ONM.js");
6
6
  const require_builtins_alerts_alerts_addon = require("./builtins/alerts/alerts.addon.js");
7
7
  require("./builtins/alerts/index.js");
@@ -26,21 +26,21 @@ const require_builtins_loki_logging_index = require("./builtins/loki-logging/ind
26
26
  const require_builtins_native_metrics_native_metrics_addon = require("./builtins/native-metrics/native-metrics.addon.js");
27
27
  const require_builtins_device_history_device_history_addon = require("./builtins/device-history/device-history.addon.js");
28
28
  const require_builtins_sqlite_storage_filesystem_storage_addon = require("./builtins/sqlite-storage/filesystem-storage.addon.js");
29
- const require_wal_maintenance = require("./wal-maintenance-Dxqd5igw.js");
29
+ const require_wal_maintenance = require("./wal-maintenance-BT8Ns0W3.js");
30
30
  const require_builtins_sqlite_storage_sqlite_settings_addon = require("./builtins/sqlite-storage/sqlite-settings.addon.js");
31
31
  const require_builtins_sqlite_storage_index = require("./builtins/sqlite-storage/index.js");
32
32
  const require_builtins_storage_orchestrator_storage_orchestrator_addon = require("./builtins/storage-orchestrator/storage-orchestrator.addon.js");
33
33
  require("./builtins/storage-orchestrator/index.js");
34
- const require_agent_https = require("./agent-https-bnyFRK7Y.js");
35
- const require_constants = require("./constants-CqbO6e9i.js");
34
+ const require_agent_https = require("./agent-https-B9Q3-IKd.js");
35
+ const require_constants = require("./constants-XkWSVvgY.js");
36
36
  const require_builtins_system_config_system_config_addon = require("./builtins/system-config/system-config.addon.js");
37
37
  require("./builtins/system-config/index.js");
38
38
  const require_builtins_winston_logging_index = require("./builtins/winston-logging/index.js");
39
39
  const require_custom_action_registry = require("./custom-action-registry-MRyes5j0.js");
40
- const require_hub_mdns_ciao = require("./hub-mdns-ciao-C174UDzO.js");
40
+ const require_hub_mdns_ciao = require("./hub-mdns-ciao-CUr6ewsX.js");
41
41
  const require_platform_key_source = require("./platform-key-source-Di7HrlGR.js");
42
42
  const require_resource_monitor = require("./resource-monitor-mio9dSCT.js");
43
- const require_restore_archive = require("./restore-archive-B2jIFfu_.js");
43
+ const require_restore_archive = require("./restore-archive-DbPmyjiM.js");
44
44
  const require_coral_accelerators = require("./coral-accelerators-BSVsBVzt.js");
45
45
  let zod = require("zod");
46
46
  let node_crypto = require("node:crypto");
@@ -27185,6 +27185,7 @@ var en_default = {
27185
27185
  "auth.session-ended": "Session ended — sign in again",
27186
27186
  "auth.access-denied": "Access denied",
27187
27187
  "auth.totp-confirm-failed": "TOTP confirmation failed — code did not match",
27188
+ "auth.person-scopes-refused": "A person is an admin, with no scope rows, or holds exactly one viewer grant",
27188
27189
  "device.certificates-unavailable": "Device certificates are not available",
27189
27190
  "device.not-found": "Device {id} not found",
27190
27191
  "device.credentials-unavailable": "Device credentials not available",
@@ -27436,6 +27437,7 @@ var it_default = {
27436
27437
  "auth.session-ended": "Sessione terminata — accedi di nuovo",
27437
27438
  "auth.access-denied": "Accesso negato",
27438
27439
  "auth.totp-confirm-failed": "Conferma TOTP non riuscita — il codice non corrisponde",
27440
+ "auth.person-scopes-refused": "Una persona è amministratore, senza righe di permesso, oppure ha esattamente un permesso visualizzatore",
27439
27441
  "device.certificates-unavailable": "I certificati dei dispositivi non sono disponibili",
27440
27442
  "device.not-found": "Dispositivo {id} non trovato",
27441
27443
  "device.credentials-unavailable": "Le credenziali del dispositivo non sono disponibili",
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { i as __require } from "./chunk-CNf5ZN-e.mjs";
2
- import { $r as errMsg$1, Ar as supportedRuntimes, Cn as isCollectionArrayMethod, Da as EventCategory$1, Dn as isObjectInput, Ea as withoutCallerStamp, Fi as asString$1, J as METHOD_ACCESS_MAP, Jn as objectInputDeclaresAddonId, K as LOG_LEVEL_RANK, Ki as defineRecordKinds, Ni as asJsonObject$1, On as isVoidInput, Pi as asNumber, Pn as lifecycleJobSchema, Rn as logLevelAtMost, Sn as isArrayOutputSchema, Sr as splitTranslationRef, Ta as userError, Ui as createEvent$1, Yi as expandCapMethods, Yn as objectInputDeclaresRequiredDeviceId, _ as CatalogFileSchema, ai as DEVICE_STATUS_METHOD, bi as ReadinessRegistry, da as parseJsonObject, er as procedureAuthKey, fa as parseJsonUnknown, fn as extractNestedAddonId, fr as resolveMethodAuth, ga as resolveCapMount, gr as scopesAllowDeviceCap, hr as scopesAllowAddon, ii as DEVICE_SETTINGS_CONTRIBUTION_METHODS, kn as kebabToCamel$1, ma as readinessKey, n as AGENT_MDNS_TXT_KEYS, ni as CALLER_STAMPED_CAPABILITIES$1, qi as emitDownForOwnedCaps, r as ALL_CAPABILITY_DEFINITIONS, ri as DATAPLANE_SECRET_HEADER$1, t as AGENT_MDNS_SERVICE_TYPE, u as CATALOG_LANGS, va as scopeKey, vn as interpolate, vt as addonSettingsCapability, xi as ReadinessTimeoutError, yi as RUNTIME_DEFAULTS, zn as looseSchema } from "./dist-CdFkkmXW.mjs";
3
- import { d as JWT_SIGNING_KEY_REF, f as JwtSigningKeyUnavailableError, g as processJwtSigningKey, i as generateDeviceCa, l as verifyDeviceLeaf, m as getProcessJwtSigningKeyState, n as DEVICE_CA_KEY_REF, o as issueDeviceLeaf, p as SYSTEM_SECRET_OWNER, s as loadDeviceCa, u as verifyDeviceSignature, v as staticJwtSigningKey } from "./device-ca-BWTWWBcc.mjs";
2
+ import { Cn as isCollectionArrayMethod, Cr as splitTranslationRef, Da as withoutCallerStamp, Dn as isObjectInput, Ea as userError, Fi as asNumber, Ii as asString$1, J as METHOD_ACCESS_MAP, Ji as emitDownForOwnedCaps, Jn as objectInputDeclaresAddonId, K as LOG_LEVEL_RANK, Oa as EventCategory$1, On as isVoidInput, Pi as asJsonObject$1, Pn as lifecycleJobSchema, Rn as logLevelAtMost, Si as ReadinessTimeoutError, Sn as isArrayOutputSchema, Wi as createEvent$1, Xi as expandCapMethods, Yn as objectInputDeclaresRequiredDeviceId, _ as CatalogFileSchema, _a as resolveCapMount, _r as scopesAllowDeviceCap, ai as DEVICE_SETTINGS_CONTRIBUTION_METHODS, bi as RUNTIME_DEFAULTS, ei as errMsg$1, fa as parseJsonObject, fn as extractNestedAddonId, gr as scopesAllowAddon, ha as readinessKey, ii as DATAPLANE_SECRET_HEADER$1, jr as supportedRuntimes, kn as kebabToCamel$1, n as AGENT_MDNS_TXT_KEYS, oi as DEVICE_STATUS_METHOD, pa as parseJsonUnknown, pr as resolveMethodAuth, qi as defineRecordKinds, r as ALL_CAPABILITY_DEFINITIONS, ri as CALLER_STAMPED_CAPABILITIES$1, t as AGENT_MDNS_SERVICE_TYPE, tr as procedureAuthKey, u as CATALOG_LANGS, vn as interpolate, vt as addonSettingsCapability, xi as ReadinessRegistry, ya as scopeKey, zn as looseSchema } from "./dist-C9lbdBL5.mjs";
3
+ import { d as JWT_SIGNING_KEY_REF, f as JwtSigningKeyUnavailableError, g as processJwtSigningKey, i as generateDeviceCa, l as verifyDeviceLeaf, m as getProcessJwtSigningKeyState, n as DEVICE_CA_KEY_REF, o as issueDeviceLeaf, p as SYSTEM_SECRET_OWNER, s as loadDeviceCa, u as verifyDeviceSignature, v as staticJwtSigningKey } from "./device-ca-DyUtcpf4.mjs";
4
4
  import { t as require_read_all_rows } from "./read-all-rows-TaPqdWNF.mjs";
5
5
  import { AlertCenterAddon } from "./builtins/alerts/alerts.addon.mjs";
6
6
  import "./builtins/alerts/index.mjs";
@@ -25,21 +25,21 @@ import { LokiDestination, LokiLoggingAddon } from "./builtins/loki-logging/index
25
25
  import NativeMetricsAddon, { a as NativeMetricsProvider, n as nodeProcReader, r as parseProcStat } from "./builtins/native-metrics/native-metrics.addon.mjs";
26
26
  import { DeviceHistoryAddon } from "./builtins/device-history/device-history.addon.mjs";
27
27
  import { FilesystemStorageAddon, t as FilesystemStorageProvider } from "./builtins/sqlite-storage/filesystem-storage.addon.mjs";
28
- import { C as RecordsEngine, l as SqliteSettingsBackend } from "./wal-maintenance-KHzJXlF2.mjs";
28
+ import { C as RecordsEngine, l as SqliteSettingsBackend } from "./wal-maintenance-BuB731DK.mjs";
29
29
  import { SqliteSettingsAddon } from "./builtins/sqlite-storage/sqlite-settings.addon.mjs";
30
30
  import { ConfigStore, DeviceStore } from "./builtins/sqlite-storage/index.mjs";
31
31
  import { StorageOrchestratorAddon, a as stripForwardedCaller, i as createHubCapForwardService, l as STORAGE_DRAIN_STATE_LEGACY, n as HUB_CAP_FWD_ACTION, o as buildStorageLocationRegistry, r as HUB_CAP_FWD_SERVICE, t as StorageOrchestratorService, u as storageOrchestratorRecordKinds } from "./builtins/storage-orchestrator/storage-orchestrator.addon.mjs";
32
32
  import "./builtins/storage-orchestrator/index.mjs";
33
- import { A as buildNameConstraintSet, B as setProcessAgentHttpsNames, C as LEAF_RENEWAL_WINDOW_DAYS, E as evaluateExistingCert, F as readNameConstraints, I as AGENT_HTTPS_NAMES_COLLECTION, L as AGENT_HTTPS_NAMES_COLUMNS, M as isLocalOnlyHostname, N as permitsIdentity, O as PERMITTED_DNS_SUFFIXES, P as permitsName, R as AgentHttpsNames, S as CA_VALIDITY_DAYS, T as SERVER_AUTH_OID, a as collectAgentNames, b as collectCertIdentity, c as installAgentHttps, d as issueAgentHttpsLeaf, f as loadAgentHttps, h as CA_COMMON_NAME, i as certificateNames, j as isConstrainedCa, k as PERMITTED_IP_RANGES, l as isContainerBridgeAddress, m as pinnedHttpsCaFingerprint, n as acceptAgentSans, o as createAgentHttpsRequest, p as pemDigest, r as agentHttpsPaths, s as describeHttpsLeaf, t as AgentHttpsInstallError, u as isPrivateAddress, w as MAX_LEAF_VALIDITY_DAYS, x as systemHostFacts, y as localCaCommonName, z as getProcessAgentHttpsNames } from "./agent-https-JhvY1axF.mjs";
34
- import { a as MESH_CA_KEY_REF, i as MESH_CA_FIELD, n as DEFAULT_HUB_TLS_TCP_PORT, o as MESH_CA_SETTINGS_KEY } from "./constants-zBiEodEM.mjs";
33
+ import { A as buildNameConstraintSet, B as setProcessAgentHttpsNames, C as LEAF_RENEWAL_WINDOW_DAYS, E as evaluateExistingCert, F as readNameConstraints, I as AGENT_HTTPS_NAMES_COLLECTION, L as AGENT_HTTPS_NAMES_COLUMNS, M as isLocalOnlyHostname, N as permitsIdentity, O as PERMITTED_DNS_SUFFIXES, P as permitsName, R as AgentHttpsNames, S as CA_VALIDITY_DAYS, T as SERVER_AUTH_OID, a as collectAgentNames, b as collectCertIdentity, c as installAgentHttps, d as issueAgentHttpsLeaf, f as loadAgentHttps, h as CA_COMMON_NAME, i as certificateNames, j as isConstrainedCa, k as PERMITTED_IP_RANGES, l as isContainerBridgeAddress, m as pinnedHttpsCaFingerprint, n as acceptAgentSans, o as createAgentHttpsRequest, p as pemDigest, r as agentHttpsPaths, s as describeHttpsLeaf, t as AgentHttpsInstallError, u as isPrivateAddress, w as MAX_LEAF_VALIDITY_DAYS, x as systemHostFacts, y as localCaCommonName, z as getProcessAgentHttpsNames } from "./agent-https-DOwn4pqL.mjs";
34
+ import { a as MESH_CA_KEY_REF, i as MESH_CA_FIELD, n as DEFAULT_HUB_TLS_TCP_PORT, o as MESH_CA_SETTINGS_KEY } from "./constants-p5mPM1iL.mjs";
35
35
  import { $ as generateMeshKeyPair, A as setProcessMeshPeerTransportLookup, B as describeMeshLeaf, C as setProcessMeshTlsEnabler, D as getProcessPeerLeaf, E as getProcessNodeMeshTransport, F as setProcessMeshTlsListenerState, G as MeshCaKeeper, H as setProcessMeshCertificateRegistry, I as MESH_NODE_CERTIFICATES_COLLECTION, J as caFingerprint, K as getProcessMeshCaState, L as MESH_NODE_CERTIFICATES_COLUMNS, M as revokeMeshCertificate, N as getProcessMeshTlsListenerState, O as isProcessVerifiedMeshPeer, P as openMeshTlsWhenRevocationsLoaded, Q as generateMeshCa, R as MeshCertificateRegistry, S as ServiceBroker, SystemConfigAddon, T as emitProcessNodeRegistered, U as MeshCrl, V as getProcessMeshCertificateRegistry, W as processMeshCrl, X as createMeshCsrPem, Y as caFingerprintCompact, Z as exportMeshPrivateKeyPem, _ as signPairingProof, _t as readCidrSetting, a as hubHostFromMeshAddress, at as AGENT_UI_UNLOCK_TTL_MS, b as TlsTcpTransporter, c as PAIRING_MAX_SESSIONS, ct as AGENT_UI_UNLOCK_VERSION, d as PAIRING_PROTOCOL, dt as mintAgentUiUnlockTicket, et as isValidAgentNodeId, f as PAIRING_TTL_MS, ft as parseAgentDashboardOrigins, g as keyFingerprintShort, gt as parseCidrList, h as describeCsr, ht as normalizeIp, i as AgentPairing, it as AGENT_DASHBOARD_ORIGINS_FIELD, j as renewMeshCertificate, k as onProcessNodeRegistered, l as PAIRING_PATHS, lt as UnlockTicketJtiStore, m as computePairingSas, mt as createCidrMatcher, n as HubPairing, nt as issueMeshLeafFromCsr, o as PAIRING_CODE_DIGITS, ot as AGENT_UI_UNLOCK_TYP, p as computePairingCommitment, pt as verifyAgentUiUnlockTicket, q as requireProcessMeshCa, r as PairingHttpError, rt as loadMeshCa, s as PAIRING_MAX_CODE_ATTEMPTS, st as AGENT_UI_UNLOCK_USE, tt as issueMeshLeafForNode, u as PAIRING_PIN_DIGITS, ut as isAllowedAgentDashboardReturnTo, v as verifyPairingProof, w as dropProcessPeer, x as Errors, y as MESH_TLS_PORT_HELLO_FIELD, z as RENEWAL_ABANDONED } from "./builtins/system-config/system-config.addon.mjs";
36
36
  import "./builtins/system-config/index.mjs";
37
37
  import { WinstonDestination, WinstonLoggingAddon } from "./builtins/winston-logging/index.mjs";
38
38
  import { C as isModelDownloaded, T as revisionWeightUrl, _ as downloadFile, a as startEventLoopStallMonitor, b as fetchJson, c as createAuthenticatedFileServer, d as resolveFilePath, f as ModelDownloadService, g as deleteModelFromDisk, h as collectModelFiles, i as attributeStall, l as parseRangeHeader, m as adoptModelRevisions, n as STALL_REPORT_MS, o as createFileDataPlaneHandler, r as STALL_TICK_MS, s as contentTypeFor, t as CustomActionRegistry, u as parseTokenizedUrl, v as downloadModel, w as resolveFormatRevision, x as getModelFilePath, y as ensureModel } from "./custom-action-registry-DZSCLBuT.mjs";
39
- import { A as allFamiliesListenHost, C as caReplacementMarkerFile, D as replaceUnconstrainedLocalCa, E as reissueTlsLeaf, F as registerLanHttpHandler, M as bindPendingLanHttp, N as closeLanHttp, O as retirePreviousLocalCa, P as readLanHttpState, S as validateUploadedTls, T as loadTlsCert, _ as splitPemCertificates, a as storeUploadedCertificate, b as chainsToPublicRoot, c as leafFingerprintOf, d as servedHttpsLeafFingerprint, f as prepareBootTls, g as readTlsMode, h as readTlsAccessStatus, i as revertToGeneratedCertificate, j as applyLanHttp, k as DEFAULT_LAN_HTTP_PORT, l as registerHttpsListener, m as readExtraSans, n as applyCertificateToListener, o as useStoredUploadedCertificate, p as UPLOADED_CA_FILE, r as regenerateCertificate, s as clearHttpsListener, t as createCiaoPublisher, u as reloadHttpsListener, v as writeExtraSans, w as ensureTlsCert, x as checkUploadedCa, y as writeTlsMode } from "./hub-mdns-ciao-CYp1Gipm.mjs";
39
+ import { A as allFamiliesListenHost, C as caReplacementMarkerFile, D as replaceUnconstrainedLocalCa, E as reissueTlsLeaf, F as registerLanHttpHandler, M as bindPendingLanHttp, N as closeLanHttp, O as retirePreviousLocalCa, P as readLanHttpState, S as validateUploadedTls, T as loadTlsCert, _ as splitPemCertificates, a as storeUploadedCertificate, b as chainsToPublicRoot, c as leafFingerprintOf, d as servedHttpsLeafFingerprint, f as prepareBootTls, g as readTlsMode, h as readTlsAccessStatus, i as revertToGeneratedCertificate, j as applyLanHttp, k as DEFAULT_LAN_HTTP_PORT, l as registerHttpsListener, m as readExtraSans, n as applyCertificateToListener, o as useStoredUploadedCertificate, p as UPLOADED_CA_FILE, r as regenerateCertificate, s as clearHttpsListener, t as createCiaoPublisher, u as reloadHttpsListener, v as writeExtraSans, w as ensureTlsCert, x as checkUploadedCa, y as writeTlsMode } from "./hub-mdns-ciao-BemeCNGe.mjs";
40
40
  import { n as getPlatformKeychainKey, r as setPlatformKeychainKey, t as clearPlatformKeychainKey } from "./platform-key-source-BWlq0jjn.mjs";
41
41
  import { n as getSinglePidStats, t as getPidStats } from "./resource-monitor-Di9daRwI.mjs";
42
- import { _ as backupRecordStoresOf, c as BackupDecryptError, f as generateBackupKeyPair, g as backupOrchestratorRecordKinds, h as readBackupEncryptionHeader, l as BackupKeyFormatError, r as prepareRestoreArchive, s as SystemBackupService, t as BackupKeyRequiredError, u as BackupKeyMismatchError } from "./restore-archive-BX0gaKtG.mjs";
42
+ import { _ as backupRecordStoresOf, c as BackupDecryptError, f as generateBackupKeyPair, g as backupOrchestratorRecordKinds, h as readBackupEncryptionHeader, l as BackupKeyFormatError, r as prepareRestoreArchive, s as SystemBackupService, t as BackupKeyRequiredError, u as BackupKeyMismatchError } from "./restore-archive-C0aohmAK.mjs";
43
43
  import { r as nodeCoralFs, t as classifyCoralAccelerator } from "./coral-accelerators-DBlgWB8k.mjs";
44
44
  import { z } from "zod";
45
45
  import * as crypto$1 from "node:crypto";
@@ -27182,6 +27182,7 @@ var en_default = {
27182
27182
  "auth.session-ended": "Session ended — sign in again",
27183
27183
  "auth.access-denied": "Access denied",
27184
27184
  "auth.totp-confirm-failed": "TOTP confirmation failed — code did not match",
27185
+ "auth.person-scopes-refused": "A person is an admin, with no scope rows, or holds exactly one viewer grant",
27185
27186
  "device.certificates-unavailable": "Device certificates are not available",
27186
27187
  "device.not-found": "Device {id} not found",
27187
27188
  "device.credentials-unavailable": "Device credentials not available",
@@ -27433,6 +27434,7 @@ var it_default = {
27433
27434
  "auth.session-ended": "Sessione terminata — accedi di nuovo",
27434
27435
  "auth.access-denied": "Accesso negato",
27435
27436
  "auth.totp-confirm-failed": "Conferma TOTP non riuscita — il codice non corrisponde",
27437
+ "auth.person-scopes-refused": "Una persona è amministratore, senza righe di permesso, oppure ha esattamente un permesso visualizzatore",
27436
27438
  "device.certificates-unavailable": "I certificati dei dispositivi non sono disponibili",
27437
27439
  "device.not-found": "Dispositivo {id} non trovato",
27438
27440
  "device.credentials-unavailable": "Le credenziali del dispositivo non sono disponibili",