@camstack/system 1.2.217 → 1.2.218

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 (66) hide show
  1. package/dist/addon-runner.js +9 -6
  2. package/dist/addon-runner.mjs +9 -6
  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/backup-orchestrator/backup-orchestrator.addon.js +1 -1
  12. package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
  13. package/dist/builtins/console-logging/index.js +1 -1
  14. package/dist/builtins/console-logging/index.mjs +1 -1
  15. package/dist/builtins/core-blocks/core-blocks.addon.js +1 -1
  16. package/dist/builtins/core-blocks/core-blocks.addon.mjs +1 -1
  17. package/dist/builtins/device-manager/device-manager.addon.js +2 -2
  18. package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
  19. package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
  20. package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
  21. package/dist/builtins/hub-forwarder/index.js +1 -1
  22. package/dist/builtins/hub-forwarder/index.mjs +1 -1
  23. package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
  24. package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
  25. package/dist/builtins/local-auth/local-auth.addon.js +1 -1
  26. package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
  27. package/dist/builtins/local-network/local-network.addon.js +1 -1
  28. package/dist/builtins/local-network/local-network.addon.mjs +1 -1
  29. package/dist/builtins/loki-logging/index.js +1 -1
  30. package/dist/builtins/loki-logging/index.mjs +1 -1
  31. package/dist/builtins/native-metrics/native-metrics.addon.d.ts +0 -7
  32. package/dist/builtins/native-metrics/native-metrics.addon.js +1 -8
  33. package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -8
  34. package/dist/builtins/platform-probe/index.js +1 -1
  35. package/dist/builtins/platform-probe/index.mjs +1 -1
  36. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
  37. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
  38. package/dist/builtins/snapshot/index.js +1 -1
  39. package/dist/builtins/snapshot/index.mjs +1 -1
  40. package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
  41. package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
  42. package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
  43. package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
  44. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
  45. package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
  46. package/dist/builtins/system-config/system-config.addon.js +1 -1
  47. package/dist/builtins/system-config/system-config.addon.mjs +1 -1
  48. package/dist/builtins/winston-logging/index.js +1 -1
  49. package/dist/builtins/winston-logging/index.mjs +1 -1
  50. package/dist/{custom-action-registry-jY0NOZK8.js → custom-action-registry-BDwM5qAK.js} +19 -0
  51. package/dist/{custom-action-registry-F__gp_VX.mjs → custom-action-registry-CsONUlhC.mjs} +19 -0
  52. package/dist/{dist-C85OOASj.js → dist-BOlMCOeT.js} +116 -1
  53. package/dist/{dist-DtDKMSeG.mjs → dist-DigmGsQS.mjs} +111 -2
  54. package/dist/index.d.ts +3 -1
  55. package/dist/index.js +11 -3
  56. package/dist/index.mjs +4 -4
  57. package/dist/kernel/array-buffer-census.d.ts +122 -0
  58. package/dist/kernel/custom-action-registry.d.ts +10 -1
  59. package/dist/kernel/heap-watch.d.ts +15 -0
  60. package/dist/kernel/transport/child-cap-protocol.d.ts +15 -1
  61. package/dist/kernel/transport/local-child-client.d.ts +18 -2
  62. package/dist/{manifest-system-deps-DvY1bY_n.js → manifest-system-deps-Bo92lg5u.js} +350 -14
  63. package/dist/{manifest-system-deps-726RBOX7.mjs → manifest-system-deps-D--wyMD9.mjs} +303 -15
  64. package/dist/{retired-settings-keys-Cx-lYIbU.mjs → retired-settings-keys-vK_U-CG2.mjs} +1 -1
  65. package/dist/{retired-settings-keys-Dfj9LA-i.js → retired-settings-keys-xEAlYnv7.js} +1 -1
  66. package/package.json +1 -1
@@ -9683,6 +9683,17 @@ var coreBlocksCapability = {
9683
9683
  })) }), { auth: "admin" })
9684
9684
  }
9685
9685
  };
9686
+ /** Strip a catalog to what crosses the wire. Pure; the schemas are not touched. */
9687
+ function describeCustomActions(catalog) {
9688
+ const out = {};
9689
+ for (const [name, spec] of Object.entries(catalog)) out[name] = {
9690
+ kind: spec.kind,
9691
+ auth: spec.auth,
9692
+ scope: spec.scope,
9693
+ ...spec.caller === "required" ? { caller: "required" } : {}
9694
+ };
9695
+ return out;
9696
+ }
9686
9697
  /**
9687
9698
  * `custom-model-registry` — collection cap exposing operator-registered
9688
9699
  * custom detection models. Each provider (today: `addon-model-studio`)
@@ -15189,6 +15200,7 @@ var NcSystemEventKindSchema = zod.z.enum([
15189
15200
  "addon-crash-loop",
15190
15201
  "addon-update-available",
15191
15202
  "server-update-available",
15203
+ "wrapper-update-available",
15192
15204
  "alarm-triggered",
15193
15205
  "alarm-armed",
15194
15206
  "alarm-disarmed",
@@ -22228,6 +22240,97 @@ var ImageContractSchema = zod.z.object({
22228
22240
  /** One operator-grade sentence: this node runs image X; the contract says Y. */
22229
22241
  message: zod.z.string()
22230
22242
  });
22243
+ /**
22244
+ * How this node's SHELL was identified — the process wrapper the node runs
22245
+ * inside (a Docker container, the Electron desktop app, a bare host process).
22246
+ *
22247
+ * ## The rule: observe what you can, declare only what you cannot
22248
+ *
22249
+ * On 2026-08-02 `check-deployment-templates.ts` proved every day that the
22250
+ * templates declared `ghcr.io/camstack/camstack:intel-latest` while the hub
22251
+ * actually ran `camstack-server:intel-1.1.74` from a repository that had been
22252
+ * renamed and received no builds. The declaration was right; reality was not;
22253
+ * nothing compared them. A `CAMSTACK_WRAPPER=docker` written into a template
22254
+ * would be exactly that same declaration, so `kind` is NEVER an env var.
22255
+ *
22256
+ * What can honestly be observed from inside: `/.dockerenv` and `/proc/1/cgroup`
22257
+ * (a container), and the platform (a Linux container cannot exist on darwin or
22258
+ * win32). What cannot: that the node is a CHILD of an Electron main process —
22259
+ * `process.versions.electron` is `undefined` in the child, so the only channel
22260
+ * is `CAMSTACK_AGENT_APP_VERSION`, which the main process already writes
22261
+ * (`packages/desktop/src/main.ts`). That one declaration is unavoidable, and it
22262
+ * is marked as such on every row of {@link WrapperEvidenceSchema}.
22263
+ *
22264
+ * - `docker` — container observed, no Electron declaration.
22265
+ * - `electron` — Electron declared, no container observed.
22266
+ * - `native` — the container probe RAN and found nothing, and there is
22267
+ * no Electron declaration. Exclusion, but only from a
22268
+ * probe that actually answered.
22269
+ * - `contradictory` — an Electron declaration INSIDE an observed container.
22270
+ * Reported, never resolved: both proofs stay on
22271
+ * `evidence` and nothing picks a winner.
22272
+ * - `unknown` — the container probe could not run (a Linux host that
22273
+ * denied `/proc/1/cgroup`). Never `native` by default,
22274
+ * for the same reason `assessImageContract` refuses to
22275
+ * say `in-sync` without proof.
22276
+ *
22277
+ * See D437.
22278
+ */
22279
+ var WrapperKindSchema = zod.z.enum([
22280
+ "docker",
22281
+ "electron",
22282
+ "native",
22283
+ "contradictory",
22284
+ "unknown"
22285
+ ]);
22286
+ /**
22287
+ * One probe and what it returned — including the probes that returned
22288
+ * NOTHING. A record listing only the facts that held cannot tell "checked,
22289
+ * absent" from "never checked", and that difference is the whole distance
22290
+ * between `native` and `unknown`.
22291
+ */
22292
+ var WrapperEvidenceSchema = zod.z.object({
22293
+ /** Which probe this row reports. */
22294
+ fact: zod.z.enum([
22295
+ "dockerenv-file",
22296
+ "proc-1-cgroup",
22297
+ "platform",
22298
+ "electron-app-version-env"
22299
+ ]),
22300
+ /**
22301
+ * `observed` — this process read it itself. `declared` — the shell told the
22302
+ * process and nothing here can check it. Only the Electron app version is
22303
+ * ever `declared`, and only because a child cannot see its parent.
22304
+ */
22305
+ mode: zod.z.enum(["observed", "declared"]),
22306
+ /** Did the probe support the fact it names? A `false` row is still evidence. */
22307
+ holds: zod.z.boolean(),
22308
+ /** What was actually read, verbatim enough for an operator to argue with. */
22309
+ detail: zod.z.string()
22310
+ });
22311
+ /**
22312
+ * The shell verdict (see {@link WrapperKindSchema}) with the proofs that
22313
+ * produced it.
22314
+ *
22315
+ * There is deliberately NO `canSelfUpdate` and no apply action: a wrapper
22316
+ * update is an ANNOUNCEMENT. The notification body carries the exact command
22317
+ * for a `docker` shell and says the app restarts into the new build for
22318
+ * `electron`, and that sentence is chosen from `kind` alone — a boolean
22319
+ * nothing reads is the defect this repo keeps paying for.
22320
+ */
22321
+ var WrapperIdentitySchema = zod.z.object({
22322
+ kind: WrapperKindSchema,
22323
+ /** Every probe that ran, in a stable order. Never empty. */
22324
+ evidence: zod.z.array(WrapperEvidenceSchema),
22325
+ /**
22326
+ * The version of the SHELL, when the shell has one it can state: the
22327
+ * Electron app version it declared, or the baked seed closure that
22328
+ * fingerprints a container / app bundle. `null` for `contradictory` and
22329
+ * `unknown` — which version belongs to the shell is precisely what is not
22330
+ * known there.
22331
+ */
22332
+ currentVersion: zod.z.string().nullable()
22333
+ });
22231
22334
  var ServerRollbackInfoSchema = zod.z.object({
22232
22335
  /** The version that failed (or was manually rolled back). */
22233
22336
  fromVersion: zod.z.string(),
@@ -22269,7 +22372,13 @@ var ServerPackageStatusSchema = zod.z.object({
22269
22372
  * Seed-vs-contract verdict (see {@link ImageContractSchema}). Optional for
22270
22373
  * version skew: an older provider's payload simply omits it.
22271
22374
  */
22272
- imageContract: ImageContractSchema.optional()
22375
+ imageContract: ImageContractSchema.optional(),
22376
+ /**
22377
+ * What this node runs INSIDE (see {@link WrapperIdentitySchema}). Optional
22378
+ * for version skew: an older provider's payload simply omits it, and an
22379
+ * absent wrapper is unknown — never `native`.
22380
+ */
22381
+ wrapper: WrapperIdentitySchema.optional()
22273
22382
  });
22274
22383
  var ServerUpdateCheckResultSchema = zod.z.object({
22275
22384
  packageName: zod.z.string(),
@@ -45628,6 +45737,12 @@ Object.defineProperty(exports, "deriveBatteryPresence", {
45628
45737
  return deriveBatteryPresence;
45629
45738
  }
45630
45739
  });
45740
+ Object.defineProperty(exports, "describeCustomActions", {
45741
+ enumerable: true,
45742
+ get: function() {
45743
+ return describeCustomActions;
45744
+ }
45745
+ });
45631
45746
  Object.defineProperty(exports, "deviceManagerCapability", {
45632
45747
  enumerable: true,
45633
45748
  get: function() {
@@ -9683,6 +9683,17 @@ var coreBlocksCapability = {
9683
9683
  })) }), { auth: "admin" })
9684
9684
  }
9685
9685
  };
9686
+ /** Strip a catalog to what crosses the wire. Pure; the schemas are not touched. */
9687
+ function describeCustomActions(catalog) {
9688
+ const out = {};
9689
+ for (const [name, spec] of Object.entries(catalog)) out[name] = {
9690
+ kind: spec.kind,
9691
+ auth: spec.auth,
9692
+ scope: spec.scope,
9693
+ ...spec.caller === "required" ? { caller: "required" } : {}
9694
+ };
9695
+ return out;
9696
+ }
9686
9697
  /**
9687
9698
  * `custom-model-registry` — collection cap exposing operator-registered
9688
9699
  * custom detection models. Each provider (today: `addon-model-studio`)
@@ -15189,6 +15200,7 @@ var NcSystemEventKindSchema = z.enum([
15189
15200
  "addon-crash-loop",
15190
15201
  "addon-update-available",
15191
15202
  "server-update-available",
15203
+ "wrapper-update-available",
15192
15204
  "alarm-triggered",
15193
15205
  "alarm-armed",
15194
15206
  "alarm-disarmed",
@@ -22228,6 +22240,97 @@ var ImageContractSchema = z.object({
22228
22240
  /** One operator-grade sentence: this node runs image X; the contract says Y. */
22229
22241
  message: z.string()
22230
22242
  });
22243
+ /**
22244
+ * How this node's SHELL was identified — the process wrapper the node runs
22245
+ * inside (a Docker container, the Electron desktop app, a bare host process).
22246
+ *
22247
+ * ## The rule: observe what you can, declare only what you cannot
22248
+ *
22249
+ * On 2026-08-02 `check-deployment-templates.ts` proved every day that the
22250
+ * templates declared `ghcr.io/camstack/camstack:intel-latest` while the hub
22251
+ * actually ran `camstack-server:intel-1.1.74` from a repository that had been
22252
+ * renamed and received no builds. The declaration was right; reality was not;
22253
+ * nothing compared them. A `CAMSTACK_WRAPPER=docker` written into a template
22254
+ * would be exactly that same declaration, so `kind` is NEVER an env var.
22255
+ *
22256
+ * What can honestly be observed from inside: `/.dockerenv` and `/proc/1/cgroup`
22257
+ * (a container), and the platform (a Linux container cannot exist on darwin or
22258
+ * win32). What cannot: that the node is a CHILD of an Electron main process —
22259
+ * `process.versions.electron` is `undefined` in the child, so the only channel
22260
+ * is `CAMSTACK_AGENT_APP_VERSION`, which the main process already writes
22261
+ * (`packages/desktop/src/main.ts`). That one declaration is unavoidable, and it
22262
+ * is marked as such on every row of {@link WrapperEvidenceSchema}.
22263
+ *
22264
+ * - `docker` — container observed, no Electron declaration.
22265
+ * - `electron` — Electron declared, no container observed.
22266
+ * - `native` — the container probe RAN and found nothing, and there is
22267
+ * no Electron declaration. Exclusion, but only from a
22268
+ * probe that actually answered.
22269
+ * - `contradictory` — an Electron declaration INSIDE an observed container.
22270
+ * Reported, never resolved: both proofs stay on
22271
+ * `evidence` and nothing picks a winner.
22272
+ * - `unknown` — the container probe could not run (a Linux host that
22273
+ * denied `/proc/1/cgroup`). Never `native` by default,
22274
+ * for the same reason `assessImageContract` refuses to
22275
+ * say `in-sync` without proof.
22276
+ *
22277
+ * See D437.
22278
+ */
22279
+ var WrapperKindSchema = z.enum([
22280
+ "docker",
22281
+ "electron",
22282
+ "native",
22283
+ "contradictory",
22284
+ "unknown"
22285
+ ]);
22286
+ /**
22287
+ * One probe and what it returned — including the probes that returned
22288
+ * NOTHING. A record listing only the facts that held cannot tell "checked,
22289
+ * absent" from "never checked", and that difference is the whole distance
22290
+ * between `native` and `unknown`.
22291
+ */
22292
+ var WrapperEvidenceSchema = z.object({
22293
+ /** Which probe this row reports. */
22294
+ fact: z.enum([
22295
+ "dockerenv-file",
22296
+ "proc-1-cgroup",
22297
+ "platform",
22298
+ "electron-app-version-env"
22299
+ ]),
22300
+ /**
22301
+ * `observed` — this process read it itself. `declared` — the shell told the
22302
+ * process and nothing here can check it. Only the Electron app version is
22303
+ * ever `declared`, and only because a child cannot see its parent.
22304
+ */
22305
+ mode: z.enum(["observed", "declared"]),
22306
+ /** Did the probe support the fact it names? A `false` row is still evidence. */
22307
+ holds: z.boolean(),
22308
+ /** What was actually read, verbatim enough for an operator to argue with. */
22309
+ detail: z.string()
22310
+ });
22311
+ /**
22312
+ * The shell verdict (see {@link WrapperKindSchema}) with the proofs that
22313
+ * produced it.
22314
+ *
22315
+ * There is deliberately NO `canSelfUpdate` and no apply action: a wrapper
22316
+ * update is an ANNOUNCEMENT. The notification body carries the exact command
22317
+ * for a `docker` shell and says the app restarts into the new build for
22318
+ * `electron`, and that sentence is chosen from `kind` alone — a boolean
22319
+ * nothing reads is the defect this repo keeps paying for.
22320
+ */
22321
+ var WrapperIdentitySchema = z.object({
22322
+ kind: WrapperKindSchema,
22323
+ /** Every probe that ran, in a stable order. Never empty. */
22324
+ evidence: z.array(WrapperEvidenceSchema),
22325
+ /**
22326
+ * The version of the SHELL, when the shell has one it can state: the
22327
+ * Electron app version it declared, or the baked seed closure that
22328
+ * fingerprints a container / app bundle. `null` for `contradictory` and
22329
+ * `unknown` — which version belongs to the shell is precisely what is not
22330
+ * known there.
22331
+ */
22332
+ currentVersion: z.string().nullable()
22333
+ });
22231
22334
  var ServerRollbackInfoSchema = z.object({
22232
22335
  /** The version that failed (or was manually rolled back). */
22233
22336
  fromVersion: z.string(),
@@ -22269,7 +22372,13 @@ var ServerPackageStatusSchema = z.object({
22269
22372
  * Seed-vs-contract verdict (see {@link ImageContractSchema}). Optional for
22270
22373
  * version skew: an older provider's payload simply omits it.
22271
22374
  */
22272
- imageContract: ImageContractSchema.optional()
22375
+ imageContract: ImageContractSchema.optional(),
22376
+ /**
22377
+ * What this node runs INSIDE (see {@link WrapperIdentitySchema}). Optional
22378
+ * for version skew: an older provider's payload simply omits it, and an
22379
+ * absent wrapper is unknown — never `native`.
22380
+ */
22381
+ wrapper: WrapperIdentitySchema.optional()
22273
22382
  });
22274
22383
  var ServerUpdateCheckResultSchema = z.object({
22275
22384
  packageName: z.string(),
@@ -45274,4 +45383,4 @@ function enumerateInferenceDevices(hw) {
45274
45383
  return out;
45275
45384
  }
45276
45385
  //#endregion
45277
- export { evictionPolicyOfLocation as $, DeviceRole as $t, addonSettingsCapability as A, resolveLocationMode as At, coreBlockIdFromAddonId as B, storageOccupancyCapability as Bt, ScopedTokenSchema as C, objectInputDeclaresAddonId as Ct, StorageMigrationJobSchema as D, reducePoints as Dt, StorageLocationTypeSchema as E, procedureAuthKey as Et, bareAddonId as F, scoreRuntimes as Ft, deviceManagerCapability as G, vectorStoreCapability as Gt, dataStoreProviderCapability as H, streamQualityLabel as Ht, batteryCapability as I, settingsStoreCapability as It, doorbellCapability as J, BaseAddon as Jt, deviceStateCapability as K, withLocationMode as Kt, buildStreamParamsConfigSchema as L, snapshotCapability as Lt, alertsCapability as M, runtimeStatePolicyFor as Mt, authProviderCapability as N, scopesAllowAddon as Nt, UserRecordSchema as O, resolveBucketMs as Ot, backupCapability as P, scopesAllowDeviceCap as Pt, evaluateSensorEdge as Q, DeviceFeature as Qt, collectSecretConfigKeys as R, storageCapability as Rt, STREAM_PROFILE_META as S, normalizeUnit as St, StorageLocationModeSchema as T, platformProbeCapability as Tt, decodeVectorBase64 as U, userManagementCapability as Ut, coreBlocksCapability as V, storageProviderCapability as Vt, deriveBatteryPresence as W, vectorDimFromBase64 as Wt, enumerateItemArrayFields as X, DEVICE_SETTINGS_CONTRIBUTION_METHODS as Xt, enumerateInferenceDevices as Y, DATAPLANE_SECRET_HEADER as Yt, enumerateSchemaFields as Z, DEVICE_STATUS_METHOD as Zt, RUNTIME_DEFAULTS as _, resolveCapMount as _n, looseSchema as _t, CAMERA_SWITCH_ORDER as a, asNumber as an, isCollectionArrayMethod as at, SOURCE_DEVICE_TYPES as b, EventCategory as bn, metricsProviderCapability as bt, CORE_BLOCK_ADDON_PREFIX as c, emitDownForOwnedCaps as cn, isSameAddonId as ct, DeclaredDevices as d, hydrateSchema as dn, kebabToCamel as dt, DeviceType as en, extractNestedAddonId as et, DeviceStatusSchema as f, isDeviceConfigCap as fn, legacyModeOf as ft, REDACTED_SECRET as g, readinessKey as gn, logLevelAtMost as gt, METHOD_ACCESS_MAP as h, parseJsonUnknown as hn, logDestinationCapability as ht, BatteryStatusSchema as i, asJsonObject as in, isArrayOutputSchema as it, addonWidgetsCapability as j, resolveMethodAuth as jt, addonPagesCapability as k, resolveContainerPrimaryChild as kt, CoreBlockSchema as l, emitReadiness as ln, isSourceCap as lt, LegacyStorageLocationDefaultSchema as m, parseJsonObject as mn, localNetworkCapability as mt, AlertSchema as n, ReadinessTimeoutError as nn, foldSnapshotByFunction as nt, CAP_NAMES_WITH_STATUS as o, asString as on, isLocationEnabled as ot, LOG_LEVEL_RANK as p, nodePin as pn, lifecycleJobSchema as pt, deviceStatusCapability as q, errMsg as qt, ApiKeyRecordSchema as r, WELL_KNOWN_TAB_MAP as rn, gbToBytes as rt, CORE_BLOCKS_ADDON_ID as s, createEvent as sn, isObjectInput as st, ALL_CAPABILITY_DEFINITIONS as t, ReadinessRegistry as tn, filesystemBrowseCapability as tt, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as u, expandCapMethods as un, isVoidInput as ut, RecordingStatusSchema as v, scopeKey as vn, mayReadLocation as vt, StorageCleanupJobSchema as w, parseStreamParamsFormPatch as wt, STORAGE_ACCESS_FALLBACK as x, modeMayWrite as xt, SOURCE_CAPS as y, sleep as yn, mayWriteToLocation as yt, coreBlockAddonId as z, storageMigrationCapability as zt };
45386
+ export { evaluateSensorEdge as $, DeviceFeature as $t, addonSettingsCapability as A, resolveContainerPrimaryChild as At, coreBlockIdFromAddonId as B, storageMigrationCapability as Bt, ScopedTokenSchema as C, normalizeUnit as Ct, StorageMigrationJobSchema as D, procedureAuthKey as Dt, StorageLocationTypeSchema as E, platformProbeCapability as Et, bareAddonId as F, scopesAllowDeviceCap as Ft, describeCustomActions as G, vectorDimFromBase64 as Gt, dataStoreProviderCapability as H, storageProviderCapability as Ht, batteryCapability as I, scoreRuntimes as It, deviceStatusCapability as J, errMsg as Jt, deviceManagerCapability as K, vectorStoreCapability as Kt, buildStreamParamsConfigSchema as L, settingsStoreCapability as Lt, alertsCapability as M, resolveMethodAuth as Mt, authProviderCapability as N, runtimeStatePolicyFor as Nt, UserRecordSchema as O, reducePoints as Ot, backupCapability as P, scopesAllowAddon as Pt, enumerateSchemaFields as Q, DEVICE_STATUS_METHOD as Qt, collectSecretConfigKeys as R, snapshotCapability as Rt, STREAM_PROFILE_META as S, modeMayWrite as St, StorageLocationModeSchema as T, parseStreamParamsFormPatch as Tt, decodeVectorBase64 as U, streamQualityLabel as Ut, coreBlocksCapability as V, storageOccupancyCapability as Vt, deriveBatteryPresence as W, userManagementCapability as Wt, enumerateInferenceDevices as X, DATAPLANE_SECRET_HEADER as Xt, doorbellCapability as Y, BaseAddon as Yt, enumerateItemArrayFields as Z, DEVICE_SETTINGS_CONTRIBUTION_METHODS as Zt, RUNTIME_DEFAULTS as _, readinessKey as _n, logLevelAtMost as _t, CAMERA_SWITCH_ORDER as a, asJsonObject as an, isArrayOutputSchema as at, SOURCE_DEVICE_TYPES as b, sleep as bn, mayWriteToLocation as bt, CORE_BLOCK_ADDON_PREFIX as c, createEvent as cn, isObjectInput as ct, DeclaredDevices as d, expandCapMethods as dn, isVoidInput as dt, DeviceRole as en, evictionPolicyOfLocation as et, DeviceStatusSchema as f, hydrateSchema as fn, kebabToCamel as ft, REDACTED_SECRET as g, parseJsonUnknown as gn, logDestinationCapability as gt, METHOD_ACCESS_MAP as h, parseJsonObject as hn, localNetworkCapability as ht, BatteryStatusSchema as i, WELL_KNOWN_TAB_MAP as in, gbToBytes as it, addonWidgetsCapability as j, resolveLocationMode as jt, addonPagesCapability as k, resolveBucketMs as kt, CoreBlockSchema as l, emitDownForOwnedCaps as ln, isSameAddonId as lt, LegacyStorageLocationDefaultSchema as m, nodePin as mn, lifecycleJobSchema as mt, AlertSchema as n, ReadinessRegistry as nn, filesystemBrowseCapability as nt, CAP_NAMES_WITH_STATUS as o, asNumber as on, isCollectionArrayMethod as ot, LOG_LEVEL_RANK as p, isDeviceConfigCap as pn, legacyModeOf as pt, deviceStateCapability as q, withLocationMode as qt, ApiKeyRecordSchema as r, ReadinessTimeoutError as rn, foldSnapshotByFunction as rt, CORE_BLOCKS_ADDON_ID as s, asString as sn, isLocationEnabled as st, ALL_CAPABILITY_DEFINITIONS as t, DeviceType as tn, extractNestedAddonId as tt, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as u, emitReadiness as un, isSourceCap as ut, RecordingStatusSchema as v, resolveCapMount as vn, looseSchema as vt, StorageCleanupJobSchema as w, objectInputDeclaresAddonId as wt, STORAGE_ACCESS_FALLBACK as x, EventCategory as xn, metricsProviderCapability as xt, SOURCE_CAPS as y, scopeKey as yn, mayReadLocation as yt, coreBlockAddonId as z, storageCapability as zt };
package/dist/index.d.ts CHANGED
@@ -52,7 +52,9 @@ export type { SocketPeerDelta, SocketPeerSample, SocketPlaneBaseline, SocketPlan
52
52
  export { createSocketPlaneMeter, createSocketPlaneReader, diffSocketPlane, EMPTY_SOCKET_PLANE_BASELINE, formatSocketPlane, SOCKET_PLANE_TOP_N, } from './kernel/socket-plane-report.js';
53
53
  export type { HeapDiagnosticDeps, HeapDiagnosticRequest, HeapSpaceReader, HeapSpaceUsage, } from './kernel/heap-spaces.js';
54
54
  export { DECISIVE_HEAP_SPACES, emitHeapDiagnosticReport, formatHeapSpaces, HEAP_SPACE_REPORT_MIN_MB, heapSpaceField, readHeapSpaces, selectReportedSpaces, } from './kernel/heap-spaces.js';
55
- export type { DeferredHeapWatchSink, HeapReclaimer, HeapReclaimOptions, HeapSample, HeapWatchProbes, HeapWatchSink, LoopDelayMeter, LoopDelaySample, RssBreakdown, RssBudgetOptions, RssBudgetState, RssGrowthShape, RunnerHeapWatchOptions, } from './kernel/heap-watch.js';
55
+ export type { ArrayBufferCensus, ArrayBufferCensusContext, ArrayBufferCensusGate, ArrayBufferCensusGateOptions, ArrayBufferCensusReport, ArrayBufferCensusVerdict, ArrayBufferExactSize, ArrayBufferSizeBucket, } from './kernel/array-buffer-census.js';
56
+ export { ARRAY_BUFFER_CENSUS_COOLDOWN_MS, ARRAY_BUFFER_CENSUS_SUSTAIN_MS, ARRAY_BUFFER_CENSUS_THRESHOLD_MB, ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, createArrayBufferCensusGate, createInspectorArrayBufferCensus, formatArrayBufferCensus, isArrayBufferCensusReport, } from './kernel/array-buffer-census.js';
57
+ export type { ArrayBufferCensusProbe, DeferredHeapWatchSink, HeapReclaimer, HeapReclaimOptions, HeapSample, HeapWatchProbes, HeapWatchSink, LoopDelayMeter, LoopDelaySample, RssBreakdown, RssBudgetOptions, RssBudgetState, RssGrowthShape, RunnerHeapWatchOptions, } from './kernel/heap-watch.js';
56
58
  export { buildHeapSample, createDeferredHeapWatchSink, createLoopDelayMeter, createV8Reclaimer, HEAP_RECLAIM_MIN_INTERVAL_MS, HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, HEAP_RECLAIM_TRIGGER_MB, HEAP_WATCH_INTERVAL_MS, HEAP_WATCH_WARN_RATIO, HUB_MAIN_HEAP_WATCH_LABEL, HUB_MAIN_RSS_BUDGET_MB, HUB_RSS_BUDGET_ENV, hubMainRssBudget, describeRss, nextRssBudgetState, parseRssBudgetMb, reclaimIntervalMs, RSS_BUDGET_REANNOUNCE_MIN_MS, RSS_BUDGET_RELEASE_RATIO, RUNNER_HEAP_WATCH_INTERVAL_MS, RUNNER_RSS_BUDGET_ENV, shouldReclaim, startHeapWatch, startRunnerHeapWatch, strandedMb, ZERO_LOOP_DELAY, } from './kernel/heap-watch.js';
57
59
  export type { StallVerdict } from './kernel/event-loop-stall-monitor.js';
58
60
  export { attributeStall, STALL_REPORT_MS, STALL_TICK_MS, startEventLoopStallMonitor, } from './kernel/event-loop-stall-monitor.js';
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_chunk = require("./chunk-Cek0wNdY.js");
3
- const require_dist = require("./dist-C85OOASj.js");
3
+ const require_dist = require("./dist-BOlMCOeT.js");
4
4
  const require_builtins_alerts_alerts_addon = require("./builtins/alerts/alerts.addon.js");
5
5
  require("./builtins/alerts/index.js");
6
6
  const require_formatter = require("./formatter-DqAKDlvN.js");
@@ -27,9 +27,9 @@ require("./builtins/system-config/index.js");
27
27
  const require_builtins_winston_logging_index = require("./builtins/winston-logging/index.js");
28
28
  const require_event_loop_stall_monitor = require("./event-loop-stall-monitor-DM9OAzy8.js");
29
29
  const require_tls$1 = require("./tls-BxQlomxd.js");
30
- const require_manifest_system_deps = require("./manifest-system-deps-DvY1bY_n.js");
30
+ const require_manifest_system_deps = require("./manifest-system-deps-Bo92lg5u.js");
31
31
  const require_resource_monitor = require("./resource-monitor-CdnzxBLP.js");
32
- const require_custom_action_registry = require("./custom-action-registry-jY0NOZK8.js");
32
+ const require_custom_action_registry = require("./custom-action-registry-BDwM5qAK.js");
33
33
  let zod = require("zod");
34
34
  let node_crypto = require("node:crypto");
35
35
  let _camstack_types_node = require("@camstack/types/node");
@@ -95777,6 +95777,10 @@ exports.AGENT_CAP_FWD_ACTION = require_manifest_system_deps.AGENT_CAP_FWD_ACTION
95777
95777
  exports.AGENT_CAP_FWD_SERVICE = require_manifest_system_deps.AGENT_CAP_FWD_SERVICE;
95778
95778
  exports.AGENT_READINESS_SERVICE_NAME = AGENT_READINESS_SERVICE_NAME;
95779
95779
  exports.ALL_CAPABILITY_DEFINITIONS = require_dist.ALL_CAPABILITY_DEFINITIONS;
95780
+ exports.ARRAY_BUFFER_CENSUS_COOLDOWN_MS = require_manifest_system_deps.ARRAY_BUFFER_CENSUS_COOLDOWN_MS;
95781
+ exports.ARRAY_BUFFER_CENSUS_SUSTAIN_MS = require_manifest_system_deps.ARRAY_BUFFER_CENSUS_SUSTAIN_MS;
95782
+ exports.ARRAY_BUFFER_CENSUS_THRESHOLD_MB = require_manifest_system_deps.ARRAY_BUFFER_CENSUS_THRESHOLD_MB;
95783
+ exports.ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO = require_manifest_system_deps.ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO;
95780
95784
  exports.AddonApiFactory = AddonApiFactory;
95781
95785
  exports.AddonDepsManager = require_manifest_system_deps.AddonDepsManager;
95782
95786
  exports.AddonEngineManager = AddonEngineManager;
@@ -95960,6 +95964,7 @@ exports.copyExtraFileDirs = copyExtraFileDirs;
95960
95964
  exports.createAddonContext = require_manifest_system_deps.createAddonContext;
95961
95965
  exports.createAddonDataPlaneFacility = require_manifest_system_deps.createAddonDataPlaneFacility;
95962
95966
  exports.createAddonService = require_manifest_system_deps.createAddonService;
95967
+ exports.createArrayBufferCensusGate = require_manifest_system_deps.createArrayBufferCensusGate;
95963
95968
  exports.createAuthenticatedFileServer = require_event_loop_stall_monitor.createAuthenticatedFileServer;
95964
95969
  exports.createBroker = createBroker;
95965
95970
  exports.createBrokerDeviceManagerApi = require_manifest_system_deps.createBrokerDeviceManagerApi;
@@ -95971,6 +95976,7 @@ exports.createEventPlaneReader = require_manifest_system_deps.createEventPlaneRe
95971
95976
  exports.createFileDataPlaneHandler = require_event_loop_stall_monitor.createFileDataPlaneHandler;
95972
95977
  exports.createHubCapForwardService = require_hub_cap_forward.createHubCapForwardService;
95973
95978
  exports.createHubService = createHubService;
95979
+ exports.createInspectorArrayBufferCensus = require_manifest_system_deps.createInspectorArrayBufferCensus;
95974
95980
  exports.createKernelHwAccel = require_manifest_system_deps.createKernelHwAccel;
95975
95981
  exports.createLocalTransport = require_manifest_system_deps.createLocalTransport;
95976
95982
  exports.createLoopDelayMeter = require_manifest_system_deps.createLoopDelayMeter;
@@ -96040,6 +96046,7 @@ Object.defineProperty(exports, "findInPath", {
96040
96046
  return _camstack_types_node.findInPath;
96041
96047
  }
96042
96048
  });
96049
+ exports.formatArrayBufferCensus = require_manifest_system_deps.formatArrayBufferCensus;
96043
96050
  exports.formatEventPlane = require_manifest_system_deps.formatEventPlane;
96044
96051
  exports.formatHeapSpaces = require_manifest_system_deps.formatHeapSpaces;
96045
96052
  exports.formatLogLine = require_formatter.formatLogLine;
@@ -96095,6 +96102,7 @@ Object.defineProperty(exports, "installPythonRequirements", {
96095
96102
  });
96096
96103
  exports.ipcParentLink = require_manifest_system_deps.ipcParentLink;
96097
96104
  exports.isAddonDeploySource = isAddonDeploySource;
96105
+ exports.isArrayBufferCensusReport = require_manifest_system_deps.isArrayBufferCensusReport;
96098
96106
  exports.isArrayOutputSchema = require_dist.isArrayOutputSchema;
96099
96107
  exports.isClusterSecretMismatchError = isClusterSecretMismatchError;
96100
96108
  exports.isCollectionArrayMethod = require_dist.isCollectionArrayMethod;
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM$1, r as __exportAll, t as __commonJSMin$1 } from "./chunk-CNf5ZN-e.mjs";
2
- import { A as addonSettingsCapability, Ct as objectInputDeclaresAddonId, Et as procedureAuthKey, Nt as scopesAllowAddon, Pt as scopesAllowDeviceCap, Xt as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Yt as DATAPLANE_SECRET_HEADER$1, Zt as DEVICE_STATUS_METHOD, _ as RUNTIME_DEFAULTS, _n as resolveCapMount, _t as looseSchema, an as asNumber, at as isCollectionArrayMethod, bn as EventCategory$1, cn as emitDownForOwnedCaps, dt as kebabToCamel, et as extractNestedAddonId, gn as readinessKey, gt as logLevelAtMost, h as METHOD_ACCESS_MAP, hn as parseJsonUnknown, in as asJsonObject$1, it as isArrayOutputSchema, jt as resolveMethodAuth, mn as parseJsonObject, nn as ReadinessTimeoutError, on as asString$1, p as LOG_LEVEL_RANK, pt as lifecycleJobSchema, qt as errMsg$1, sn as createEvent, st as isObjectInput, t as ALL_CAPABILITY_DEFINITIONS, tn as ReadinessRegistry, un as expandCapMethods, ut as isVoidInput, vn as scopeKey } from "./dist-DtDKMSeG.mjs";
2
+ import { A as addonSettingsCapability, Dt as procedureAuthKey, Ft as scopesAllowDeviceCap, Jt as errMsg$1, Mt as resolveMethodAuth, Pt as scopesAllowAddon, Qt as DEVICE_STATUS_METHOD, Xt as DATAPLANE_SECRET_HEADER$1, Zt as DEVICE_SETTINGS_CONTRIBUTION_METHODS, _ as RUNTIME_DEFAULTS, _n as readinessKey, _t as logLevelAtMost, an as asJsonObject$1, at as isArrayOutputSchema, cn as createEvent, ct as isObjectInput, dn as expandCapMethods, dt as isVoidInput, ft as kebabToCamel, gn as parseJsonUnknown, h as METHOD_ACCESS_MAP, hn as parseJsonObject, ln as emitDownForOwnedCaps, mt as lifecycleJobSchema, nn as ReadinessRegistry, on as asNumber, ot as isCollectionArrayMethod, p as LOG_LEVEL_RANK, rn as ReadinessTimeoutError, sn as asString$1, t as ALL_CAPABILITY_DEFINITIONS, tt as extractNestedAddonId, vn as resolveCapMount, vt as looseSchema, wt as objectInputDeclaresAddonId, xn as EventCategory$1, yn as scopeKey } from "./dist-DigmGsQS.mjs";
3
3
  import { AlertCenterAddon } from "./builtins/alerts/alerts.addon.mjs";
4
4
  import "./builtins/alerts/index.mjs";
5
5
  import { t as formatLogLine } from "./formatter-B7qW8bPJ.mjs";
@@ -26,9 +26,9 @@ import "./builtins/system-config/index.mjs";
26
26
  import { WinstonDestination, WinstonLoggingAddon } from "./builtins/winston-logging/index.mjs";
27
27
  import { _ as fetchJson, a as createFileDataPlaneHandler, c as parseRangeHeader, d as ModelDownloadService, f as collectModelFiles, g as ensureModel, h as downloadModel, i as startEventLoopStallMonitor, l as parseTokenizedUrl, m as downloadFile, n as STALL_TICK_MS, o as contentTypeFor, p as deleteModelFromDisk, r as attributeStall, s as createAuthenticatedFileServer, t as STALL_REPORT_MS, u as resolveFilePath, v as getModelFilePath, y as isModelDownloaded } from "./event-loop-stall-monitor-B3CFd9tM.mjs";
28
28
  import { C as registerLanHttpHandler, S as readLanHttpState, _ as DEFAULT_LAN_HTTP_PORT, a as writeTlsMode, b as bindPendingLanHttp, c as loadTlsCert, d as collectCertIdentity, f as CA_VALIDITY_DAYS, g as evaluateExistingCert, h as SERVER_AUTH_OID, i as writeExtraSans, l as reissueTlsLeaf, m as MAX_LEAF_VALIDITY_DAYS, n as readTlsAccessStatus, o as validateUploadedTls, p as LEAF_RENEWAL_WINDOW_DAYS, r as readTlsMode, s as ensureTlsCert, t as readExtraSans, u as CA_COMMON_NAME, v as allFamiliesListenHost, x as closeLanHttp, y as applyLanHttp } from "./tls-DOTmtLCW.mjs";
29
- import { $ as buildUdsNativeCapProxy, $t as formatHeapSpaces, A as createUdsLoggerWithControl, At as HUB_MAIN_RSS_BUDGET_MB, B as readMoleculerFanoutMode, Bt as createV8Reclaimer, C as ipcParentLink, Ct as createAddonDataPlaneFacility, D as createUdsEventBus, Dt as HEAP_WATCH_INTERVAL_MS, E as createUdsEventBridge, Et as HEAP_RECLAIM_TRIGGER_MB, F as AGENT_CAP_FWD_SERVICE, Ft as RUNNER_RSS_BUDGET_ENV, G as createLocalTransport, Gt as reclaimIntervalMs, H as PARENT_ROUTED_PROVIDER_ADDON_ID, Ht as hubMainRssBudget, I as CapRouteResolver, It as ZERO_LOOP_DELAY, J as SocketChannel, Jt as startRunnerHeapWatch, K as UdsLocalTransportClient, Kt as shouldReclaim, L as CapRouteError, Lt as buildHeapSample, M as LocalChildRegistry, Mt as RSS_BUDGET_REANNOUNCE_MIN_MS, N as UDS_NO_ROUTE_PREFIX, Nt as RSS_BUDGET_RELEASE_RATIO, O as udsChildLogToWorkerEntry, Ot as HEAP_WATCH_WARN_RATIO, P as AGENT_CAP_FWD_ACTION, Pt as RUNNER_HEAP_WATCH_INTERVAL_MS, Q as buildNativeCapProxy, Qt as emitHeapDiagnosticReport, R as classifyCapRoute, Rt as createDeferredHeapWatchSink, S as buildLinkChain, St as runNpm, T as createParentUnownedCallHandler, Tt as HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, U as __resetCapUsageRegistryForTests, Ut as nextRssBudgetState, V as CapUsageRegistry, Vt as describeRss, W as getCapUsageRegistry, Wt as parseRssBudgetMb, X as FrameDecoder, Xt as DECISIVE_HEAP_SPACES, Y as localEndpointPath, Yt as strandedMb, Z as encodeFrame, Zt as HEAP_SPACE_REPORT_MIN_MB, _ as AddonDepsManager, _n as createEventPlaneReader, _t as CapabilityUnavailableError, a as createUdsAddonContext, an as createSocketPlaneMeter, at as createAddonService, b as brokerCallForCap, bt as resolveAddonClass, c as getOrInitReadinessRegistryForClient, cn as formatSocketPlane, ct as capActionName, d as clusterEventTopic, dn as recordSocketFrame, dt as capServiceName, en as heapSpaceField, et as createBrokerDeviceManagerApi, f as getBrokerEventBus, fn as sampleSocketDirection, ft as parseCapAction, g as subscribePassthrough, gn as createEventPlaneMeter, gt as CapabilityHandle, h as setNodeEventInterest, hn as EVENT_PLANE_TOP_N, ht as DeviceRegistry, i as createAddonContext, in as SOCKET_PLANE_TOP_N, j as LocalChildClient, jt as HUB_RSS_BUDGET_ENV, k as createUdsLogger, kt as HUB_MAIN_HEAP_WATCH_LABEL, l as setHubConnected, ln as EMPTY_SOCKET_DIRECTION, lt as capActionSuffix, m as registerEventBusService, mn as socketDirectionMessages, mt as serializeTypedArrays, n as installManifestPythonDeps, nn as selectReportedSpaces, o as getWorkerDeviceRegistry, on as createSocketPlaneReader, ot as validateProviderRegistrations, p as getMoleculerEventStats, pn as socketDirectionBytes, pt as deserializeTypedArrays, q as UdsLocalTransportServer, qt as startHeapWatch, r as adaptBrokerToCluster, rn as EMPTY_SOCKET_PLANE_BASELINE, rt as mountNativeCapService, s as getOrInitReadinessRegistry, sn as diffSocketPlane, st as NATIVE_PROVIDER_SERVICE_INFIX, t as installManifestSystemDeps, tn as readHeapSpaces, u as EVENT_TOPIC_PREFIX, un as createSocketDirectionCounters, ut as capBareAction, v as createKernelHwAccel, vn as diffEventPlane, vt as copyBundledNativeModules, w as localProviderLink, wt as HEAP_RECLAIM_MIN_INTERVAL_MS, x as brokerTransportLink, xt as resolveNpmInvocation, y as resolveHwAccel, yn as formatEventPlane, yt as installManifestNativeDeps, z as callWithServiceDiscovery, zt as createLoopDelayMeter } from "./manifest-system-deps-726RBOX7.mjs";
29
+ import { $ as buildUdsNativeCapProxy, $t as ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, A as createUdsLoggerWithControl, At as HUB_MAIN_RSS_BUDGET_MB, B as readMoleculerFanoutMode, Bt as createV8Reclaimer, C as ipcParentLink, Cn as EVENT_PLANE_TOP_N, Ct as createAddonDataPlaneFacility, D as createUdsEventBus, Dn as formatEventPlane, Dt as HEAP_WATCH_INTERVAL_MS, E as createUdsEventBridge, En as diffEventPlane, Et as HEAP_RECLAIM_TRIGGER_MB, F as AGENT_CAP_FWD_SERVICE, Ft as RUNNER_RSS_BUDGET_ENV, G as createLocalTransport, Gt as reclaimIntervalMs, H as PARENT_ROUTED_PROVIDER_ADDON_ID, Ht as hubMainRssBudget, I as CapRouteResolver, It as ZERO_LOOP_DELAY, J as SocketChannel, Jt as startRunnerHeapWatch, K as UdsLocalTransportClient, Kt as shouldReclaim, L as CapRouteError, Lt as buildHeapSample, M as LocalChildRegistry, Mt as RSS_BUDGET_REANNOUNCE_MIN_MS, N as UDS_NO_ROUTE_PREFIX, Nt as RSS_BUDGET_RELEASE_RATIO, O as udsChildLogToWorkerEntry, Ot as HEAP_WATCH_WARN_RATIO, P as AGENT_CAP_FWD_ACTION, Pt as RUNNER_HEAP_WATCH_INTERVAL_MS, Q as buildNativeCapProxy, Qt as ARRAY_BUFFER_CENSUS_THRESHOLD_MB, R as classifyCapRoute, Rt as createDeferredHeapWatchSink, S as buildLinkChain, Sn as socketDirectionMessages, St as runNpm, T as createParentUnownedCallHandler, Tn as createEventPlaneReader, Tt as HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, U as __resetCapUsageRegistryForTests, Ut as nextRssBudgetState, V as CapUsageRegistry, Vt as describeRss, W as getCapUsageRegistry, Wt as parseRssBudgetMb, X as FrameDecoder, Xt as ARRAY_BUFFER_CENSUS_COOLDOWN_MS, Y as localEndpointPath, Yt as strandedMb, Z as encodeFrame, Zt as ARRAY_BUFFER_CENSUS_SUSTAIN_MS, _ as AddonDepsManager, _n as EMPTY_SOCKET_DIRECTION, _t as CapabilityUnavailableError, a as createUdsAddonContext, an as HEAP_SPACE_REPORT_MIN_MB, at as createAddonService, b as brokerCallForCap, bn as sampleSocketDirection, bt as resolveAddonClass, c as getOrInitReadinessRegistryForClient, cn as heapSpaceField, ct as capActionName, d as clusterEventTopic, dn as EMPTY_SOCKET_PLANE_BASELINE, dt as capServiceName, en as createArrayBufferCensusGate, et as createBrokerDeviceManagerApi, f as getBrokerEventBus, fn as SOCKET_PLANE_TOP_N, ft as parseCapAction, g as subscribePassthrough, gn as formatSocketPlane, gt as CapabilityHandle, h as setNodeEventInterest, hn as diffSocketPlane, ht as DeviceRegistry, i as createAddonContext, in as DECISIVE_HEAP_SPACES, j as LocalChildClient, jt as HUB_RSS_BUDGET_ENV, k as createUdsLogger, kt as HUB_MAIN_HEAP_WATCH_LABEL, l as setHubConnected, ln as readHeapSpaces, lt as capActionSuffix, m as registerEventBusService, mn as createSocketPlaneReader, mt as serializeTypedArrays, n as installManifestPythonDeps, nn as formatArrayBufferCensus, o as getWorkerDeviceRegistry, on as emitHeapDiagnosticReport, ot as validateProviderRegistrations, p as getMoleculerEventStats, pn as createSocketPlaneMeter, pt as deserializeTypedArrays, q as UdsLocalTransportServer, qt as startHeapWatch, r as adaptBrokerToCluster, rn as isArrayBufferCensusReport, rt as mountNativeCapService, s as getOrInitReadinessRegistry, sn as formatHeapSpaces, st as NATIVE_PROVIDER_SERVICE_INFIX, t as installManifestSystemDeps, tn as createInspectorArrayBufferCensus, u as EVENT_TOPIC_PREFIX, un as selectReportedSpaces, ut as capBareAction, v as createKernelHwAccel, vn as createSocketDirectionCounters, vt as copyBundledNativeModules, w as localProviderLink, wn as createEventPlaneMeter, wt as HEAP_RECLAIM_MIN_INTERVAL_MS, x as brokerTransportLink, xn as socketDirectionBytes, xt as resolveNpmInvocation, y as resolveHwAccel, yn as recordSocketFrame, yt as installManifestNativeDeps, z as callWithServiceDiscovery, zt as createLoopDelayMeter } from "./manifest-system-deps-D--wyMD9.mjs";
30
30
  import { n as getSinglePidStats, t as getPidStats } from "./resource-monitor-BWmQ5i-o.mjs";
31
- import { t as CustomActionRegistry } from "./custom-action-registry-F__gp_VX.mjs";
31
+ import { t as CustomActionRegistry } from "./custom-action-registry-CsONUlhC.mjs";
32
32
  import { z } from "zod";
33
33
  import { createHash, randomUUID, timingSafeEqual } from "node:crypto";
34
34
  import { PYTHON_VERSION, buildBinaryPath, downloadBinary, ensureBinary, ensureFfmpeg, ensurePython, findInPath, getFfmpegDownloadUrl, getPlatformInfo, getPythonDownloadUrl, installPythonPackages, installPythonRequirements } from "@camstack/types/node";
@@ -95766,4 +95766,4 @@ var LifecycleJobEngine = class {
95766
95766
  }
95767
95767
  };
95768
95768
  //#endregion
95769
- export { AGENT_CAP_FWD_ACTION, AGENT_CAP_FWD_SERVICE, AGENT_READINESS_SERVICE_NAME, ALL_CAPABILITY_DEFINITIONS, AddonApiFactory, AddonDepsManager, AddonEngineManager, AddonHealthMonitor, AddonInstaller, AddonLoader, AddonManifest, AddonRouteRegistry, AlertCenterAddon, ApiKeyManager, AuthManager, CA_COMMON_NAME, CA_VALIDITY_DAYS, CLUSTER_SECRET_MISMATCH_TYPE, CLUSTER_SECRET_REJECTED_EXIT_CODE, CORE_CAP_SERVICE_NAME, CapRouteError, CapRouteResolver, CapUsageRegistry, CapabilityHandle, CapabilityRegistry, CapabilityUnavailableError, ConfigManager, ConfigStore, ConsoleDestination, ConsoleLoggingAddon, CoreBlocksAddon, CustomActionRegistry, DECISIVE_HEAP_SPACES, DEFAULT_DATA_PATH, DEFAULT_LAN_HTTP_PORT, DEFAULT_LOG_LEVEL, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, DataPlaneRegistry, DeviceManagerAddon, DeviceRegistry, DeviceStore, EMPTY_SOCKET_DIRECTION, EMPTY_SOCKET_PLANE_BASELINE, EVENT_PLANE_TOP_N, EVENT_TOPIC_PREFIX, EngineManagerResolver, EventBus, FeatureManager, FilesystemStorageAddon, FilesystemStorageProvider, FrameDecoder, FsStorageBackend, HEALTH_MONITOR_GRACE_PERIOD_MS, HEALTH_MONITOR_RETRY_INTERVALS_MS, HEALTH_MONITOR_TICK_MS, HEAP_RECLAIM_MIN_INTERVAL_MS, HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, HEAP_RECLAIM_TRIGGER_MB, HEAP_SPACE_REPORT_MIN_MB, HEAP_WATCH_INTERVAL_MS, HEAP_WATCH_WARN_RATIO, HUB_CAP_FWD_ACTION, HUB_CAP_FWD_SERVICE, HUB_MAIN_HEAP_WATCH_LABEL, HUB_MAIN_RSS_BUDGET_MB, HUB_RSS_BUDGET_ENV, HubForwarderAddon, HubForwarderDestination, HubLogForwarder, HubNodeRegistry, INFRA_CAPABILITIES, IntegrationRegistry, JobJournal, LEAF_RENEWAL_WINDOW_DAYS, LifecycleJobEngine, LifecycleStateMachine, LivenessMonitorAddon, LocalAuthAddon, LocalChildClient, LocalChildRegistry, LogManager, LogRingBuffer, LoggingGate, LokiDestination, LokiLoggingAddon, MAX_LEAF_VALIDITY_DAYS, METHOD_ACCESS_MAP, ModelDownloadService, NATIVE_PROVIDER_SERVICE_INFIX, NATIVE_SCAN_DEPTH, NativeMetricsAddon, NativeMetricsProvider, NetworkQualityTracker, NotificationService, PARENT_ROUTED_PROVIDER_ADDON_ID, PYTHON_VERSION, PipelineRunner, PipelineValidator, PythonEnvManager, QUARANTINE_DIRNAME, RESTART_MARKER_FILE, RSS_BUDGET_REANNOUNCE_MIN_MS, RSS_BUDGET_RELEASE_RATIO, RUNNER_HEAP_WATCH_INTERVAL_MS, RUNNER_RSS_BUDGET_ENV, RUNTIME_DEFAULTS, ReadinessRegistry, ReadinessTimeoutError, ReplEngine, RingBuffer, SERVER_AUTH_OID, SOCKET_PLANE_TOP_N, STALL_REPORT_MS, STALL_TICK_MS, ScopedLogger, ScopedTokenManager, SocketChannel, SqliteSettingsAddon, SqliteSettingsBackend, StagingArea, StorageLocationManager, StorageManager, StorageOrchestratorAddon, StorageOrchestratorService, SystemConfigAddon, SystemEventBus, TRADITIONAL_NATIVE_PACKAGES, ToastService, UDS_NO_ROUTE_PREFIX, UdsLocalTransportClient, UdsLocalTransportServer, UserManager, WinstonDestination, WinstonLoggingAddon, ZERO_LOOP_DELAY, __resetCapUsageRegistryForTests, __resetLoggingGateForTests, adaptBrokerToCluster, addonSettingsCapability, allFamiliesListenHost, applyLanHttp, attributeStall, bindPendingLanHttp, bootstrapSchema, brokerCallForCap, brokerTransportLink, buildBinaryPath, buildCapRouters, buildHeapSample, buildLinkChain, buildNativeCapProxy, buildNodeManifest, buildStorageLocationRegistry, buildUdsNativeCapProxy, builderMountedCapNames, callRegisterNodeWithRetry, callWithServiceDiscovery, canServeDataPlane, capActionName, capActionSuffix, capBareAction, capServiceName, classifyAddonDir, classifyCapRoute, clearPendingRestart, closeLanHttp, clusterEventTopic, clusterSecretMatches, collectCertIdentity, collectModelFiles, contentTypeFor, copyDirRecursive, copyExtraFileDirs, createAddonContext, createAddonDataPlaneFacility, createAddonService, createAuthenticatedFileServer, createBroker, createBrokerDeviceManagerApi, createCoreCapService, createDeferredHeapWatchSink, createDoorSettingsView, createEventPlaneMeter, createEventPlaneReader, createFileDataPlaneHandler, createHubCapForwardService, createHubService, createKernelHwAccel, createLocalTransport, createLoopDelayMeter, createParentUnownedCallHandler, createProcessService, createReadinessService, createReadinessServiceForRegistry, createScopedProcessManager, createSocketDirectionCounters, createSocketPlaneMeter, createSocketPlaneReader, createStreamProbeBrokerService, createUdsAddonContext, createUdsEventBridge, createUdsEventBus, createUdsLogger, createUdsLoggerWithControl, createV8Reclaimer, deleteModelFromDisk, deriveAgentListenPort, describeProviderKindDrift, describeRss, detectWorkspacePackagesDir, diffEventPlane, diffSocketPlane, downloadBinary, downloadFile, downloadModel, emitDownForOwnedCaps, emitHeapDiagnosticReport, encodeFrame, ensureAddonNativePrebuilds, ensureBinary, ensureDir, ensureFfmpeg, ensureLibraryBuilt, ensureModel, ensureNativePrebuilds, ensurePython, ensureTlsCert, evaluateExistingCert, expandCapMethods, fetchJson, findInPath, formatEventPlane, formatHeapSpaces, formatLogLine, formatSocketPlane, getBrokerEventBus, getCapUsageRegistry, getFfmpegDownloadUrl, getLoggingGate, getModelFilePath, getMoleculerEventStats, getOrInitReadinessRegistry, getOrInitReadinessRegistryForClient, getPidStats, getPlatformInfo, getPythonDownloadUrl, getRestartMarkerPath, getSinglePidStats, getWorkerDeviceRegistry, hasDotNode, hashClusterSecret, heapSpaceField, hubMainRssBudget, installManifestNativeDeps, installManifestPythonDeps, installManifestSystemDeps, installPackageFromNpm, installPythonPackages, installPythonRequirements, ipcParentLink, isAddonDeploySource, isArrayOutputSchema, isClusterSecretMismatchError, isCollectionArrayMethod, isInfraCapability, isModelDownloaded, isSourceNewer, isolatedBuiltinPhase, loadTlsCert, localEndpointPath, localProviderLink, mountNativeCapService, nextRssBudgetState, parseCapAction, parseRangeHeader, parseRssBudgetMb, parseTokenizedUrl, partitionIsolatedBuiltinIds, proxyToUpstream, quarantineAddonResidue, readExtraSans, readHeapSpaces, readLanHttpState, readMoleculerFanoutMode, readPendingRestart, readTlsAccessStatus, readTlsMode, readinessKey, reclaimIntervalMs, recordSocketFrame, registerEventBusService, registerLanHttpHandler, reissueTlsLeaf, resolveFilePath, resolveHwAccel, resolveNpmInvocation, runHubAddonBoot, runNpm, sampleSocketDirection, scheduleSelfRestart, scopeKey, scopesAllowAddon, scopesAllowDeviceCap, selectAddonResidue, selectReportedSpaces, serializeTypedArrays, setHubConnected, setNodeEventInterest, shouldReclaim, socketDirectionBytes, socketDirectionMessages, startEventLoopStallMonitor, startHeapWatch, startRunnerHeapWatch, strandedMb, stripCamstackDeps, subscribePassthrough, udsChildLogToWorkerEntry, validateProviderRegistrations, validateUploadedTls, waitUntilReady, writeExtraSans, writePendingRestart, writeTlsMode };
95769
+ export { AGENT_CAP_FWD_ACTION, AGENT_CAP_FWD_SERVICE, AGENT_READINESS_SERVICE_NAME, ALL_CAPABILITY_DEFINITIONS, ARRAY_BUFFER_CENSUS_COOLDOWN_MS, ARRAY_BUFFER_CENSUS_SUSTAIN_MS, ARRAY_BUFFER_CENSUS_THRESHOLD_MB, ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, AddonApiFactory, AddonDepsManager, AddonEngineManager, AddonHealthMonitor, AddonInstaller, AddonLoader, AddonManifest, AddonRouteRegistry, AlertCenterAddon, ApiKeyManager, AuthManager, CA_COMMON_NAME, CA_VALIDITY_DAYS, CLUSTER_SECRET_MISMATCH_TYPE, CLUSTER_SECRET_REJECTED_EXIT_CODE, CORE_CAP_SERVICE_NAME, CapRouteError, CapRouteResolver, CapUsageRegistry, CapabilityHandle, CapabilityRegistry, CapabilityUnavailableError, ConfigManager, ConfigStore, ConsoleDestination, ConsoleLoggingAddon, CoreBlocksAddon, CustomActionRegistry, DECISIVE_HEAP_SPACES, DEFAULT_DATA_PATH, DEFAULT_LAN_HTTP_PORT, DEFAULT_LOG_LEVEL, DEVICE_SETTINGS_CONTRIBUTION_METHODS, DEVICE_STATUS_METHOD, DataPlaneRegistry, DeviceManagerAddon, DeviceRegistry, DeviceStore, EMPTY_SOCKET_DIRECTION, EMPTY_SOCKET_PLANE_BASELINE, EVENT_PLANE_TOP_N, EVENT_TOPIC_PREFIX, EngineManagerResolver, EventBus, FeatureManager, FilesystemStorageAddon, FilesystemStorageProvider, FrameDecoder, FsStorageBackend, HEALTH_MONITOR_GRACE_PERIOD_MS, HEALTH_MONITOR_RETRY_INTERVALS_MS, HEALTH_MONITOR_TICK_MS, HEAP_RECLAIM_MIN_INTERVAL_MS, HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, HEAP_RECLAIM_TRIGGER_MB, HEAP_SPACE_REPORT_MIN_MB, HEAP_WATCH_INTERVAL_MS, HEAP_WATCH_WARN_RATIO, HUB_CAP_FWD_ACTION, HUB_CAP_FWD_SERVICE, HUB_MAIN_HEAP_WATCH_LABEL, HUB_MAIN_RSS_BUDGET_MB, HUB_RSS_BUDGET_ENV, HubForwarderAddon, HubForwarderDestination, HubLogForwarder, HubNodeRegistry, INFRA_CAPABILITIES, IntegrationRegistry, JobJournal, LEAF_RENEWAL_WINDOW_DAYS, LifecycleJobEngine, LifecycleStateMachine, LivenessMonitorAddon, LocalAuthAddon, LocalChildClient, LocalChildRegistry, LogManager, LogRingBuffer, LoggingGate, LokiDestination, LokiLoggingAddon, MAX_LEAF_VALIDITY_DAYS, METHOD_ACCESS_MAP, ModelDownloadService, NATIVE_PROVIDER_SERVICE_INFIX, NATIVE_SCAN_DEPTH, NativeMetricsAddon, NativeMetricsProvider, NetworkQualityTracker, NotificationService, PARENT_ROUTED_PROVIDER_ADDON_ID, PYTHON_VERSION, PipelineRunner, PipelineValidator, PythonEnvManager, QUARANTINE_DIRNAME, RESTART_MARKER_FILE, RSS_BUDGET_REANNOUNCE_MIN_MS, RSS_BUDGET_RELEASE_RATIO, RUNNER_HEAP_WATCH_INTERVAL_MS, RUNNER_RSS_BUDGET_ENV, RUNTIME_DEFAULTS, ReadinessRegistry, ReadinessTimeoutError, ReplEngine, RingBuffer, SERVER_AUTH_OID, SOCKET_PLANE_TOP_N, STALL_REPORT_MS, STALL_TICK_MS, ScopedLogger, ScopedTokenManager, SocketChannel, SqliteSettingsAddon, SqliteSettingsBackend, StagingArea, StorageLocationManager, StorageManager, StorageOrchestratorAddon, StorageOrchestratorService, SystemConfigAddon, SystemEventBus, TRADITIONAL_NATIVE_PACKAGES, ToastService, UDS_NO_ROUTE_PREFIX, UdsLocalTransportClient, UdsLocalTransportServer, UserManager, WinstonDestination, WinstonLoggingAddon, ZERO_LOOP_DELAY, __resetCapUsageRegistryForTests, __resetLoggingGateForTests, adaptBrokerToCluster, addonSettingsCapability, allFamiliesListenHost, applyLanHttp, attributeStall, bindPendingLanHttp, bootstrapSchema, brokerCallForCap, brokerTransportLink, buildBinaryPath, buildCapRouters, buildHeapSample, buildLinkChain, buildNativeCapProxy, buildNodeManifest, buildStorageLocationRegistry, buildUdsNativeCapProxy, builderMountedCapNames, callRegisterNodeWithRetry, callWithServiceDiscovery, canServeDataPlane, capActionName, capActionSuffix, capBareAction, capServiceName, classifyAddonDir, classifyCapRoute, clearPendingRestart, closeLanHttp, clusterEventTopic, clusterSecretMatches, collectCertIdentity, collectModelFiles, contentTypeFor, copyDirRecursive, copyExtraFileDirs, createAddonContext, createAddonDataPlaneFacility, createAddonService, createArrayBufferCensusGate, createAuthenticatedFileServer, createBroker, createBrokerDeviceManagerApi, createCoreCapService, createDeferredHeapWatchSink, createDoorSettingsView, createEventPlaneMeter, createEventPlaneReader, createFileDataPlaneHandler, createHubCapForwardService, createHubService, createInspectorArrayBufferCensus, createKernelHwAccel, createLocalTransport, createLoopDelayMeter, createParentUnownedCallHandler, createProcessService, createReadinessService, createReadinessServiceForRegistry, createScopedProcessManager, createSocketDirectionCounters, createSocketPlaneMeter, createSocketPlaneReader, createStreamProbeBrokerService, createUdsAddonContext, createUdsEventBridge, createUdsEventBus, createUdsLogger, createUdsLoggerWithControl, createV8Reclaimer, deleteModelFromDisk, deriveAgentListenPort, describeProviderKindDrift, describeRss, detectWorkspacePackagesDir, diffEventPlane, diffSocketPlane, downloadBinary, downloadFile, downloadModel, emitDownForOwnedCaps, emitHeapDiagnosticReport, encodeFrame, ensureAddonNativePrebuilds, ensureBinary, ensureDir, ensureFfmpeg, ensureLibraryBuilt, ensureModel, ensureNativePrebuilds, ensurePython, ensureTlsCert, evaluateExistingCert, expandCapMethods, fetchJson, findInPath, formatArrayBufferCensus, formatEventPlane, formatHeapSpaces, formatLogLine, formatSocketPlane, getBrokerEventBus, getCapUsageRegistry, getFfmpegDownloadUrl, getLoggingGate, getModelFilePath, getMoleculerEventStats, getOrInitReadinessRegistry, getOrInitReadinessRegistryForClient, getPidStats, getPlatformInfo, getPythonDownloadUrl, getRestartMarkerPath, getSinglePidStats, getWorkerDeviceRegistry, hasDotNode, hashClusterSecret, heapSpaceField, hubMainRssBudget, installManifestNativeDeps, installManifestPythonDeps, installManifestSystemDeps, installPackageFromNpm, installPythonPackages, installPythonRequirements, ipcParentLink, isAddonDeploySource, isArrayBufferCensusReport, isArrayOutputSchema, isClusterSecretMismatchError, isCollectionArrayMethod, isInfraCapability, isModelDownloaded, isSourceNewer, isolatedBuiltinPhase, loadTlsCert, localEndpointPath, localProviderLink, mountNativeCapService, nextRssBudgetState, parseCapAction, parseRangeHeader, parseRssBudgetMb, parseTokenizedUrl, partitionIsolatedBuiltinIds, proxyToUpstream, quarantineAddonResidue, readExtraSans, readHeapSpaces, readLanHttpState, readMoleculerFanoutMode, readPendingRestart, readTlsAccessStatus, readTlsMode, readinessKey, reclaimIntervalMs, recordSocketFrame, registerEventBusService, registerLanHttpHandler, reissueTlsLeaf, resolveFilePath, resolveHwAccel, resolveNpmInvocation, runHubAddonBoot, runNpm, sampleSocketDirection, scheduleSelfRestart, scopeKey, scopesAllowAddon, scopesAllowDeviceCap, selectAddonResidue, selectReportedSpaces, serializeTypedArrays, setHubConnected, setNodeEventInterest, shouldReclaim, socketDirectionBytes, socketDirectionMessages, startEventLoopStallMonitor, startHeapWatch, startRunnerHeapWatch, strandedMb, stripCamstackDeps, subscribePassthrough, udsChildLogToWorkerEntry, validateProviderRegistrations, validateUploadedTls, waitUntilReady, writeExtraSans, writePendingRestart, writeTlsMode };
@@ -0,0 +1,122 @@
1
+ /** One power-of-two bucket of the live set: every buffer with `byteLength <= upToBytes`
2
+ * and above the previous bucket. */
3
+ export interface ArrayBufferSizeBucket {
4
+ readonly upToBytes: number;
5
+ readonly count: number;
6
+ readonly bytes: number;
7
+ }
8
+ /** One exact byteLength and how much of the live set it accounts for. */
9
+ export interface ArrayBufferExactSize {
10
+ readonly byteLength: number;
11
+ readonly count: number;
12
+ readonly bytes: number;
13
+ }
14
+ export interface ArrayBufferCensusReport {
15
+ /** Live `ArrayBuffer` objects reachable after the census's own GC. */
16
+ readonly count: number;
17
+ /** Their total `byteLength`. */
18
+ readonly bytes: number;
19
+ /** Buffers whose backing store is gone (`byteLength === 0`, detached). */
20
+ readonly detached: number;
21
+ /** Largest buckets first, by bytes. */
22
+ readonly buckets: readonly ArrayBufferSizeBucket[];
23
+ /** Largest exact sizes first, by bytes. */
24
+ readonly topSizes: readonly ArrayBufferExactSize[];
25
+ }
26
+ /** Take a census. Injectable so the heartbeat's gating is testable without an inspector. */
27
+ export type ArrayBufferCensus = () => Promise<ArrayBufferCensusReport>;
28
+ /**
29
+ * Take the census once `arrayBuffers` has been at or above this for
30
+ * {@link ARRAY_BUFFER_CENSUS_SUSTAIN_MS}.
31
+ *
32
+ * 512 MB. The two 2026-09-10 episodes crossed it 25 and 8 minutes in; the
33
+ * routine reading in six hours of 2-second samples around them was 18–100 MB
34
+ * with single-sample spikes to 479 MB, and the process's floor after every
35
+ * compaction is 12–18 MB. A dead-buffer sawtooth between major GCs (measured
36
+ * up to 3.65 GB on 2026-08-08 when the heap had 4 GB of headroom) cannot reach
37
+ * it while GC runs every few seconds — and if one did, the census would SAY
38
+ * so: it reports the live total after its own GC next to the raw reading.
39
+ */
40
+ export declare const ARRAY_BUFFER_CENSUS_THRESHOLD_MB = 512;
41
+ /**
42
+ * How long the reading must stay above the threshold before a census is taken.
43
+ *
44
+ * 60 s = 30 probes at the 2 s cadence. A burst that a scavenge or the next
45
+ * major GC returns never pays a forced GC; an episode climbing at the slowest
46
+ * rate measured (20 MB/min) is still 20 MB higher by the time it is measured,
47
+ * which is nothing against the threshold.
48
+ */
49
+ export declare const ARRAY_BUFFER_CENSUS_SUSTAIN_MS = 60000;
50
+ /**
51
+ * Minimum spacing between two censuses.
52
+ *
53
+ * 30 minutes: the second episode ran 76 minutes, so it would have produced
54
+ * three readings — enough to see the shape change (or not) as it grew — at a
55
+ * cost the router already pays six times an hour for the reclaim pass.
56
+ */
57
+ export declare const ARRAY_BUFFER_CENSUS_COOLDOWN_MS: number;
58
+ /**
59
+ * A drop of at least this share of the threshold between two consecutive
60
+ * probes, from a reading that had been SUSTAINED above the threshold, is a
61
+ * RELEASE — the boundary both episodes crossed with no line, and the one line
62
+ * that lets the release be correlated with whatever else the process logged
63
+ * that second. Sustained, not merely above: a one-probe spike that the next
64
+ * scavenge sweeps (a 1.3 GB burst in 11 s was measured on 2026-08-29) is not
65
+ * an episode ending, and a WARN for every one of those would bury the line
66
+ * this exists to produce.
67
+ */
68
+ export declare const ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO = 0.5;
69
+ export interface ArrayBufferCensusGateOptions {
70
+ readonly thresholdMb?: number;
71
+ readonly sustainMs?: number;
72
+ readonly cooldownMs?: number;
73
+ }
74
+ /** What one probe reading means to the gate. */
75
+ export type ArrayBufferCensusVerdict = {
76
+ readonly kind: 'hold';
77
+ }
78
+ /** Take a census now. `reason` is printed on the resulting line. */
79
+ | {
80
+ readonly kind: 'take';
81
+ readonly reason: string;
82
+ }
83
+ /** The live set was released between this probe and the previous one. */
84
+ | {
85
+ readonly kind: 'released';
86
+ readonly fromMb: number;
87
+ readonly toMb: number;
88
+ };
89
+ export interface ArrayBufferCensusGate {
90
+ /** Judge one reading. A `take` verdict starts the cooldown. */
91
+ readonly observe: (arrayBuffersMb: number, at: number) => ArrayBufferCensusVerdict;
92
+ }
93
+ /**
94
+ * The pure decision: threshold, sustain, cooldown, release — testable without
95
+ * allocating a gigabyte or forcing a GC.
96
+ */
97
+ export declare function createArrayBufferCensusGate(options?: ArrayBufferCensusGateOptions): ArrayBufferCensusGate;
98
+ /** The inspector answers `unknown`; the report is trusted only once it has this shape. */
99
+ export declare function isArrayBufferCensusReport(value: unknown): value is ArrayBufferCensusReport;
100
+ /**
101
+ * The real census: an in-process inspector session, opened for the call and
102
+ * closed after it, so no session is left listening between censuses.
103
+ *
104
+ * Every remote object it creates is released before the session closes; a
105
+ * failure anywhere still disconnects. The session is in-process — nothing
106
+ * listens on a port, nothing outside this process can reach it.
107
+ */
108
+ export declare function createInspectorArrayBufferCensus(): ArrayBufferCensus;
109
+ /** What a census line needs beyond the report. */
110
+ export interface ArrayBufferCensusContext {
111
+ /** `process.memoryUsage().arrayBuffers` at the probe that triggered it. */
112
+ readonly rawMb: number;
113
+ readonly tookMs: number;
114
+ /** The gate's `take` reason. */
115
+ readonly reason: string;
116
+ }
117
+ /**
118
+ * The census line. `live` is what survived the census's own GC; `raw` is the
119
+ * reading that triggered it — when they disagree by a lot, the growth was dead
120
+ * buffers awaiting a sweep, not a retention, and the line says which.
121
+ */
122
+ export declare function formatArrayBufferCensus(label: string, report: ArrayBufferCensusReport, context: ArrayBufferCensusContext): string;
@@ -1,4 +1,4 @@
1
- import { CustomActionCaller, CustomActionSpec, CustomActionsSpec } from '@camstack/types';
1
+ import { ChildCustomActionCatalogs, CustomActionCaller, CustomActionSpec, CustomActionsSpec } from '@camstack/types';
2
2
  type Handler = (action: string, input: unknown, caller?: CustomActionCaller) => Promise<unknown>;
3
3
  export interface CustomActionEntry {
4
4
  readonly spec: CustomActionSpec;
@@ -19,5 +19,14 @@ export declare class CustomActionRegistry {
19
19
  resolve(addonId: string, action: string): CustomActionEntry | null;
20
20
  listActions(addonId: string): readonly string[];
21
21
  listAddons(): readonly string[];
22
+ /**
23
+ * Every registered catalog with its schemas stripped, keyed by addon id —
24
+ * what a runner puts in its register frame so the hub learns the catalogs
25
+ * from the process that owns them (D444). `hostedAddonIds` are the addons
26
+ * this runner hosts: each is present in the result, with an EMPTY catalog
27
+ * when it registered none, so the parent can say "declares no actions" per
28
+ * addon instead of guessing from an absent key.
29
+ */
30
+ describeAll(hostedAddonIds: readonly string[]): ChildCustomActionCatalogs;
22
31
  }
23
32
  export {};
@@ -1,6 +1,7 @@
1
1
  import { EventPlaneReader } from './event-plane-report.js';
2
2
  import { SocketPlaneReader } from './socket-plane-report.js';
3
3
  import { HeapSpaceReader } from './heap-spaces.js';
4
+ import { ArrayBufferCensus, ArrayBufferCensusGateOptions } from './array-buffer-census.js';
4
5
  /**
5
6
  * What hub-main calls itself in a `[mem]` line.
6
7
  *
@@ -606,6 +607,20 @@ export interface HeapWatchProbes {
606
607
  * from the parent's side. Only hub-main and an agent's main pass one.
607
608
  */
608
609
  readonly socketPlane?: SocketPlaneReader;
610
+ /**
611
+ * The ArrayBuffer census that ARMS ITSELF. No default: it costs a forced
612
+ * full GC when it fires, and only hub-main has an episode on record (two
613
+ * silent linear climbs to 1.3 GB and 5 GB on 2026-09-10, each released in
614
+ * one instant with no line, the second two hours before the OOM). A runner
615
+ * that legitimately holds gigabytes of ArrayBuffers (`hub/stream-broker`,
616
+ * ~900 MB of RTP pre-roll rings) would fire it forever. See
617
+ * `array-buffer-census.ts` for the gate, the cost and what it is NOT.
618
+ */
619
+ readonly arrayBufferCensus?: ArrayBufferCensusProbe;
620
+ }
621
+ /** How the census is wired: the census itself plus the gate's thresholds. */
622
+ export interface ArrayBufferCensusProbe extends ArrayBufferCensusGateOptions {
623
+ readonly census: ArrayBufferCensus;
609
624
  }
610
625
  /**
611
626
  * Start the heartbeat. Returns a stop function.