@camstack/system 1.2.438 → 1.2.439

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 (92) hide show
  1. package/dist/{agent-https-BZIwS4xF.js → agent-https-DlpTMDqA.js} +252 -22
  2. package/dist/{agent-https-BPfHrI4c.mjs → agent-https-U0d4uvn2.mjs} +211 -23
  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-manager/device-manager.addon.js +18 -3
  24. package/dist/builtins/device-manager/device-manager.addon.mjs +18 -3
  25. package/dist/builtins/device-manager/device-tombstone-store.d.ts +12 -2
  26. package/dist/builtins/hub-forwarder/index.js +1 -1
  27. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  28. package/dist/builtins/keychain/index.js +3 -3
  29. package/dist/builtins/keychain/index.mjs +3 -3
  30. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  31. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  32. package/dist/builtins/local-auth/local-auth.addon.js +2 -2
  33. package/dist/builtins/local-auth/local-auth.addon.mjs +2 -2
  34. package/dist/builtins/local-network/local-network.addon.js +7 -2
  35. package/dist/builtins/local-network/local-network.addon.mjs +7 -2
  36. package/dist/builtins/loki-logging/index.js +1 -1
  37. package/dist/builtins/loki-logging/index.mjs +1 -1
  38. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  39. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  40. package/dist/builtins/platform-probe/index.js +1 -1
  41. package/dist/builtins/platform-probe/index.mjs +1 -1
  42. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  43. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  44. package/dist/builtins/snapshot/index.js +1 -1
  45. package/dist/builtins/snapshot/index.mjs +1 -1
  46. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  47. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  48. package/dist/builtins/sqlite-storage/index.js +1 -1
  49. package/dist/builtins/sqlite-storage/index.mjs +1 -1
  50. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +3 -3
  51. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +3 -3
  52. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  53. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  54. package/dist/builtins/system-config/system-config.addon.js +4 -4
  55. package/dist/builtins/system-config/system-config.addon.mjs +4 -4
  56. package/dist/builtins/winston-logging/index.js +1 -1
  57. package/dist/builtins/winston-logging/index.mjs +1 -1
  58. package/dist/{composition-sources-DI3Z83vG.js → composition-sources-B4jC2FC7.js} +1 -1
  59. package/dist/{composition-sources-DpHGCjdL.mjs → composition-sources-BGOSCGWa.mjs} +1 -1
  60. package/dist/{constants-DQK705Sb.mjs → constants-B92BjObl.mjs} +1 -1
  61. package/dist/{constants-wkcn5Ij3.js → constants-BRsjQwi-.js} +1 -1
  62. package/dist/{device-ca-DvIZjXIl.mjs → device-ca-46BUsWD1.mjs} +2 -2
  63. package/dist/{device-ca-BSvkXqyI.js → device-ca-DHG9OW2m.js} +2 -2
  64. package/dist/{dist-GgG-7amw.js → dist-BOWdLjoK.js} +34 -7
  65. package/dist/{dist-Dc8GKC5H.mjs → dist-yI6kF6r6.mjs} +34 -7
  66. package/dist/file-host-worker.js +1 -1
  67. package/dist/file-host-worker.mjs +1 -1
  68. package/dist/{hub-mdns-ciao-CBLvq2oj.js → hub-mdns-ciao-D7S5AJRU.js} +377 -69
  69. package/dist/{hub-mdns-ciao-DMlQTdPU.mjs → hub-mdns-ciao-DGwVc2uh.mjs} +344 -72
  70. package/dist/index.js +42 -9
  71. package/dist/index.mjs +30 -10
  72. package/dist/{lib-NNxHSOIE.js → lib-8oZrELLm.js} +1 -1
  73. package/dist/{lib-BeGzVQcd.mjs → lib-DK38ompL.mjs} +1 -1
  74. package/dist/{restore-archive-DPg9duVY.mjs → restore-archive-CpdUO-uS.mjs} +1 -1
  75. package/dist/{restore-archive-CTRz8v9o.js → restore-archive-DiGiI6Jp.js} +1 -1
  76. package/dist/{retired-settings-keys-Dr_4lfKu.js → retired-settings-keys-CyQ7uvta.js} +1 -1
  77. package/dist/{retired-settings-keys-Is0zO8gX.mjs → retired-settings-keys-UsVtLOT0.mjs} +1 -1
  78. package/dist/tls/agent-https.d.ts +2 -2
  79. package/dist/tls/boot-tls.d.ts +6 -0
  80. package/dist/tls/cert-evaluation.d.ts +1 -1
  81. package/dist/tls/cert-issue.d.ts +5 -1
  82. package/dist/tls/cert-manager.d.ts +18 -0
  83. package/dist/tls/cert-name-constraints.d.ts +53 -0
  84. package/dist/tls/index.d.ts +5 -4
  85. package/dist/tls/tls-actions.d.ts +27 -7
  86. package/dist/tls/tls-status.d.ts +22 -0
  87. package/dist/tls/uploaded-cert.d.ts +36 -4
  88. package/dist/{wal-maintenance-mjB2i-VR.js → wal-maintenance-DEL_jeG0.js} +0 -0
  89. package/dist/{wal-maintenance-Bx3lcVA7.mjs → wal-maintenance-xsvdT5Go.mjs} +0 -0
  90. package/dist/{x509.es-r7Ht1thA.js → x509.es-C4cOo48M.js} +36 -0
  91. package/dist/{x509.es-CDvj67p1.mjs → x509.es-DK__ETIe.mjs} +1 -1
  92. package/package.json +3 -1
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-GgG-7amw.js");
6
+ const require_dist = require("../../dist-BOWdLjoK.js");
7
7
  let zod = require("zod");
8
8
  let node_crypto = require("node:crypto");
9
9
  let _camstack_types_node = require("@camstack/types/node");
@@ -1,4 +1,4 @@
1
- import { $ as StorageLocationTypeSchema, $n as storageMigrationCapability, Bn as resolveLocationMode, Hr as collectSecretConfigKeys, Mr as REDACTED_SECRET, Or as BaseAddon, Q as StorageLocationModeSchema, Qn as storageCapability, Ut as evictionPolicyOfLocation, Z as StorageCleanupJobSchema, Zt as gbToBytes, _i as transformSecretWrite, _n as mayReadLocation, di as resolveSecretMarkers, dr as withLocationMode, et as StorageMigrationJobSchema, ni as isSecretMarker, oi as parseJsonObject, pi as secretTreeFromPaths, qn as settingsStoreCapability, rn as isLocationEnabled, un as legacyModeOf, vn as mayWriteToLocation, xn as modeMayWrite, yi as EventCategory, z as LegacyStorageLocationDefaultSchema } from "../../dist-Dc8GKC5H.mjs";
1
+ import { $ as StorageLocationTypeSchema, $n as storageMigrationCapability, Bn as resolveLocationMode, Hr as collectSecretConfigKeys, Mr as REDACTED_SECRET, Or as BaseAddon, Q as StorageLocationModeSchema, Qn as storageCapability, Ut as evictionPolicyOfLocation, Z as StorageCleanupJobSchema, Zt as gbToBytes, _i as transformSecretWrite, _n as mayReadLocation, di as resolveSecretMarkers, dr as withLocationMode, et as StorageMigrationJobSchema, ni as isSecretMarker, oi as parseJsonObject, pi as secretTreeFromPaths, qn as settingsStoreCapability, rn as isLocationEnabled, un as legacyModeOf, vn as mayWriteToLocation, xn as modeMayWrite, yi as EventCategory, z as LegacyStorageLocationDefaultSchema } from "../../dist-yI6kF6r6.mjs";
2
2
  import { z } from "zod";
3
3
  import { randomUUID } from "node:crypto";
4
4
  import { containsOrEquals, physicalRootOf } from "@camstack/types/node";
@@ -3,11 +3,11 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-GgG-7amw.js");
6
+ const require_dist = require("../../dist-BOWdLjoK.js");
7
7
  const require_safe_buffer$1 = require("../../safe-buffer-D3aoa-7X.js");
8
- const require_x509_es = require("../../x509.es-r7Ht1thA.js");
9
- const require_agent_https = require("../../agent-https-BZIwS4xF.js");
10
- const require_constants$8 = require("../../constants-wkcn5Ij3.js");
8
+ const require_x509_es = require("../../x509.es-C4cOo48M.js");
9
+ const require_agent_https = require("../../agent-https-DlpTMDqA.js");
10
+ const require_constants$8 = require("../../constants-BRsjQwi-.js");
11
11
  const require_src$1 = require("../../src-CnAqG6EF.js");
12
12
  let zod = require("zod");
13
13
  let node_crypto = require("node:crypto");
@@ -1,9 +1,9 @@
1
1
  import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM, r as __exportAll, t as __commonJSMin } from "../../chunk-CNf5ZN-e.mjs";
2
- import { Dr as errMsg, Gr as customAction, Jn as shortHostname, Kr as defineCustomActions, Or as BaseAddon, Y as ServerNameSchema, Zr as hydrateSchema } from "../../dist-Dc8GKC5H.mjs";
2
+ import { Dr as errMsg, Gr as customAction, Jn as shortHostname, Kr as defineCustomActions, Or as BaseAddon, Y as ServerNameSchema, Zr as hydrateSchema } from "../../dist-yI6kF6r6.mjs";
3
3
  import { t as require_safe_buffer } from "../../safe-buffer-B1OjL1I9.mjs";
4
- import { a as KeyUsagesExtension, c as Pkcs10CertificateRequestGenerator, d as X509Certificate$1, f as X509CertificateGenerator, g as backdatedNotBefore, i as KeyUsageFlags, n as BasicConstraintsExtension, o as PemConverter, p as cryptoProvider, r as ExtendedKeyUsageExtension, s as Pkcs10CertificateRequest, t as AuthorityKeyIdentifierExtension, u as SubjectKeyIdentifierExtension } from "../../x509.es-CDvj67p1.mjs";
5
- import { A as AgentHttpsNames, M as setProcessAgentHttpsNames, O as AGENT_HTTPS_NAMES_COLLECTION, d as isPrivateAddress, j as getProcessAgentHttpsNames, k as AGENT_HTTPS_NAMES_COLUMNS, u as isLocalOnlyHostname } from "../../agent-https-BPfHrI4c.mjs";
6
- import { a as MESH_CA_KEY_REF, c as SERVER_AUTH_OID, i as MESH_CA_FIELD, n as DEFAULT_HUB_TLS_TCP_PORT, o as MESH_CA_SETTINGS_KEY, r as MESH_CA_COMMON_NAME, s as MESH_CA_VALIDITY_DAYS, t as CLIENT_AUTH_OID } from "../../constants-DQK705Sb.mjs";
4
+ import { S as backdatedNotBefore, a as KeyUsageFlags, c as Pkcs10CertificateRequest, d as SubjectKeyIdentifierExtension, f as X509Certificate$1, l as Pkcs10CertificateRequestGenerator, m as cryptoProvider, n as BasicConstraintsExtension, o as KeyUsagesExtension, p as X509CertificateGenerator, r as ExtendedKeyUsageExtension, s as PemConverter, t as AuthorityKeyIdentifierExtension } from "../../x509.es-DK__ETIe.mjs";
5
+ import { F as AGENT_HTTPS_NAMES_COLLECTION, I as AGENT_HTTPS_NAMES_COLUMNS, L as AgentHttpsNames, R as getProcessAgentHttpsNames, j as isLocalOnlyHostname, u as isPrivateAddress, z as setProcessAgentHttpsNames } from "../../agent-https-U0d4uvn2.mjs";
6
+ import { a as MESH_CA_KEY_REF, c as SERVER_AUTH_OID, i as MESH_CA_FIELD, n as DEFAULT_HUB_TLS_TCP_PORT, o as MESH_CA_SETTINGS_KEY, r as MESH_CA_COMMON_NAME, s as MESH_CA_VALIDITY_DAYS, t as CLIENT_AUTH_OID } from "../../constants-B92BjObl.mjs";
7
7
  import { t as require_src } from "../../src-hG4grMU4.mjs";
8
8
  import { z } from "zod";
9
9
  import { X509Certificate, createHash, createPrivateKey, randomBytes, randomInt, sign, timingSafeEqual, verify, webcrypto } from "node:crypto";
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
5
  const require_chunk = require("../../chunk-Cek0wNdY.js");
6
- const require_dist = require("../../dist-GgG-7amw.js");
6
+ const require_dist = require("../../dist-BOWdLjoK.js");
7
7
  const require_formatter = require("../../formatter-DqAKDlvN.js");
8
8
  let node_path = require("node:path");
9
9
  node_path = require_chunk.__toESM(node_path);
@@ -1,4 +1,4 @@
1
- import { Or as BaseAddon, mn as logDestinationCapability } from "../../dist-Dc8GKC5H.mjs";
1
+ import { Or as BaseAddon, mn as logDestinationCapability } from "../../dist-yI6kF6r6.mjs";
2
2
  import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
3
3
  import * as path$1 from "node:path";
4
4
  import path from "node:path";
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-GgG-7amw.js");
1
+ const require_dist = require("./dist-BOWdLjoK.js");
2
2
  //#region src/builtins/core-blocks/composition-sources.ts
3
3
  /**
4
4
  * Describe what a composition reads and writes for SAVE-time validation
@@ -1,4 +1,4 @@
1
- import { Dr as errMsg, br as compositionSourceKey } from "./dist-Dc8GKC5H.mjs";
1
+ import { Dr as errMsg, br as compositionSourceKey } from "./dist-yI6kF6r6.mjs";
2
2
  //#region src/builtins/core-blocks/composition-sources.ts
3
3
  /**
4
4
  * Describe what a composition reads and writes for SAVE-time validation
@@ -1,4 +1,4 @@
1
- import { Vr as buildSecretRef } from "./dist-Dc8GKC5H.mjs";
1
+ import { Vr as buildSecretRef } from "./dist-yI6kF6r6.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,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-GgG-7amw.js").buildSecretRef({
2
+ var MESH_CA_KEY_REF = require("./dist-BOWdLjoK.js").buildSecretRef({
3
3
  owner: "system",
4
4
  scope: { kind: "global" },
5
5
  fieldPath: "meshCaKey"
@@ -1,5 +1,5 @@
1
- import { D as DEVICE_SAN_CREDENTIAL_PREFIX, O as DEVICE_SAN_USER_PREFIX, Vr as buildSecretRef } from "./dist-Dc8GKC5H.mjs";
2
- import { a as KeyUsagesExtension, d as X509Certificate$1, f as X509CertificateGenerator, g as backdatedNotBefore, i as KeyUsageFlags, l as SubjectAlternativeNameExtension, n as BasicConstraintsExtension, o as PemConverter, p as cryptoProvider, r as ExtendedKeyUsageExtension, t as AuthorityKeyIdentifierExtension, u as SubjectKeyIdentifierExtension } from "./x509.es-CDvj67p1.mjs";
1
+ import { D as DEVICE_SAN_CREDENTIAL_PREFIX, O as DEVICE_SAN_USER_PREFIX, Vr as buildSecretRef } from "./dist-yI6kF6r6.mjs";
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
5
5
  /**
@@ -1,5 +1,5 @@
1
- const require_dist = require("./dist-GgG-7amw.js");
2
- const require_x509_es = require("./x509.es-r7Ht1thA.js");
1
+ const require_dist = require("./dist-BOWdLjoK.js");
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
5
5
  /**
@@ -9321,11 +9321,10 @@ var ClipModelMetaSchema = zod.z.object({
9321
9321
  /**
9322
9322
  * The `vector-store` index this model's vectors live in. ONE feature space
9323
9323
  * per index: two models share an index only when their vectors are ranked
9324
- * against each other, which for CLIP means never across families. MobileCLIP
9325
- * S1 and S2 share `object-clip` for history (separated by the row's
9326
- * `modelId`); any other model gets its own.
9324
+ * against each other, which for CLIP means never across families. Every
9325
+ * model gets its own.
9327
9326
  */
9328
- vectorIndex: zod.z.string().regex(/^object-clip(-[a-z0-9][a-z0-9-]*)?$/),
9327
+ vectorIndex: zod.z.string().regex(/^object-clip-[a-z0-9][a-z0-9-]*$/),
9329
9328
  /**
9330
9329
  * The text encoder's tokenizer, a declared SIBLING file of its onnx. The name
9331
9330
  * must be unique per tokenizer: every model's siblings land in ONE flat
@@ -61888,7 +61887,19 @@ var TlsStatusSchema = zod.z.object({
61888
61887
  sans: zod.z.array(zod.z.string()),
61889
61888
  caCertPem: zod.z.string().nullable(),
61890
61889
  reissueError: zod.z.string().nullable(),
61891
- restartRequired: zod.z.boolean()
61890
+ restartRequired: zod.z.boolean(),
61891
+ /** An uploaded certificate is served but no CA is kept for it and it is not publicly signed (D873). */
61892
+ caMissing: zod.z.boolean(),
61893
+ /** Does the hub's own generated CA carry a critical name constraint? `null` while it has none. */
61894
+ localCaConstrained: zod.z.boolean().nullable(),
61895
+ /** ISO time the generated CA was replaced by a constrained one; devices must re-download it. */
61896
+ caReplacedAt: zod.z.string().nullable(),
61897
+ /** The uploaded certificate kept on disk, selectable again after "Revert to generated". */
61898
+ storedUpload: zod.z.object({
61899
+ leafFingerprintSha256: zod.z.string(),
61900
+ validTo: zod.z.string(),
61901
+ hasCa: zod.z.boolean()
61902
+ }).nullable()
61892
61903
  });
61893
61904
  var localNetworkCapability = {
61894
61905
  name: "local-network",
@@ -62082,7 +62093,10 @@ var localNetworkCapability = {
62082
62093
  kind: "mutation",
62083
62094
  auth: "admin"
62084
62095
  }),
62085
- /** Replace the served material with operator-supplied PEMs. */
62096
+ /**
62097
+ * Replace the served material with operator-supplied PEMs. A certificate that does not lead
62098
+ * to a public CA must come with its CA certificate, validated and kept for Download CA (D873).
62099
+ */
62086
62100
  uploadCertificate: method(zod.z.object({
62087
62101
  certPem: zod.z.string().min(1),
62088
62102
  keyPem: zod.z.string().min(1),
@@ -62093,7 +62107,14 @@ var localNetworkCapability = {
62093
62107
  }),
62094
62108
  /** The local CA PEM, or empty when there is none to download. */
62095
62109
  downloadCa: method(zod.z.void(), zod.z.object({ pem: zod.z.string() })),
62096
- /** Drop uploaded material and return to the generated local CA. */
62110
+ /**
62111
+ * Serve the kept upload again after "Revert to generated" (D873). Refused when none is kept.
62112
+ */
62113
+ useStoredUploadedCertificate: method(zod.z.void(), TlsStatusSchema, {
62114
+ kind: "mutation",
62115
+ auth: "admin"
62116
+ }),
62117
+ /** Return to the generated local CA. The uploaded certificate stays stored (D873). */
62097
62118
  revertToGeneratedCertificate: method(zod.z.void(), TlsStatusSchema, {
62098
62119
  kind: "mutation",
62099
62120
  auth: "admin"
@@ -76482,6 +76503,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
76482
76503
  addonId: null,
76483
76504
  access: "create"
76484
76505
  },
76506
+ "localNetwork.useStoredUploadedCertificate": {
76507
+ capName: "local-network",
76508
+ capScope: "system",
76509
+ addonId: null,
76510
+ access: "create"
76511
+ },
76485
76512
  "lockControl.getStatus": {
76486
76513
  capName: "lock-control",
76487
76514
  capScope: "device",
@@ -9321,11 +9321,10 @@ var ClipModelMetaSchema = z.object({
9321
9321
  /**
9322
9322
  * The `vector-store` index this model's vectors live in. ONE feature space
9323
9323
  * per index: two models share an index only when their vectors are ranked
9324
- * against each other, which for CLIP means never across families. MobileCLIP
9325
- * S1 and S2 share `object-clip` for history (separated by the row's
9326
- * `modelId`); any other model gets its own.
9324
+ * against each other, which for CLIP means never across families. Every
9325
+ * model gets its own.
9327
9326
  */
9328
- vectorIndex: z.string().regex(/^object-clip(-[a-z0-9][a-z0-9-]*)?$/),
9327
+ vectorIndex: z.string().regex(/^object-clip-[a-z0-9][a-z0-9-]*$/),
9329
9328
  /**
9330
9329
  * The text encoder's tokenizer, a declared SIBLING file of its onnx. The name
9331
9330
  * must be unique per tokenizer: every model's siblings land in ONE flat
@@ -61888,7 +61887,19 @@ var TlsStatusSchema = z.object({
61888
61887
  sans: z.array(z.string()),
61889
61888
  caCertPem: z.string().nullable(),
61890
61889
  reissueError: z.string().nullable(),
61891
- restartRequired: z.boolean()
61890
+ restartRequired: z.boolean(),
61891
+ /** An uploaded certificate is served but no CA is kept for it and it is not publicly signed (D873). */
61892
+ caMissing: z.boolean(),
61893
+ /** Does the hub's own generated CA carry a critical name constraint? `null` while it has none. */
61894
+ localCaConstrained: z.boolean().nullable(),
61895
+ /** ISO time the generated CA was replaced by a constrained one; devices must re-download it. */
61896
+ caReplacedAt: z.string().nullable(),
61897
+ /** The uploaded certificate kept on disk, selectable again after "Revert to generated". */
61898
+ storedUpload: z.object({
61899
+ leafFingerprintSha256: z.string(),
61900
+ validTo: z.string(),
61901
+ hasCa: z.boolean()
61902
+ }).nullable()
61892
61903
  });
61893
61904
  var localNetworkCapability = {
61894
61905
  name: "local-network",
@@ -62082,7 +62093,10 @@ var localNetworkCapability = {
62082
62093
  kind: "mutation",
62083
62094
  auth: "admin"
62084
62095
  }),
62085
- /** Replace the served material with operator-supplied PEMs. */
62096
+ /**
62097
+ * Replace the served material with operator-supplied PEMs. A certificate that does not lead
62098
+ * to a public CA must come with its CA certificate, validated and kept for Download CA (D873).
62099
+ */
62086
62100
  uploadCertificate: method(z.object({
62087
62101
  certPem: z.string().min(1),
62088
62102
  keyPem: z.string().min(1),
@@ -62093,7 +62107,14 @@ var localNetworkCapability = {
62093
62107
  }),
62094
62108
  /** The local CA PEM, or empty when there is none to download. */
62095
62109
  downloadCa: method(z.void(), z.object({ pem: z.string() })),
62096
- /** Drop uploaded material and return to the generated local CA. */
62110
+ /**
62111
+ * Serve the kept upload again after "Revert to generated" (D873). Refused when none is kept.
62112
+ */
62113
+ useStoredUploadedCertificate: method(z.void(), TlsStatusSchema, {
62114
+ kind: "mutation",
62115
+ auth: "admin"
62116
+ }),
62117
+ /** Return to the generated local CA. The uploaded certificate stays stored (D873). */
62097
62118
  revertToGeneratedCertificate: method(z.void(), TlsStatusSchema, {
62098
62119
  kind: "mutation",
62099
62120
  auth: "admin"
@@ -76482,6 +76503,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
76482
76503
  addonId: null,
76483
76504
  access: "create"
76484
76505
  },
76506
+ "localNetwork.useStoredUploadedCertificate": {
76507
+ capName: "local-network",
76508
+ capScope: "system",
76509
+ addonId: null,
76510
+ access: "create"
76511
+ },
76485
76512
  "lockControl.getStatus": {
76486
76513
  capName: "lock-control",
76487
76514
  capScope: "device",
@@ -1,5 +1,5 @@
1
1
  require("./chunk-Cek0wNdY.js");
2
- const require_wal_maintenance = require("./wal-maintenance-mjB2i-VR.js");
2
+ const require_wal_maintenance = require("./wal-maintenance-DEL_jeG0.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 callControl, E as controlTargetOf, T as callVector, _ as collectTransferables, a as WalMaintenance, b as isFileHostWorkerData, c as SqliteSettingsBackend, h as serializeError, o as createVectorIndex, s as vectorProviderOf, w as callData, x as trustInput, y as isFileHostRequest } from "./wal-maintenance-Bx3lcVA7.mjs";
1
+ import { C as callControl, E as controlTargetOf, T as callVector, _ as collectTransferables, a as WalMaintenance, b as isFileHostWorkerData, c as SqliteSettingsBackend, h as serializeError, o as createVectorIndex, s as vectorProviderOf, w as callData, x as trustInput, y as isFileHostRequest } from "./wal-maintenance-xsvdT5Go.mjs";
2
2
  import { parentPort, threadId, workerData } from "node:worker_threads";
3
3
  //#region src/builtins/sqlite-storage/file-host-worker.ts
4
4
  /**