@camstack/system 1.2.410 → 1.2.412

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 (75) hide show
  1. package/dist/addon-runner.js +1 -1
  2. package/dist/addon-runner.mjs +1 -1
  3. package/dist/addon-utils.js +1 -1
  4. package/dist/addon-utils.mjs +1 -1
  5. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  6. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  7. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  8. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  9. package/dist/builtins/alerts/alerts.addon.js +1 -1
  10. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  11. package/dist/builtins/autotrack/index.js +1 -1
  12. package/dist/builtins/autotrack/index.mjs +1 -1
  13. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +2 -2
  14. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +2 -2
  15. package/dist/builtins/calendars/calendars.addon.js +1 -1
  16. package/dist/builtins/calendars/calendars.addon.mjs +1 -1
  17. package/dist/builtins/camera-grid/index.js +1 -1
  18. package/dist/builtins/camera-grid/index.mjs +1 -1
  19. package/dist/builtins/composer/composer.addon.js +2 -2
  20. package/dist/builtins/composer/composer.addon.mjs +2 -2
  21. package/dist/builtins/console-logging/index.js +1 -1
  22. package/dist/builtins/console-logging/index.mjs +1 -1
  23. package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
  24. package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
  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 +5 -4
  34. package/dist/builtins/local-auth/local-auth.addon.mjs +5 -4
  35. package/dist/builtins/local-network/local-network.addon.js +1 -1
  36. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  37. package/dist/builtins/loki-logging/index.js +1 -1
  38. package/dist/builtins/loki-logging/index.mjs +1 -1
  39. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  40. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  41. package/dist/builtins/platform-probe/index.js +1 -1
  42. package/dist/builtins/platform-probe/index.mjs +1 -1
  43. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  44. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  45. package/dist/builtins/snapshot/index.js +1 -1
  46. package/dist/builtins/snapshot/index.mjs +1 -1
  47. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  48. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  49. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  50. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  51. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  52. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  53. package/dist/builtins/system-config/system-config.addon.js +2 -2
  54. package/dist/builtins/system-config/system-config.addon.mjs +279 -279
  55. package/dist/builtins/winston-logging/index.js +1 -1
  56. package/dist/builtins/winston-logging/index.mjs +1 -1
  57. package/dist/{child-cap-dispatch-C-t9A5bd.mjs → child-cap-dispatch-CpYnlLNt.mjs} +1 -1
  58. package/dist/{child-cap-dispatch-BymegE_4.js → child-cap-dispatch-fnYkJDjG.js} +1 -1
  59. package/dist/{composition-sources-D2TB0T_2.js → composition-sources-BX6Caql_.js} +1 -1
  60. package/dist/{composition-sources-DfGBDGDf.mjs → composition-sources-QndhKNb5.mjs} +1 -1
  61. package/dist/{constants-C9RU0W0k.js → constants-CMXQ1QIC.js} +1 -1
  62. package/dist/{constants-U8qDgboP.mjs → constants-vMEWqCqG.mjs} +1 -1
  63. package/dist/{dist-CrznXkOZ.js → dist-BcnmH70Z.js} +114 -5
  64. package/dist/{dist-CvjyPlVK.mjs → dist-ItJ3qAAA.mjs} +114 -5
  65. package/dist/{event-loop-stall-monitor-De1uffaC.mjs → event-loop-stall-monitor-CogzcENb.mjs} +1 -1
  66. package/dist/{event-loop-stall-monitor-CaAcghV2.js → event-loop-stall-monitor-DoFaUgFf.js} +1 -1
  67. package/dist/index.js +6 -6
  68. package/dist/index.mjs +6 -6
  69. package/dist/{jwt-signing-key-7JsaDUwM.js → jwt-signing-key-CST1LdM6.js} +1 -1
  70. package/dist/{jwt-signing-key-Bv9SAJgK.mjs → jwt-signing-key-CpMSrZuI.mjs} +1 -1
  71. package/dist/{restore-archive-BxlXOFwo.mjs → restore-archive-8F_M_wW0.mjs} +77 -77
  72. package/dist/{restore-archive-BwOOlIex.js → restore-archive-pSlTKRgU.js} +1 -1
  73. package/dist/{retired-settings-keys-dm_jPy0r.mjs → retired-settings-keys-CbkMnFXg.mjs} +1 -1
  74. package/dist/{retired-settings-keys-DXTNfQwr.js → retired-settings-keys-D3E47aR_.js} +1 -1
  75. package/package.json +1 -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-CrznXkOZ.js");
6
+ const require_dist = require("../../dist-BcnmH70Z.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 { Qt as logDestinationCapability, dr as BaseAddon } from "../../dist-CvjyPlVK.mjs";
1
+ import { Qt as logDestinationCapability, dr as BaseAddon } from "../../dist-ItJ3qAAA.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
- import { Er as createEvent, Xr as scrubKnownSecrets, ri as EventCategory$1, tn as maskUrlCredentials } from "./dist-CvjyPlVK.mjs";
1
+ import { Er as createEvent, Xr as scrubKnownSecrets, ri as EventCategory$1, tn as maskUrlCredentials } from "./dist-ItJ3qAAA.mjs";
2
2
  import { a as parseProcStat, i as nodeProcReader } from "./proc-stat-CbC55Kqi.mjs";
3
3
  import "./hub-cap-forward-CDiN1p98.mjs";
4
4
  import * as crypto$1 from "node:crypto";
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_dist = require("./dist-CrznXkOZ.js");
2
+ const require_dist = require("./dist-BcnmH70Z.js");
3
3
  const require_proc_stat = require("./proc-stat-DL-WUOhl.js");
4
4
  require("./hub-cap-forward-W8oEm4ME.js");
5
5
  let node_crypto = require("node:crypto");
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-CrznXkOZ.js");
1
+ const require_dist = require("./dist-BcnmH70Z.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 { rr as compositionSourceKey, ur as errMsg } from "./dist-CvjyPlVK.mjs";
1
+ import { rr as compositionSourceKey, ur as errMsg } from "./dist-ItJ3qAAA.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
- const require_dist = require("./dist-CrznXkOZ.js");
1
+ const require_dist = require("./dist-BcnmH70Z.js");
2
2
  let node_crypto = require("node:crypto");
3
3
  //#region src/kernel/moleculer/cluster-secret.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { Cr as buildSecretRef } from "./dist-CvjyPlVK.mjs";
1
+ import { Cr as buildSecretRef } from "./dist-ItJ3qAAA.mjs";
2
2
  import { createHash, timingSafeEqual } from "node:crypto";
3
3
  //#region src/kernel/moleculer/cluster-secret.ts
4
4
  /**
@@ -11558,7 +11558,14 @@ var BrokerProviderInfoSchema = zod.z.object({
11558
11558
  /** Broker kinds this provider can create, with a display label. */
11559
11559
  kinds: zod.z.array(zod.z.object({
11560
11560
  kind: zod.z.string(),
11561
- label: zod.z.string()
11561
+ label: zod.z.string(),
11562
+ /**
11563
+ * Relative hub path to start an interactive account link (OAuth popup).
11564
+ * May include `{{brokerId}}`; admin-ui substitutes and appends `?popup=1`.
11565
+ */
11566
+ interactiveConnectPath: zod.z.string().min(1).optional(),
11567
+ /** Relative hub path to disconnect the linked account (same popup pattern). */
11568
+ interactiveDisconnectPath: zod.z.string().min(1).optional()
11562
11569
  }))
11563
11570
  });
11564
11571
  var ListInputSchema = zod.z.object({
@@ -19900,14 +19907,14 @@ var LlmProfileSchema = zod.z.object({
19900
19907
  /** ConfigUISchema tree passed through untyped on the wire (the
19901
19908
  * notification-output `ConfigSchemaPassthrough` precedent at
19902
19909
  * notification-output.cap.ts:151); the exported TS type re-tightens it. */
19903
- var ConfigSchemaPassthrough$2 = zod.z.unknown();
19910
+ var ConfigSchemaPassthrough$3 = zod.z.unknown();
19904
19911
  var LlmProfileKindDescriptorSchema = zod.z.object({
19905
19912
  kind: LlmProfileKindSchema,
19906
19913
  label: zod.z.string(),
19907
19914
  icon: zod.z.string(),
19908
19915
  /** Stamped by each provider so the concat-fanned catalog stays routable. */
19909
19916
  addonId: zod.z.string(),
19910
- configSchema: ConfigSchemaPassthrough$2
19917
+ configSchema: ConfigSchemaPassthrough$3
19911
19918
  });
19912
19919
  var LlmDefaultSelectorSchema = zod.z.union([zod.z.object({ consumer: zod.z.string() }), zod.z.object({ purpose: zod.z.enum(["text", "vision"]) })]);
19913
19920
  var LlmDefaultSchema = zod.z.object({
@@ -21284,7 +21291,7 @@ var TargetKindCapsSchema = zod.z.object({
21284
21291
  * the union is large and not meant for runtime validation here; the exported
21285
21292
  * `TargetKind` type re-tightens `configSchema` to `ConfigUISchema`.
21286
21293
  */
21287
- var ConfigSchemaPassthrough$1 = zod.z.unknown();
21294
+ var ConfigSchemaPassthrough$2 = zod.z.unknown();
21288
21295
  var TargetKindSchema = zod.z.object({
21289
21296
  kind: zod.z.string(),
21290
21297
  label: zod.z.string(),
@@ -21321,7 +21328,7 @@ var TargetKindSchema = zod.z.object({
21321
21328
  * its raster path, which is the safe default for an unknown image.
21322
21329
  */
21323
21330
  iconMediaType: zod.z.string().optional(),
21324
- configSchema: ConfigSchemaPassthrough$1,
21331
+ configSchema: ConfigSchemaPassthrough$2,
21325
21332
  /**
21326
21333
  * The config keys that decide WHERE this kind's secrets are sent (server,
21327
21334
  * base URL, instance, chat, recipient). A save that changes any of them
@@ -24930,6 +24937,77 @@ var oauthIntegrationCapability = {
24930
24937
  getDescriptor: method(zod.z.void(), OauthIntegrationDescriptorSchema, { auth: "admin" }) }
24931
24938
  };
24932
24939
  /**
24940
+ * `oidc-connections` — CRUD for IdP rows under `auth-oidc` (D828 sibling).
24941
+ *
24942
+ * One hub-only singleton (`auth-oidc`). The Settings UI is a DataTable +
24943
+ * ItemFormDialog; there is no `editable-array` in `globalSettingsSchema`.
24944
+ * Operator-chosen `id` is the URL slug (`/addon/auth-oidc/<id>/…`) and is
24945
+ * immutable after create.
24946
+ */
24947
+ var ConfigSchemaPassthrough$1 = zod.z.unknown();
24948
+ var OidcConnectionSchema = zod.z.object({
24949
+ id: zod.z.string().min(1),
24950
+ displayName: zod.z.string(),
24951
+ icon: zod.z.string(),
24952
+ issuerUrl: zod.z.string(),
24953
+ clientId: zod.z.string(),
24954
+ /** Client id + secret present — never the secret value. */
24955
+ configured: zod.z.boolean(),
24956
+ /**
24957
+ * Values for the connection form schema. `clientSecret` is a keychain
24958
+ * {@link SecretFieldView} or `null` / `''`, never plaintext (D789).
24959
+ */
24960
+ formValues: zod.z.record(zod.z.string(), zod.z.unknown()).optional()
24961
+ });
24962
+ /**
24963
+ * Patch one connection. Omitted or empty `clientSecret` keeps the stored
24964
+ * secret (D787). `{ $secretClear: true }` clears it. `id` is never renamed.
24965
+ */
24966
+ var OidcConnectionUpdateInputSchema = zod.z.object({
24967
+ id: zod.z.string().min(1),
24968
+ displayName: zod.z.string().min(1),
24969
+ icon: zod.z.string().optional(),
24970
+ issuerUrl: zod.z.string().optional(),
24971
+ clientId: zod.z.string().optional(),
24972
+ clientSecret: zod.z.union([zod.z.string(), zod.z.object({ $secretClear: zod.z.literal(true) })]).optional(),
24973
+ redirectUri: zod.z.string().optional(),
24974
+ scopes: zod.z.string().optional(),
24975
+ usernameClaim: zod.z.enum([
24976
+ "preferred_username",
24977
+ "email",
24978
+ "sub"
24979
+ ]).optional()
24980
+ });
24981
+ var oidcConnectionsCapability = {
24982
+ name: "oidc-connections",
24983
+ scope: "system",
24984
+ mode: "singleton",
24985
+ methods: {
24986
+ /** Form fields for Add/Edit (ConfigFormBuilder). */
24987
+ connectionFormSchema: method(zod.z.object({}), ConfigSchemaPassthrough$1, { auth: "admin" }),
24988
+ listConnections: method(zod.z.object({}), zod.z.array(OidcConnectionSchema).readonly(), { auth: "admin" }),
24989
+ /**
24990
+ * Create a row with the operator-chosen URL slug. Credentials follow via
24991
+ * `updateConnection` (same Save path as Training Providers).
24992
+ */
24993
+ createConnection: method(zod.z.object({
24994
+ id: zod.z.string().min(1).regex(/^[a-z0-9][a-z0-9-]{0,63}$/, "id must be a lowercase slug"),
24995
+ displayName: zod.z.string().min(1)
24996
+ }), zod.z.object({ id: zod.z.string() }), {
24997
+ kind: "mutation",
24998
+ auth: "admin"
24999
+ }),
25000
+ updateConnection: method(OidcConnectionUpdateInputSchema, zod.z.object({ ok: zod.z.literal(true) }), {
25001
+ kind: "mutation",
25002
+ auth: "admin"
25003
+ }),
25004
+ deleteConnection: method(zod.z.object({ id: zod.z.string().min(1) }), zod.z.object({ ok: zod.z.literal(true) }), {
25005
+ kind: "mutation",
25006
+ auth: "admin"
25007
+ })
25008
+ }
25009
+ };
25010
+ /**
24933
25011
  * What started a camera's onboard motion (D672). `camera` is the camera's own
24934
25012
  * firmware; `sensor` is a device the operator ATTACHED to it. Absent on the
24935
25013
  * wire means the camera: only the camera-sensors bridge ever says `sensor`.
@@ -55348,6 +55426,36 @@ var METHOD_ACCESS_MAP = Object.freeze({
55348
55426
  addonId: null,
55349
55427
  access: "view"
55350
55428
  },
55429
+ "oidcConnections.connectionFormSchema": {
55430
+ capName: "oidc-connections",
55431
+ capScope: "system",
55432
+ addonId: null,
55433
+ access: "view"
55434
+ },
55435
+ "oidcConnections.createConnection": {
55436
+ capName: "oidc-connections",
55437
+ capScope: "system",
55438
+ addonId: null,
55439
+ access: "create"
55440
+ },
55441
+ "oidcConnections.deleteConnection": {
55442
+ capName: "oidc-connections",
55443
+ capScope: "system",
55444
+ addonId: null,
55445
+ access: "delete"
55446
+ },
55447
+ "oidcConnections.listConnections": {
55448
+ capName: "oidc-connections",
55449
+ capScope: "system",
55450
+ addonId: null,
55451
+ access: "view"
55452
+ },
55453
+ "oidcConnections.updateConnection": {
55454
+ capName: "oidc-connections",
55455
+ capScope: "system",
55456
+ addonId: null,
55457
+ access: "create"
55458
+ },
55351
55459
  "osd.getStatus": {
55352
55460
  capName: "osd",
55353
55461
  capScope: "device",
@@ -60662,6 +60770,7 @@ var ALL_CAPABILITY_DEFINITIONS = [
60662
60770
  notifierCapability,
60663
60771
  numericSensorCapability,
60664
60772
  oauthIntegrationCapability,
60773
+ oidcConnectionsCapability,
60665
60774
  osdCapability,
60666
60775
  osdManagerCapability,
60667
60776
  petFeederCapability,
@@ -11558,7 +11558,14 @@ var BrokerProviderInfoSchema = z.object({
11558
11558
  /** Broker kinds this provider can create, with a display label. */
11559
11559
  kinds: z.array(z.object({
11560
11560
  kind: z.string(),
11561
- label: z.string()
11561
+ label: z.string(),
11562
+ /**
11563
+ * Relative hub path to start an interactive account link (OAuth popup).
11564
+ * May include `{{brokerId}}`; admin-ui substitutes and appends `?popup=1`.
11565
+ */
11566
+ interactiveConnectPath: z.string().min(1).optional(),
11567
+ /** Relative hub path to disconnect the linked account (same popup pattern). */
11568
+ interactiveDisconnectPath: z.string().min(1).optional()
11562
11569
  }))
11563
11570
  });
11564
11571
  var ListInputSchema = z.object({
@@ -19900,14 +19907,14 @@ var LlmProfileSchema = z.object({
19900
19907
  /** ConfigUISchema tree passed through untyped on the wire (the
19901
19908
  * notification-output `ConfigSchemaPassthrough` precedent at
19902
19909
  * notification-output.cap.ts:151); the exported TS type re-tightens it. */
19903
- var ConfigSchemaPassthrough$2 = z.unknown();
19910
+ var ConfigSchemaPassthrough$3 = z.unknown();
19904
19911
  var LlmProfileKindDescriptorSchema = z.object({
19905
19912
  kind: LlmProfileKindSchema,
19906
19913
  label: z.string(),
19907
19914
  icon: z.string(),
19908
19915
  /** Stamped by each provider so the concat-fanned catalog stays routable. */
19909
19916
  addonId: z.string(),
19910
- configSchema: ConfigSchemaPassthrough$2
19917
+ configSchema: ConfigSchemaPassthrough$3
19911
19918
  });
19912
19919
  var LlmDefaultSelectorSchema = z.union([z.object({ consumer: z.string() }), z.object({ purpose: z.enum(["text", "vision"]) })]);
19913
19920
  var LlmDefaultSchema = z.object({
@@ -21284,7 +21291,7 @@ var TargetKindCapsSchema = z.object({
21284
21291
  * the union is large and not meant for runtime validation here; the exported
21285
21292
  * `TargetKind` type re-tightens `configSchema` to `ConfigUISchema`.
21286
21293
  */
21287
- var ConfigSchemaPassthrough$1 = z.unknown();
21294
+ var ConfigSchemaPassthrough$2 = z.unknown();
21288
21295
  var TargetKindSchema = z.object({
21289
21296
  kind: z.string(),
21290
21297
  label: z.string(),
@@ -21321,7 +21328,7 @@ var TargetKindSchema = z.object({
21321
21328
  * its raster path, which is the safe default for an unknown image.
21322
21329
  */
21323
21330
  iconMediaType: z.string().optional(),
21324
- configSchema: ConfigSchemaPassthrough$1,
21331
+ configSchema: ConfigSchemaPassthrough$2,
21325
21332
  /**
21326
21333
  * The config keys that decide WHERE this kind's secrets are sent (server,
21327
21334
  * base URL, instance, chat, recipient). A save that changes any of them
@@ -24930,6 +24937,77 @@ var oauthIntegrationCapability = {
24930
24937
  getDescriptor: method(z.void(), OauthIntegrationDescriptorSchema, { auth: "admin" }) }
24931
24938
  };
24932
24939
  /**
24940
+ * `oidc-connections` — CRUD for IdP rows under `auth-oidc` (D828 sibling).
24941
+ *
24942
+ * One hub-only singleton (`auth-oidc`). The Settings UI is a DataTable +
24943
+ * ItemFormDialog; there is no `editable-array` in `globalSettingsSchema`.
24944
+ * Operator-chosen `id` is the URL slug (`/addon/auth-oidc/<id>/…`) and is
24945
+ * immutable after create.
24946
+ */
24947
+ var ConfigSchemaPassthrough$1 = z.unknown();
24948
+ var OidcConnectionSchema = z.object({
24949
+ id: z.string().min(1),
24950
+ displayName: z.string(),
24951
+ icon: z.string(),
24952
+ issuerUrl: z.string(),
24953
+ clientId: z.string(),
24954
+ /** Client id + secret present — never the secret value. */
24955
+ configured: z.boolean(),
24956
+ /**
24957
+ * Values for the connection form schema. `clientSecret` is a keychain
24958
+ * {@link SecretFieldView} or `null` / `''`, never plaintext (D789).
24959
+ */
24960
+ formValues: z.record(z.string(), z.unknown()).optional()
24961
+ });
24962
+ /**
24963
+ * Patch one connection. Omitted or empty `clientSecret` keeps the stored
24964
+ * secret (D787). `{ $secretClear: true }` clears it. `id` is never renamed.
24965
+ */
24966
+ var OidcConnectionUpdateInputSchema = z.object({
24967
+ id: z.string().min(1),
24968
+ displayName: z.string().min(1),
24969
+ icon: z.string().optional(),
24970
+ issuerUrl: z.string().optional(),
24971
+ clientId: z.string().optional(),
24972
+ clientSecret: z.union([z.string(), z.object({ $secretClear: z.literal(true) })]).optional(),
24973
+ redirectUri: z.string().optional(),
24974
+ scopes: z.string().optional(),
24975
+ usernameClaim: z.enum([
24976
+ "preferred_username",
24977
+ "email",
24978
+ "sub"
24979
+ ]).optional()
24980
+ });
24981
+ var oidcConnectionsCapability = {
24982
+ name: "oidc-connections",
24983
+ scope: "system",
24984
+ mode: "singleton",
24985
+ methods: {
24986
+ /** Form fields for Add/Edit (ConfigFormBuilder). */
24987
+ connectionFormSchema: method(z.object({}), ConfigSchemaPassthrough$1, { auth: "admin" }),
24988
+ listConnections: method(z.object({}), z.array(OidcConnectionSchema).readonly(), { auth: "admin" }),
24989
+ /**
24990
+ * Create a row with the operator-chosen URL slug. Credentials follow via
24991
+ * `updateConnection` (same Save path as Training Providers).
24992
+ */
24993
+ createConnection: method(z.object({
24994
+ id: z.string().min(1).regex(/^[a-z0-9][a-z0-9-]{0,63}$/, "id must be a lowercase slug"),
24995
+ displayName: z.string().min(1)
24996
+ }), z.object({ id: z.string() }), {
24997
+ kind: "mutation",
24998
+ auth: "admin"
24999
+ }),
25000
+ updateConnection: method(OidcConnectionUpdateInputSchema, z.object({ ok: z.literal(true) }), {
25001
+ kind: "mutation",
25002
+ auth: "admin"
25003
+ }),
25004
+ deleteConnection: method(z.object({ id: z.string().min(1) }), z.object({ ok: z.literal(true) }), {
25005
+ kind: "mutation",
25006
+ auth: "admin"
25007
+ })
25008
+ }
25009
+ };
25010
+ /**
24933
25011
  * What started a camera's onboard motion (D672). `camera` is the camera's own
24934
25012
  * firmware; `sensor` is a device the operator ATTACHED to it. Absent on the
24935
25013
  * wire means the camera: only the camera-sensors bridge ever says `sensor`.
@@ -55348,6 +55426,36 @@ var METHOD_ACCESS_MAP = Object.freeze({
55348
55426
  addonId: null,
55349
55427
  access: "view"
55350
55428
  },
55429
+ "oidcConnections.connectionFormSchema": {
55430
+ capName: "oidc-connections",
55431
+ capScope: "system",
55432
+ addonId: null,
55433
+ access: "view"
55434
+ },
55435
+ "oidcConnections.createConnection": {
55436
+ capName: "oidc-connections",
55437
+ capScope: "system",
55438
+ addonId: null,
55439
+ access: "create"
55440
+ },
55441
+ "oidcConnections.deleteConnection": {
55442
+ capName: "oidc-connections",
55443
+ capScope: "system",
55444
+ addonId: null,
55445
+ access: "delete"
55446
+ },
55447
+ "oidcConnections.listConnections": {
55448
+ capName: "oidc-connections",
55449
+ capScope: "system",
55450
+ addonId: null,
55451
+ access: "view"
55452
+ },
55453
+ "oidcConnections.updateConnection": {
55454
+ capName: "oidc-connections",
55455
+ capScope: "system",
55456
+ addonId: null,
55457
+ access: "create"
55458
+ },
55351
55459
  "osd.getStatus": {
55352
55460
  capName: "osd",
55353
55461
  capScope: "device",
@@ -60662,6 +60770,7 @@ var ALL_CAPABILITY_DEFINITIONS = [
60662
60770
  notifierCapability,
60663
60771
  numericSensorCapability,
60664
60772
  oauthIntegrationCapability,
60773
+ oidcConnectionsCapability,
60665
60774
  osdCapability,
60666
60775
  osdManagerCapability,
60667
60776
  petFeederCapability,
@@ -1,4 +1,4 @@
1
- import { It as hfModelUrl, M as MODEL_FORMATS, T as HF_REPO } from "./dist-CvjyPlVK.mjs";
1
+ import { It as hfModelUrl, M as MODEL_FORMATS, T as HF_REPO } from "./dist-ItJ3qAAA.mjs";
2
2
  import { createHash } from "node:crypto";
3
3
  import * as path$1 from "node:path";
4
4
  import path from "node:path";
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-Cek0wNdY.js");
2
- const require_dist = require("./dist-CrznXkOZ.js");
2
+ const require_dist = require("./dist-BcnmH70Z.js");
3
3
  let node_crypto = require("node:crypto");
4
4
  let node_path = require("node:path");
5
5
  node_path = require_chunk.__toESM(node_path);
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-CrznXkOZ.js");
4
- const require_jwt_signing_key = require("./jwt-signing-key-7JsaDUwM.js");
3
+ const require_dist = require("./dist-BcnmH70Z.js");
4
+ const require_jwt_signing_key = require("./jwt-signing-key-CST1LdM6.js");
5
5
  const require_builtins_alerts_alerts_addon = require("./builtins/alerts/alerts.addon.js");
6
6
  require("./builtins/alerts/index.js");
7
7
  const require_builtins_calendars_calendars_addon = require("./builtins/calendars/calendars.addon.js");
@@ -27,17 +27,17 @@ const require_builtins_sqlite_storage_index = require("./builtins/sqlite-storage
27
27
  const require_hub_cap_forward = require("./hub-cap-forward-W8oEm4ME.js");
28
28
  const require_builtins_storage_orchestrator_storage_orchestrator_addon = require("./builtins/storage-orchestrator/storage-orchestrator.addon.js");
29
29
  require("./builtins/storage-orchestrator/index.js");
30
- const require_constants = require("./constants-C9RU0W0k.js");
30
+ const require_constants = require("./constants-CMXQ1QIC.js");
31
31
  const require_builtins_system_config_system_config_addon = require("./builtins/system-config/system-config.addon.js");
32
32
  require("./builtins/system-config/index.js");
33
33
  const require_builtins_winston_logging_index = require("./builtins/winston-logging/index.js");
34
- const require_event_loop_stall_monitor = require("./event-loop-stall-monitor-CaAcghV2.js");
34
+ const require_event_loop_stall_monitor = require("./event-loop-stall-monitor-DoFaUgFf.js");
35
35
  const require_tls = require("./tls-BWpwU-d5.js");
36
- const require_child_cap_dispatch = require("./child-cap-dispatch-BymegE_4.js");
36
+ const require_child_cap_dispatch = require("./child-cap-dispatch-fnYkJDjG.js");
37
37
  const require_platform_key_source = require("./platform-key-source-Di7HrlGR.js");
38
38
  const require_resource_monitor = require("./resource-monitor-BgWGRxN5.js");
39
39
  const require_custom_action_registry = require("./custom-action-registry-acBY3mHA.js");
40
- const require_restore_archive = require("./restore-archive-BwOOlIex.js");
40
+ const require_restore_archive = require("./restore-archive-pSlTKRgU.js");
41
41
  let zod = require("zod");
42
42
  let node_crypto = require("node:crypto");
43
43
  let _camstack_types_node = require("@camstack/types/node");
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { i as __require } from "./chunk-CNf5ZN-e.mjs";
2
- import { $t as logLevelAtMost, A as METHOD_ACCESS_MAP, An as scopesAllowDeviceCap, D as LOG_LEVEL_RANK, En as resolveMethodAuth, Er as createEvent, F as RUNTIME_DEFAULTS, Ht as isObjectInput, K as addonSettingsCapability, Kr as readinessKey, Rt as isArrayOutputSchema, Sr as asString$1, Ur as parseJsonObject, Ut as isVoidInput, Vn as supportedRuntimes, Wr as parseJsonUnknown, Wt as kebabToCamel, Yr as scopeKey, Yt as lifecycleJobSchema, _r as ReadinessTimeoutError, br as asJsonObject$1, dn as objectInputDeclaresRequiredDeviceId, en as looseSchema, fr as DATAPLANE_SECRET_HEADER$1, gn as procedureAuthKey, gr as ReadinessRegistry, jr as expandCapMethods, jt as extractNestedAddonId, kn as scopesAllowAddon, kr as emitDownForOwnedCaps, mr as DEVICE_STATUS_METHOD, pr as DEVICE_SETTINGS_CONTRIBUTION_METHODS, qr as resolveCapMount, ri as EventCategory$1, t as ALL_CAPABILITY_DEFINITIONS, un as objectInputDeclaresAddonId, ur as errMsg$1, xr as asNumber, zt as isCollectionArrayMethod } from "./dist-CvjyPlVK.mjs";
3
- import { c as staticJwtSigningKey, i as getProcessJwtSigningKeyState, n as JwtSigningKeyUnavailableError, o as processJwtSigningKey, r as SYSTEM_SECRET_OWNER, t as JWT_SIGNING_KEY_REF } from "./jwt-signing-key-Bv9SAJgK.mjs";
2
+ import { $t as logLevelAtMost, A as METHOD_ACCESS_MAP, An as scopesAllowDeviceCap, D as LOG_LEVEL_RANK, En as resolveMethodAuth, Er as createEvent, F as RUNTIME_DEFAULTS, Ht as isObjectInput, K as addonSettingsCapability, Kr as readinessKey, Rt as isArrayOutputSchema, Sr as asString$1, Ur as parseJsonObject, Ut as isVoidInput, Vn as supportedRuntimes, Wr as parseJsonUnknown, Wt as kebabToCamel, Yr as scopeKey, Yt as lifecycleJobSchema, _r as ReadinessTimeoutError, br as asJsonObject$1, dn as objectInputDeclaresRequiredDeviceId, en as looseSchema, fr as DATAPLANE_SECRET_HEADER$1, gn as procedureAuthKey, gr as ReadinessRegistry, jr as expandCapMethods, jt as extractNestedAddonId, kn as scopesAllowAddon, kr as emitDownForOwnedCaps, mr as DEVICE_STATUS_METHOD, pr as DEVICE_SETTINGS_CONTRIBUTION_METHODS, qr as resolveCapMount, ri as EventCategory$1, t as ALL_CAPABILITY_DEFINITIONS, un as objectInputDeclaresAddonId, ur as errMsg$1, xr as asNumber, zt as isCollectionArrayMethod } from "./dist-ItJ3qAAA.mjs";
3
+ import { c as staticJwtSigningKey, i as getProcessJwtSigningKeyState, n as JwtSigningKeyUnavailableError, o as processJwtSigningKey, r as SYSTEM_SECRET_OWNER, t as JWT_SIGNING_KEY_REF } from "./jwt-signing-key-CpMSrZuI.mjs";
4
4
  import { AlertCenterAddon } from "./builtins/alerts/alerts.addon.mjs";
5
5
  import "./builtins/alerts/index.mjs";
6
6
  import { CalendarsAddon } from "./builtins/calendars/calendars.addon.mjs";
@@ -26,17 +26,17 @@ import { ConfigStore, DeviceStore } from "./builtins/sqlite-storage/index.mjs";
26
26
  import { i as stripForwardedCaller, n as HUB_CAP_FWD_SERVICE, r as createHubCapForwardService, t as HUB_CAP_FWD_ACTION } from "./hub-cap-forward-CDiN1p98.mjs";
27
27
  import { StorageOrchestratorAddon, n as buildStorageLocationRegistry, t as StorageOrchestratorService } from "./builtins/storage-orchestrator/storage-orchestrator.addon.mjs";
28
28
  import "./builtins/storage-orchestrator/index.mjs";
29
- import { _ as getProcessClusterSecretGate, a as MESH_CA_KEY_REF, b as setProcessClusterSecretGate, d as CLUSTER_SECRET_REF, f as CLUSTER_SECRET_REJECTED_EXIT_CODE, g as clusterSecretMatches, h as checkClusterSecret, i as MESH_CA_FIELD, m as CLUSTER_SECRET_UNAVAILABLE_TYPE, n as DEFAULT_HUB_TLS_TCP_PORT, o as MESH_CA_SETTINGS_KEY, p as CLUSTER_SECRET_SETTINGS_KEY, u as CLUSTER_SECRET_MISMATCH_TYPE, v as hashClusterSecret, y as isClusterSecretMismatchError } from "./constants-U8qDgboP.mjs";
29
+ import { _ as getProcessClusterSecretGate, a as MESH_CA_KEY_REF, b as setProcessClusterSecretGate, d as CLUSTER_SECRET_REF, f as CLUSTER_SECRET_REJECTED_EXIT_CODE, g as clusterSecretMatches, h as checkClusterSecret, i as MESH_CA_FIELD, m as CLUSTER_SECRET_UNAVAILABLE_TYPE, n as DEFAULT_HUB_TLS_TCP_PORT, o as MESH_CA_SETTINGS_KEY, p as CLUSTER_SECRET_SETTINGS_KEY, u as CLUSTER_SECRET_MISMATCH_TYPE, v as hashClusterSecret, y as isClusterSecretMismatchError } from "./constants-vMEWqCqG.mjs";
30
30
  import { A as AGENT_UI_UNLOCK_VERSION, B as parseMeshAuthMode, C as generateMeshKeyPair, D as AGENT_DASHBOARD_ORIGINS_FIELD, E as loadMeshCa, F as verifyAgentUiUnlockTicket, G as createCidrMatcher, H as setProcessMeshAuthMode, I as MESH_AUTH_MODE_FIELD, J as readCidrSetting, K as normalizeIp, L as getProcessMeshAuthMode, M as isAllowedAgentDashboardReturnTo, N as mintAgentUiUnlockTicket, O as AGENT_UI_UNLOCK_DOMAIN, P as parseAgentDashboardOrigins, R as getProcessMeshAuthStatus, S as generateMeshCa, SystemConfigAddon, T as issueMeshLeafFromCsr, U as setProcessMeshAuthStatusSource, V as requestProcessMeshEnforcement, W as setProcessMeshEnforcer, _ as requireProcessMeshCa, a as setProcessMeshTlsEnabler, b as createMeshCsrPem, c as mintMeshJoinToken, d as getProcessNodeMeshTransport, f as setProcessMeshPeerTransportLookup, g as getProcessMeshCaState, h as MeshCaKeeper, i as ServiceBroker, j as UnlockTicketJtiStore, k as AGENT_UI_UNLOCK_TTL_MS, l as processJoinTokenJtiStore, m as processMeshCrl, n as TlsTcpTransporter, o as enrollMeshNode, p as MeshCrl, q as parseCidrList, r as Errors, s as JoinTokenJtiStore, u as verifyMeshJoinToken, v as caFingerprint, w as issueMeshLeafForNode, x as exportMeshPrivateKeyPem, y as caFingerprintCompact, z as isMeshAuthMode } from "./builtins/system-config/system-config.addon.mjs";
31
31
  import "./builtins/system-config/index.mjs";
32
32
  import { WinstonDestination, WinstonLoggingAddon } from "./builtins/winston-logging/index.mjs";
33
- import { C as resolveFormatRevision, S as isModelDownloaded, _ as downloadModel, a as createFileDataPlaneHandler, b as getModelFilePath, c as parseRangeHeader, d as ModelDownloadService, g as downloadFile, h as deleteModelFromDisk, i as startEventLoopStallMonitor, l as parseTokenizedUrl, m as collectModelFiles, n as STALL_TICK_MS, o as contentTypeFor, p as adoptModelRevisions, r as attributeStall, s as createAuthenticatedFileServer, t as STALL_REPORT_MS, u as resolveFilePath, v as ensureModel, w as revisionWeightUrl, y as fetchJson } from "./event-loop-stall-monitor-De1uffaC.mjs";
33
+ import { C as resolveFormatRevision, S as isModelDownloaded, _ as downloadModel, a as createFileDataPlaneHandler, b as getModelFilePath, c as parseRangeHeader, d as ModelDownloadService, g as downloadFile, h as deleteModelFromDisk, i as startEventLoopStallMonitor, l as parseTokenizedUrl, m as collectModelFiles, n as STALL_TICK_MS, o as contentTypeFor, p as adoptModelRevisions, r as attributeStall, s as createAuthenticatedFileServer, t as STALL_REPORT_MS, u as resolveFilePath, v as ensureModel, w as revisionWeightUrl, y as fetchJson } from "./event-loop-stall-monitor-CogzcENb.mjs";
34
34
  import { A as allFamiliesListenHost, C as collectCertIdentity, D as SERVER_AUTH_OID, E as MAX_LEAF_VALIDITY_DAYS, F as registerLanHttpHandler, M as bindPendingLanHttp, N as closeLanHttp, O as evaluateExistingCert, P as readLanHttpState, S as CA_COMMON_NAME, T as LEAF_RENEWAL_WINDOW_DAYS, _ as writeExtraSans, a as validateUploadedTls, b as loadTlsCert, c as registerHttpsListener, d as prepareBootTls, f as UPLOADED_CA_FILE, g as splitPemCertificates, h as readTlsMode, i as storeUploadedCertificate, j as applyLanHttp, k as DEFAULT_LAN_HTTP_PORT, l as reloadHttpsListener, m as readTlsAccessStatus, n as regenerateCertificate, o as clearHttpsListener, p as readExtraSans, r as revertToGeneratedCertificate, s as leafFingerprintOf, t as applyCertificateToListener, u as servedHttpsLeafFingerprint, v as writeTlsMode, w as CA_VALIDITY_DAYS, x as reissueTlsLeaf, y as ensureTlsCert } from "./tls-C2NT-Orr.mjs";
35
- import { $ as AGENT_CAP_FWD_ACTION, $n as EMPTY_SOCKET_DIRECTION, $t as HEAP_WATCH_INTERVAL_MS, A as mapSignalsToInferenceHardware, An as DECISIVE_HEAP_SPACES, At as capServiceName, B as createParentUnownedCallHandler, Bn as createOutboundQueueGate, Bt as buildNpmChildEnv, C as getBrokerEventBus, Cn as ARRAY_BUFFER_CENSUS_SUSTAIN_MS, D as subscribePassthrough, Dn as createInspectorArrayBufferCensus, Dt as capActionName, E as setNodeEventInterest, En as createArrayBufferCensusGate, Et as NATIVE_PROVIDER_SERVICE_INFIX, F as brokerTransportLink, Fn as readHeapSpaces, Ft as CapabilityHandle, G as createUdsLoggerWithControl, Gn as EMPTY_SOCKET_PLANE_BASELINE, Gt as redactLogMeta, H as createUdsEventBus, Hn as MESH_QUEUE_TOP_N, Ht as runNpm, I as buildLinkChain, In as selectReportedSpaces, It as CapabilityUnavailableError, J as UDS_NO_ROUTE_PREFIX, Jn as createSocketPlaneMeter, Jt as hostNodeIdOf, K as LocalChildClient, Kn as SOCKET_PLANE_TOP_N, Kt as redactLogText, L as deviceCapResolverLink, Ln as OUTBOUND_QUEUE_COOLDOWN_MS, Lt as copyBundledNativeModules, M as probePlatform, Mn as emitHeapDiagnosticReport, Mt as deserializeTypedArrays, N as resolveHwAccel, Nn as formatHeapSpaces, Nt as serializeTypedArrays, O as AddonDepsManager, On as formatArrayBufferCensus, Ot as capActionSuffix, P as brokerCallForCap, Pn as heapSpaceField, Pt as DeviceRegistry, Q as deviceOfGetStatus, Qn as readSocketQueues, Qt as HEAP_RECLAIM_TRIGGER_MB, R as ipcParentLink, Rn as OUTBOUND_QUEUE_SUSTAIN_MS, Rt as installManifestNativeDeps, S as clusterEventTopic, Sn as ARRAY_BUFFER_CENSUS_COOLDOWN_MS, St as mountNativeCapService, T as registerEventBusService, Tn as ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, Tt as validateProviderRegistrations, U as udsChildLogToWorkerEntry, Un as createMeshQueueReader, Ut as isCredentialKeyName, V as createUdsEventBridge, Vn as formatOutboundQueueVerdict, Vt as resolveNpmInvocation, W as createUdsLogger, Wn as formatMeshQueue, Wt as redactLogEntry, X as GET_STATUS_METHOD, Xn as diffSocketPlane, Xt as HEAP_RECLAIM_MIN_INTERVAL_MS, Y as afterWorkerOnlineAnnounce, Yn as createSocketPlaneReader, Yt as createAddonDataPlaneFacility, Z as answerClaimedGetStatus, Zn as formatSocketPlane, Zt as HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, _ as getWorkerDeviceRegistry, _n as reclaimIntervalMs, _t as encodeFrame, a as reapProcessGroup, an as RSS_BUDGET_RELEASE_RATIO, ar as CAP_ACTION_OVERFLOW_LABEL, at as callWithServiceDiscovery, b as setHubConnected, bn as startRunnerHeapWatch, c as runnerOwnsProcessGroup, cn as ZERO_LOOP_DELAY, cr as MAX_CAP_ACTIONS_PER_PEER, ct as __resetCapUsageRegistryForTests, d as summarizeMembers, dn as createLoopDelayMeter, dr as diffCapActionCensus, dt as UdsLocalTransportClient, en as HEAP_WATCH_WARN_RATIO, er as createSocketDirectionCounters, et as AGENT_CAP_FWD_SERVICE, f as installManifestSystemDeps, fn as createV8Reclaimer, fr as EVENT_PLANE_TOP_N, ft as UdsLocalTransportServer, g as createUdsAddonContext, gn as parseRssBudgetMb, gr as formatEventPlane, gt as FrameDecoder, h as createAddonContext, hn as nextRssBudgetState, hr as diffEventPlane, ht as localEndpointPath, in as RSS_BUDGET_REANNOUNCE_MIN_MS, ir as socketDirectionMessages, it as classifyCapRoute, j as createKernelHwAccel, jn as HEAP_SPACE_REPORT_MIN_MB, jt as parseCapAction, k as createKernelInferenceEngine, kn as isArrayBufferCensusReport, kt as capBareAction, l as signalAllRunnerGroups, ln as buildHeapSample, lr as capActionLabel, lt as getCapUsageRegistry, m as adaptBrokerToCluster, mn as hubMainRssBudget, mr as createEventPlaneReader, mt as PeerAnsweredError, nn as HUB_MAIN_RSS_BUDGET_MB, nr as sampleSocketDirection, nt as stampCallerAddonId, o as registerRunnerGroup, on as RUNNER_HEAP_WATCH_INTERVAL_MS, or as CAP_ACTION_UNLABELLED, ot as CapUsageRegistry, p as installManifestPythonDeps, pn as describeRss, pr as createEventPlaneMeter, pt as SocketChannel, q as LocalChildRegistry, qn as SOCKET_QUEUE_TOP_N, qt as createAddonPeerBytesFacility, r as defaultProcessGroupOps, rn as HUB_RSS_BUDGET_ENV, rr as socketDirectionBytes, rt as CapRouteError, s as releaseRunnerGroup, sn as RUNNER_RSS_BUDGET_ENV, sr as EMPTY_CAP_ACTION_READING, st as PARENT_ROUTED_PROVIDER_ADDON_ID, t as CAP_METHOD_NOT_IMPLEMENTED, tn as HUB_MAIN_HEAP_WATCH_LABEL, tr as recordSocketFrame, tt as CapRouteResolver, un as createDeferredHeapWatchSink, ur as createCapActionCensus, ut as createLocalTransport, v as getOrInitReadinessRegistry, vn as shouldReclaim, vt as buildNativeCapProxy, w as getMoleculerEventStats, wn as ARRAY_BUFFER_CENSUS_THRESHOLD_MB, wt as createAddonService, x as EVENT_TOPIC_PREFIX, xn as strandedMb, y as getOrInitReadinessRegistryForClient, yn as startHeapWatch, yt as createBrokerDeviceManagerApi, z as localProviderLink, zn as OUTBOUND_QUEUE_THRESHOLD_BYTES, zt as resolveAddonClass } from "./child-cap-dispatch-C-t9A5bd.mjs";
35
+ import { $ as AGENT_CAP_FWD_ACTION, $n as EMPTY_SOCKET_DIRECTION, $t as HEAP_WATCH_INTERVAL_MS, A as mapSignalsToInferenceHardware, An as DECISIVE_HEAP_SPACES, At as capServiceName, B as createParentUnownedCallHandler, Bn as createOutboundQueueGate, Bt as buildNpmChildEnv, C as getBrokerEventBus, Cn as ARRAY_BUFFER_CENSUS_SUSTAIN_MS, D as subscribePassthrough, Dn as createInspectorArrayBufferCensus, Dt as capActionName, E as setNodeEventInterest, En as createArrayBufferCensusGate, Et as NATIVE_PROVIDER_SERVICE_INFIX, F as brokerTransportLink, Fn as readHeapSpaces, Ft as CapabilityHandle, G as createUdsLoggerWithControl, Gn as EMPTY_SOCKET_PLANE_BASELINE, Gt as redactLogMeta, H as createUdsEventBus, Hn as MESH_QUEUE_TOP_N, Ht as runNpm, I as buildLinkChain, In as selectReportedSpaces, It as CapabilityUnavailableError, J as UDS_NO_ROUTE_PREFIX, Jn as createSocketPlaneMeter, Jt as hostNodeIdOf, K as LocalChildClient, Kn as SOCKET_PLANE_TOP_N, Kt as redactLogText, L as deviceCapResolverLink, Ln as OUTBOUND_QUEUE_COOLDOWN_MS, Lt as copyBundledNativeModules, M as probePlatform, Mn as emitHeapDiagnosticReport, Mt as deserializeTypedArrays, N as resolveHwAccel, Nn as formatHeapSpaces, Nt as serializeTypedArrays, O as AddonDepsManager, On as formatArrayBufferCensus, Ot as capActionSuffix, P as brokerCallForCap, Pn as heapSpaceField, Pt as DeviceRegistry, Q as deviceOfGetStatus, Qn as readSocketQueues, Qt as HEAP_RECLAIM_TRIGGER_MB, R as ipcParentLink, Rn as OUTBOUND_QUEUE_SUSTAIN_MS, Rt as installManifestNativeDeps, S as clusterEventTopic, Sn as ARRAY_BUFFER_CENSUS_COOLDOWN_MS, St as mountNativeCapService, T as registerEventBusService, Tn as ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, Tt as validateProviderRegistrations, U as udsChildLogToWorkerEntry, Un as createMeshQueueReader, Ut as isCredentialKeyName, V as createUdsEventBridge, Vn as formatOutboundQueueVerdict, Vt as resolveNpmInvocation, W as createUdsLogger, Wn as formatMeshQueue, Wt as redactLogEntry, X as GET_STATUS_METHOD, Xn as diffSocketPlane, Xt as HEAP_RECLAIM_MIN_INTERVAL_MS, Y as afterWorkerOnlineAnnounce, Yn as createSocketPlaneReader, Yt as createAddonDataPlaneFacility, Z as answerClaimedGetStatus, Zn as formatSocketPlane, Zt as HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, _ as getWorkerDeviceRegistry, _n as reclaimIntervalMs, _t as encodeFrame, a as reapProcessGroup, an as RSS_BUDGET_RELEASE_RATIO, ar as CAP_ACTION_OVERFLOW_LABEL, at as callWithServiceDiscovery, b as setHubConnected, bn as startRunnerHeapWatch, c as runnerOwnsProcessGroup, cn as ZERO_LOOP_DELAY, cr as MAX_CAP_ACTIONS_PER_PEER, ct as __resetCapUsageRegistryForTests, d as summarizeMembers, dn as createLoopDelayMeter, dr as diffCapActionCensus, dt as UdsLocalTransportClient, en as HEAP_WATCH_WARN_RATIO, er as createSocketDirectionCounters, et as AGENT_CAP_FWD_SERVICE, f as installManifestSystemDeps, fn as createV8Reclaimer, fr as EVENT_PLANE_TOP_N, ft as UdsLocalTransportServer, g as createUdsAddonContext, gn as parseRssBudgetMb, gr as formatEventPlane, gt as FrameDecoder, h as createAddonContext, hn as nextRssBudgetState, hr as diffEventPlane, ht as localEndpointPath, in as RSS_BUDGET_REANNOUNCE_MIN_MS, ir as socketDirectionMessages, it as classifyCapRoute, j as createKernelHwAccel, jn as HEAP_SPACE_REPORT_MIN_MB, jt as parseCapAction, k as createKernelInferenceEngine, kn as isArrayBufferCensusReport, kt as capBareAction, l as signalAllRunnerGroups, ln as buildHeapSample, lr as capActionLabel, lt as getCapUsageRegistry, m as adaptBrokerToCluster, mn as hubMainRssBudget, mr as createEventPlaneReader, mt as PeerAnsweredError, nn as HUB_MAIN_RSS_BUDGET_MB, nr as sampleSocketDirection, nt as stampCallerAddonId, o as registerRunnerGroup, on as RUNNER_HEAP_WATCH_INTERVAL_MS, or as CAP_ACTION_UNLABELLED, ot as CapUsageRegistry, p as installManifestPythonDeps, pn as describeRss, pr as createEventPlaneMeter, pt as SocketChannel, q as LocalChildRegistry, qn as SOCKET_QUEUE_TOP_N, qt as createAddonPeerBytesFacility, r as defaultProcessGroupOps, rn as HUB_RSS_BUDGET_ENV, rr as socketDirectionBytes, rt as CapRouteError, s as releaseRunnerGroup, sn as RUNNER_RSS_BUDGET_ENV, sr as EMPTY_CAP_ACTION_READING, st as PARENT_ROUTED_PROVIDER_ADDON_ID, t as CAP_METHOD_NOT_IMPLEMENTED, tn as HUB_MAIN_HEAP_WATCH_LABEL, tr as recordSocketFrame, tt as CapRouteResolver, un as createDeferredHeapWatchSink, ur as createCapActionCensus, ut as createLocalTransport, v as getOrInitReadinessRegistry, vn as shouldReclaim, vt as buildNativeCapProxy, w as getMoleculerEventStats, wn as ARRAY_BUFFER_CENSUS_THRESHOLD_MB, wt as createAddonService, x as EVENT_TOPIC_PREFIX, xn as strandedMb, y as getOrInitReadinessRegistryForClient, yn as startHeapWatch, yt as createBrokerDeviceManagerApi, z as localProviderLink, zn as OUTBOUND_QUEUE_THRESHOLD_BYTES, zt as resolveAddonClass } from "./child-cap-dispatch-CpYnlLNt.mjs";
36
36
  import { n as getPlatformKeychainKey, r as setPlatformKeychainKey, t as clearPlatformKeychainKey } from "./platform-key-source-BWlq0jjn.mjs";
37
37
  import { n as getSinglePidStats, t as getPidStats } from "./resource-monitor-B2WZ8_q9.mjs";
38
38
  import { t as CustomActionRegistry } from "./custom-action-registry-B4Cf4O_X.mjs";
39
- import { c as BackupKeyFormatError, d as generateBackupKeyPair, l as BackupKeyMismatchError, m as readBackupEncryptionHeader, o as SystemBackupService, r as prepareRestoreArchive, s as BackupDecryptError, t as BackupKeyRequiredError } from "./restore-archive-BxlXOFwo.mjs";
39
+ import { c as BackupKeyFormatError, d as generateBackupKeyPair, l as BackupKeyMismatchError, m as readBackupEncryptionHeader, o as SystemBackupService, r as prepareRestoreArchive, s as BackupDecryptError, t as BackupKeyRequiredError } from "./restore-archive-8F_M_wW0.mjs";
40
40
  import { z } from "zod";
41
41
  import { createHash, createHmac, randomBytes, randomUUID, timingSafeEqual } from "node:crypto";
42
42
  import { PYTHON_VERSION, buildBinaryPath, downloadBinary, ensureBinary, ensureFfmpeg, ensurePython, findInPath, getFfmpegDownloadUrl, getPlatformInfo, getPythonDownloadUrl, installPythonPackages, installPythonRequirements } from "@camstack/types/node";
@@ -1,4 +1,4 @@
1
- const require_dist = require("./dist-CrznXkOZ.js");
1
+ const require_dist = require("./dist-BcnmH70Z.js");
2
2
  let node_crypto = require("node:crypto");
3
3
  //#region src/auth/jwt-signing-key.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { Cr as buildSecretRef } from "./dist-CvjyPlVK.mjs";
1
+ import { Cr as buildSecretRef } from "./dist-ItJ3qAAA.mjs";
2
2
  import { randomBytes } from "node:crypto";
3
3
  //#region src/auth/jwt-signing-key.ts
4
4
  /**