@camstack/system 1.2.419 → 1.2.421

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 (77) hide show
  1. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
  2. package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
  3. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
  4. package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
  5. package/dist/builtins/alerts/alerts.addon.js +1 -1
  6. package/dist/builtins/alerts/alerts.addon.mjs +1 -1
  7. package/dist/builtins/autotrack/index.js +1 -1
  8. package/dist/builtins/autotrack/index.mjs +1 -1
  9. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +2 -2
  10. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +2 -2
  11. package/dist/builtins/calendars/calendars.addon.js +1 -1
  12. package/dist/builtins/calendars/calendars.addon.mjs +1 -1
  13. package/dist/builtins/camera-grid/index.js +1 -1
  14. package/dist/builtins/camera-grid/index.mjs +1 -1
  15. package/dist/builtins/composer/composer.addon.js +2 -2
  16. package/dist/builtins/composer/composer.addon.mjs +2 -2
  17. package/dist/builtins/console-logging/index.js +1 -1
  18. package/dist/builtins/console-logging/index.mjs +1 -1
  19. package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
  20. package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
  21. package/dist/builtins/device-manager/contribution-cache.d.ts +18 -1
  22. package/dist/builtins/device-manager/device-aggregation.d.ts +7 -1
  23. package/dist/builtins/device-manager/device-manager.addon.js +53 -8
  24. package/dist/builtins/device-manager/device-manager.addon.mjs +53 -8
  25. package/dist/builtins/hub-forwarder/index.js +1 -1
  26. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  27. package/dist/builtins/keychain/index.js +3 -3
  28. package/dist/builtins/keychain/index.mjs +3 -3
  29. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  30. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  31. package/dist/builtins/local-auth/local-auth.addon.js +2 -2
  32. package/dist/builtins/local-auth/local-auth.addon.mjs +2 -2
  33. package/dist/builtins/local-network/local-network.addon.js +1 -1
  34. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  35. package/dist/builtins/loki-logging/index.js +1 -1
  36. package/dist/builtins/loki-logging/index.mjs +1 -1
  37. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
  38. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
  39. package/dist/builtins/platform-probe/index.js +1 -1
  40. package/dist/builtins/platform-probe/index.mjs +1 -1
  41. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  42. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  43. package/dist/builtins/snapshot/index.js +1 -1
  44. package/dist/builtins/snapshot/index.mjs +1 -1
  45. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  46. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  47. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  48. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  49. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  50. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  51. package/dist/builtins/system-config/system-config.addon.js +138 -18
  52. package/dist/builtins/system-config/system-config.addon.mjs +138 -19
  53. package/dist/builtins/winston-logging/index.js +1 -1
  54. package/dist/builtins/winston-logging/index.mjs +1 -1
  55. package/dist/{composition-sources-562ib2dL.mjs → composition-sources-DoYpCPtl.mjs} +1 -1
  56. package/dist/{composition-sources-OaDYklhR.js → composition-sources-DxlTUSI1.js} +1 -1
  57. package/dist/{constants-BeQWXybC.mjs → constants-CtxNK2QJ.mjs} +1 -1
  58. package/dist/{constants-ik5xtasS.js → constants-GXZQRcjB.js} +1 -1
  59. package/dist/{dist-C0wYvAHC.mjs → dist-0OD9ue39.mjs} +106 -2
  60. package/dist/{dist-DLHPmdoV.js → dist-Df7s77se.js} +106 -2
  61. package/dist/index.js +187 -19
  62. package/dist/index.mjs +183 -21
  63. package/dist/{jwt-signing-key-CWmNKLQi.js → jwt-signing-key-BmyvxlDJ.js} +1 -1
  64. package/dist/{jwt-signing-key-dkTVfsLI.mjs → jwt-signing-key-W-WFzAoK.mjs} +1 -1
  65. package/dist/kernel/index.d.ts +5 -1
  66. package/dist/kernel/moleculer/agent-event-scope.d.ts +49 -0
  67. package/dist/kernel/moleculer/agent-mesh-authenticator.d.ts +15 -3
  68. package/dist/kernel/moleculer/broker-factory.d.ts +6 -0
  69. package/dist/kernel/moleculer/mesh-access-middleware.d.ts +8 -4
  70. package/dist/kernel/moleculer/mesh-join-hold.d.ts +85 -0
  71. package/dist/kernel/moleculer/mesh-mtls/index.d.ts +1 -1
  72. package/dist/kernel/moleculer/mesh-mtls/tls-tcp-transporter.d.ts +65 -4
  73. package/dist/{restore-archive-gGHgAZsz.mjs → restore-archive-BUMSox6L.mjs} +1 -1
  74. package/dist/{restore-archive-DZeFVS2l.js → restore-archive-W1Cg5y6C.js} +1 -1
  75. package/dist/{retired-settings-keys-DibNtLmU.js → retired-settings-keys-D-Xv1Zyv.js} +1 -1
  76. package/dist/{retired-settings-keys-BHlKEYNL.mjs → retired-settings-keys-Wz92bcuK.mjs} +1 -1
  77. package/package.json +1 -1
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-DLHPmdoV.js");
4
- const require_jwt_signing_key = require("./jwt-signing-key-CWmNKLQi.js");
3
+ const require_dist = require("./dist-Df7s77se.js");
4
+ const require_jwt_signing_key = require("./jwt-signing-key-BmyvxlDJ.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");
@@ -26,7 +26,7 @@ const require_builtins_sqlite_storage_sqlite_settings_addon = require("./builtin
26
26
  const require_builtins_sqlite_storage_index = require("./builtins/sqlite-storage/index.js");
27
27
  const require_builtins_storage_orchestrator_storage_orchestrator_addon = require("./builtins/storage-orchestrator/storage-orchestrator.addon.js");
28
28
  require("./builtins/storage-orchestrator/index.js");
29
- const require_constants = require("./constants-ik5xtasS.js");
29
+ const require_constants = require("./constants-GXZQRcjB.js");
30
30
  const require_builtins_system_config_system_config_addon = require("./builtins/system-config/system-config.addon.js");
31
31
  require("./builtins/system-config/index.js");
32
32
  const require_builtins_winston_logging_index = require("./builtins/winston-logging/index.js");
@@ -34,7 +34,7 @@ const require_custom_action_registry = require("./custom-action-registry-Bf_Ynag
34
34
  const require_tls = require("./tls-BgImdxCO.js");
35
35
  const require_platform_key_source = require("./platform-key-source-Di7HrlGR.js");
36
36
  const require_resource_monitor = require("./resource-monitor-mio9dSCT.js");
37
- const require_restore_archive = require("./restore-archive-DZeFVS2l.js");
37
+ const require_restore_archive = require("./restore-archive-W1Cg5y6C.js");
38
38
  let zod = require("zod");
39
39
  let node_crypto = require("node:crypto");
40
40
  node_crypto = require_chunk.__toESM(node_crypto);
@@ -15109,6 +15109,9 @@ function createBroker(config) {
15109
15109
  serializer: "MsgPack",
15110
15110
  transporter: new require_builtins_system_config_system_config_addon.TlsTcpTransporter({
15111
15111
  port: agentListenPort,
15112
+ tlsPort: config.agentTlsListenPort ?? 6443,
15113
+ peerTlsPort: hubDialPort,
15114
+ hubOnlyPeers: true,
15112
15115
  maxPacketSize: 10 * 1024 * 1024,
15113
15116
  useHostname,
15114
15117
  debug: false,
@@ -24111,6 +24114,10 @@ function createMeshAccessMiddleware(options) {
24111
24114
  const sender = senderOf(ctx);
24112
24115
  if (sender === null || sender === ownNodeId) return next.call(this, ctx);
24113
24116
  const verdict = authenticator.admitCall(sender, name);
24117
+ if (verdict.verdict === "hold") return verdict.settled.then((settled) => runAdmitted.call(this, ctx, sender, settled));
24118
+ return runAdmitted.call(this, ctx, sender, verdict);
24119
+ };
24120
+ function runAdmitted(ctx, sender, verdict) {
24114
24121
  if (verdict.verdict === "deny") {
24115
24122
  logger?.warn("mesh call refused", {
24116
24123
  sender,
@@ -24122,23 +24129,119 @@ function createMeshAccessMiddleware(options) {
24122
24129
  if (name === "$hub.unregisterNode" && paramNodeId(ctx.params) !== sender) return Promise.reject(new require_builtins_system_config_system_config_addon.Errors.MoleculerClientError(`node "${sender}" may unregister only itself`, 403, MESH_ACTION_FORBIDDEN_TYPE));
24123
24130
  ctx.params = stripForgedIdentity(name, ctx.params);
24124
24131
  return next.call(this, ctx);
24125
- };
24132
+ }
24126
24133
  },
24127
24134
  localEvent(next, event) {
24128
24135
  const name = event.name ?? "";
24129
24136
  return function meshGatedEvent(ctx) {
24130
24137
  const sender = senderOf(ctx);
24131
24138
  if (sender === null || sender === ownNodeId) return Promise.resolve(next.call(this, ctx));
24132
- if (authenticator.admitEvent(sender, name).verdict === "deny") {
24133
- noteDroppedEvent(sender, name);
24134
- return Promise.resolve();
24135
- }
24136
- return Promise.resolve(next.call(this, ctx));
24139
+ const verdict = authenticator.admitEvent(sender, name);
24140
+ const deliver = (settled) => {
24141
+ if (settled.verdict === "deny") {
24142
+ noteDroppedEvent(sender, name);
24143
+ return Promise.resolve();
24144
+ }
24145
+ return Promise.resolve(next.call(this, ctx));
24146
+ };
24147
+ return verdict.verdict === "hold" ? verdict.settled.then(deliver) : deliver(verdict);
24137
24148
  };
24138
24149
  }
24139
24150
  };
24140
24151
  }
24141
24152
  //#endregion
24153
+ //#region src/kernel/moleculer/mesh-join-hold.ts
24154
+ var DEFAULT_MESH_JOIN_MAX_HELD = 1e3;
24155
+ var DEFAULT_MESH_JOIN_MAX_HOLD_MS = 15e3;
24156
+ var MeshJoinHold = class {
24157
+ opts;
24158
+ waiters = [];
24159
+ firstHeldAt = null;
24160
+ overflow = 0;
24161
+ timer = null;
24162
+ /** Holding is open while a join is in flight; closed after a decision or the bound. */
24163
+ open = true;
24164
+ now;
24165
+ constructor(opts) {
24166
+ this.opts = opts;
24167
+ this.now = opts.now ?? Date.now;
24168
+ }
24169
+ /** Whether a request arriving now would be held (a join is in flight). */
24170
+ get holding() {
24171
+ return this.open;
24172
+ }
24173
+ /** How many requests wait right now. */
24174
+ get size() {
24175
+ return this.waiters.length;
24176
+ }
24177
+ /** A join started: hold again. */
24178
+ reopen() {
24179
+ this.open = true;
24180
+ }
24181
+ /** Hold one request; `null` when holding is closed (the caller refuses it). */
24182
+ hold(kind) {
24183
+ if (!this.open) return null;
24184
+ if (this.waiters.length >= (this.opts.maxHeld ?? 1e3)) {
24185
+ this.overflow++;
24186
+ return {
24187
+ verdict: "hold",
24188
+ settled: Promise.resolve(this.refusal("the hold before the mesh join is full"))
24189
+ };
24190
+ }
24191
+ if (this.firstHeldAt === null) {
24192
+ this.firstHeldAt = this.now();
24193
+ this.timer = setTimeout(() => this.refuse("bound"), this.opts.maxHoldMs ?? 15e3);
24194
+ this.timer.unref?.();
24195
+ }
24196
+ return {
24197
+ verdict: "hold",
24198
+ settled: new Promise((resolve) => {
24199
+ this.waiters.push({
24200
+ kind,
24201
+ resolve
24202
+ });
24203
+ })
24204
+ };
24205
+ }
24206
+ /** The join proved the hub: deliver everything held, in order. */
24207
+ release() {
24208
+ this.open = false;
24209
+ this.settle({ verdict: "allow" }, "delivered", "authenticated");
24210
+ }
24211
+ /** The join failed, or the bound ran out: refuse everything held. */
24212
+ refuse(reason) {
24213
+ this.open = false;
24214
+ this.settle(this.refusal(`the join ended "${reason}"`), "refused", reason);
24215
+ }
24216
+ refusal(why) {
24217
+ return {
24218
+ verdict: "deny",
24219
+ errorType: MESH_NODE_UNAUTHENTICATED_TYPE,
24220
+ message: `"${this.opts.hubNodeId}" sent this before the mesh join settled, and ${why}`
24221
+ };
24222
+ }
24223
+ settle(verdict, outcome, reason) {
24224
+ if (this.timer !== null) clearTimeout(this.timer);
24225
+ this.timer = null;
24226
+ const waiters = this.waiters;
24227
+ const overflow = this.overflow;
24228
+ const firstHeldAt = this.firstHeldAt;
24229
+ this.waiters = [];
24230
+ this.overflow = 0;
24231
+ this.firstHeldAt = null;
24232
+ if (waiters.length === 0 && overflow === 0) return;
24233
+ for (const w of waiters) w.resolve(verdict);
24234
+ this.opts.onReport?.({
24235
+ outcome,
24236
+ reason,
24237
+ events: waiters.filter((w) => w.kind === "event").length,
24238
+ calls: waiters.filter((w) => w.kind === "call").length,
24239
+ overflow,
24240
+ heldForMs: firstHeldAt === null ? 0 : this.now() - firstHeldAt
24241
+ });
24242
+ }
24243
+ };
24244
+ //#endregion
24142
24245
  //#region src/kernel/moleculer/agent-mesh-authenticator.ts
24143
24246
  /** The child's register action on its parent agent. */
24144
24247
  var AGENT_REGISTER_NODE_ACTION = "$agent.registerNode";
@@ -24158,10 +24261,22 @@ var AgentMeshAuthenticator = class {
24158
24261
  nodes = /* @__PURE__ */ new Map();
24159
24262
  hubNodeId;
24160
24263
  now;
24264
+ hold;
24161
24265
  constructor(deps) {
24162
24266
  this.deps = deps;
24163
24267
  this.hubNodeId = deps.hubNodeId ?? DEFAULT_HUB_NODE_ID;
24164
24268
  this.now = deps.now ?? Date.now;
24269
+ this.hold = new MeshJoinHold({
24270
+ hubNodeId: this.hubNodeId,
24271
+ now: this.now,
24272
+ ...deps.maxHeld !== void 0 ? { maxHeld: deps.maxHeld } : {},
24273
+ ...deps.maxHoldMs !== void 0 ? { maxHoldMs: deps.maxHoldMs } : {},
24274
+ ...deps.onHoldReport !== void 0 ? { onReport: deps.onHoldReport } : {}
24275
+ });
24276
+ }
24277
+ /** How many of the hub's requests wait for the join right now. */
24278
+ heldCount() {
24279
+ return this.hold.size;
24165
24280
  }
24166
24281
  /** Current mode: secret configured → enforce; else tolerate (upgrade path). */
24167
24282
  mode() {
@@ -24175,9 +24290,16 @@ var AgentMeshAuthenticator = class {
24175
24290
  noteHubJoinState(state) {
24176
24291
  if (state === "authenticated") {
24177
24292
  this.record(this.hubNodeId, "authenticated");
24293
+ this.hold.release();
24294
+ return;
24295
+ }
24296
+ if (state === "pending") {
24297
+ this.forget(this.hubNodeId);
24298
+ this.hold.reopen();
24178
24299
  return;
24179
24300
  }
24180
- if (state === "secret-mismatch" || state === "hub-unverified" || state === "pending") this.forget(this.hubNodeId);
24301
+ if (state === "secret-mismatch" || state === "hub-unverified") this.forget(this.hubNodeId);
24302
+ this.hold.refuse(state);
24181
24303
  }
24182
24304
  /** A child's `$agent.registerNode` was accepted (secret hash matched or none required). */
24183
24305
  noteChildRegistered(sender, proof = "authenticated") {
@@ -24196,11 +24318,11 @@ var AgentMeshAuthenticator = class {
24196
24318
  message: `"${action}" is not callable from another node (caller "${sender}")`
24197
24319
  };
24198
24320
  if (action === "$agent.registerNode" && isOwnChildNodeId(this.deps.ownNodeId, sender)) return { verdict: "allow" };
24199
- return this.admitSender(sender, action);
24321
+ return this.admitSender(sender, action, "call");
24200
24322
  }
24201
24323
  admitEvent(sender, eventName) {
24202
24324
  if (sender === this.deps.ownNodeId) return { verdict: "allow" };
24203
- return this.admitSender(sender, `event:${eventName}`);
24325
+ return this.admitSender(sender, `event:${eventName}`, "event");
24204
24326
  }
24205
24327
  stateOf(nodeId) {
24206
24328
  return this.nodes.get(nodeId)?.state ?? "unauthenticated";
@@ -24208,14 +24330,20 @@ var AgentMeshAuthenticator = class {
24208
24330
  authenticatedNodeIds() {
24209
24331
  return [...this.nodes].filter(([, r]) => r.state === "authenticated").map(([id]) => id);
24210
24332
  }
24211
- admitSender(sender, what) {
24333
+ admitSender(sender, what, kind) {
24212
24334
  const state = this.stateOf(sender);
24213
24335
  if (state === "authenticated" || state === "legacy") return { verdict: "allow" };
24214
- if (this.mode() === "enforced") return {
24215
- verdict: "deny",
24216
- errorType: MESH_NODE_UNAUTHENTICATED_TYPE,
24217
- message: `node "${sender}" has not authenticated to this agent — only the hub (after mutual mesh join) and this agent's own children may call it`
24218
- };
24336
+ if (this.mode() === "enforced") {
24337
+ if (sender === this.hubNodeId) {
24338
+ const held = this.hold.hold(kind);
24339
+ if (held !== null) return held;
24340
+ }
24341
+ return {
24342
+ verdict: "deny",
24343
+ errorType: MESH_NODE_UNAUTHENTICATED_TYPE,
24344
+ message: `node "${sender}" has not authenticated to this agent — only the hub (after mutual mesh join) and this agent's own children may call it`
24345
+ };
24346
+ }
24219
24347
  if (!this.nodes.has(sender)) {
24220
24348
  this.record(sender, "unauthenticated");
24221
24349
  this.deps.onTolerated?.(sender, what);
@@ -24235,6 +24363,40 @@ var AgentMeshAuthenticator = class {
24235
24363
  }
24236
24364
  };
24237
24365
  //#endregion
24366
+ //#region src/kernel/moleculer/agent-event-scope.ts
24367
+ /** Moleculer's EVENT packet type (`packets.PACKET_EVENT`). */
24368
+ var PACKET_EVENT = "EVENT";
24369
+ /** Is this an event packet addressed to a node other than the hub? */
24370
+ function isPeerEventPacket(packet, hubNodeId) {
24371
+ return packet.type === PACKET_EVENT && packet.target !== null && packet.target !== hubNodeId;
24372
+ }
24373
+ function createAgentEventScope(opts) {
24374
+ let toHub = 0;
24375
+ const withheld = /* @__PURE__ */ new Map();
24376
+ const gate = (next) => function agentEventScoped(packet) {
24377
+ if (packet.type !== PACKET_EVENT) return next(packet);
24378
+ if (!isPeerEventPacket(packet, opts.hubNodeId)) {
24379
+ if (packet.target === opts.hubNodeId) toHub++;
24380
+ return next(packet);
24381
+ }
24382
+ const peer = packet.target ?? "";
24383
+ const prev = withheld.get(peer) ?? 0;
24384
+ withheld.set(peer, prev + 1);
24385
+ if (prev === 0) opts.log?.(`mesh events: not sending events to node "${peer}" — an agent's events go to the hub only (D848)`);
24386
+ return Promise.resolve();
24387
+ };
24388
+ return {
24389
+ middleware: {
24390
+ name: "CamstackAgentEventScope",
24391
+ transitPublish: gate
24392
+ },
24393
+ stats: () => ({
24394
+ toHub,
24395
+ withheld: Object.fromEntries(withheld)
24396
+ })
24397
+ };
24398
+ }
24399
+ //#endregion
24238
24400
  //#region src/kernel/moleculer/mesh-join-client.ts
24239
24401
  /** States in which a call to the hub is refused locally. */
24240
24402
  var BLOCKING = new Set(["secret-mismatch", "hub-unverified"]);
@@ -26713,6 +26875,8 @@ exports.DEFAULT_DATA_PATH = DEFAULT_DATA_PATH;
26713
26875
  exports.DEFAULT_HUB_TLS_TCP_PORT = require_constants.DEFAULT_HUB_TLS_TCP_PORT;
26714
26876
  exports.DEFAULT_LAN_HTTP_PORT = require_tls.DEFAULT_LAN_HTTP_PORT;
26715
26877
  exports.DEFAULT_LOG_LEVEL = DEFAULT_LOG_LEVEL;
26878
+ exports.DEFAULT_MESH_JOIN_MAX_HELD = DEFAULT_MESH_JOIN_MAX_HELD;
26879
+ exports.DEFAULT_MESH_JOIN_MAX_HOLD_MS = DEFAULT_MESH_JOIN_MAX_HOLD_MS;
26716
26880
  exports.DEVICE_SETTINGS_CONTRIBUTION_METHODS = require_dist.DEVICE_SETTINGS_CONTRIBUTION_METHODS;
26717
26881
  exports.DEVICE_STATUS_METHOD = require_dist.DEVICE_STATUS_METHOD;
26718
26882
  exports.DataPlaneRegistry = DataPlaneRegistry;
@@ -26786,11 +26950,13 @@ exports.MESH_JOIN_CHALLENGE_TTL_MS = MESH_JOIN_CHALLENGE_TTL_MS;
26786
26950
  exports.MESH_JOIN_PROTOCOL = MESH_JOIN_PROTOCOL;
26787
26951
  exports.MESH_NODE_UNAUTHENTICATED_TYPE = MESH_NODE_UNAUTHENTICATED_TYPE;
26788
26952
  exports.MESH_QUEUE_TOP_N = MESH_QUEUE_TOP_N;
26953
+ exports.MESH_TLS_PORT_HELLO_FIELD = require_builtins_system_config_system_config_addon.MESH_TLS_PORT_HELLO_FIELD;
26789
26954
  exports.METHOD_ACCESS_MAP = require_dist.METHOD_ACCESS_MAP;
26790
26955
  exports.MeshAuthenticator = MeshAuthenticator;
26791
26956
  exports.MeshCaKeeper = require_builtins_system_config_system_config_addon.MeshCaKeeper;
26792
26957
  exports.MeshCrl = require_builtins_system_config_system_config_addon.MeshCrl;
26793
26958
  exports.MeshJoinClient = MeshJoinClient;
26959
+ exports.MeshJoinHold = MeshJoinHold;
26794
26960
  exports.ModelDownloadService = require_custom_action_registry.ModelDownloadService;
26795
26961
  exports.NATIVE_PROVIDER_SERVICE_INFIX = NATIVE_PROVIDER_SERVICE_INFIX;
26796
26962
  exports.NATIVE_SCAN_DEPTH = NATIVE_SCAN_DEPTH;
@@ -26919,6 +27085,7 @@ exports.createAddonContext = createAddonContext;
26919
27085
  exports.createAddonDataPlaneFacility = createAddonDataPlaneFacility;
26920
27086
  exports.createAddonPeerBytesFacility = createAddonPeerBytesFacility;
26921
27087
  exports.createAddonService = createAddonService;
27088
+ exports.createAgentEventScope = createAgentEventScope;
26922
27089
  exports.createArrayBufferCensusGate = createArrayBufferCensusGate;
26923
27090
  exports.createAuthenticatedFileServer = require_custom_action_registry.createAuthenticatedFileServer;
26924
27091
  exports.createBroker = createBroker;
@@ -27095,6 +27262,7 @@ exports.isInfraCapability = isInfraCapability;
27095
27262
  exports.isMeshAuthMode = require_builtins_system_config_system_config_addon.isMeshAuthMode;
27096
27263
  exports.isModelDownloaded = require_custom_action_registry.isModelDownloaded;
27097
27264
  exports.isOwnChildNodeId = isOwnChildNodeId;
27265
+ exports.isPeerEventPacket = isPeerEventPacket;
27098
27266
  exports.isRemoteForbiddenAction = isRemoteForbiddenAction;
27099
27267
  exports.isRemoteForbiddenOnAgent = isRemoteForbiddenOnAgent;
27100
27268
  exports.isSettingsReadUnavailable = require_builtins_local_auth_local_auth_addon.isSettingsReadUnavailable;