@camstack/system 1.2.389 → 1.2.391
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.
- package/dist/addon/addon-api-factory.d.ts +30 -30
- package/dist/addon-routes/addon-route-registry.d.ts +31 -31
- package/dist/addon-runner.js +1 -1
- package/dist/addon-runner.mjs +1 -1
- package/dist/addon-utils.d.ts +22 -22
- package/dist/auth/admin-token-manager.d.ts +37 -67
- package/dist/auth/api-key-manager.d.ts +8 -8
- package/dist/auth/auth-audit-log.d.ts +29 -49
- package/dist/auth/auth-manager.d.ts +127 -126
- package/dist/auth/cidr.d.ts +8 -8
- package/dist/auth/external-identity-manager.d.ts +46 -34
- package/dist/auth/jwt-signing-key.d.ts +14 -14
- package/dist/auth/login-session-manager.d.ts +95 -135
- package/dist/auth/parse-record.d.ts +13 -13
- package/dist/auth/scope-matcher.d.ts +7 -7
- package/dist/auth/scoped-token-manager.d.ts +62 -62
- package/dist/auth/token-expiry.d.ts +49 -26
- package/dist/auth/totp-manager.d.ts +48 -48
- package/dist/auth/user-management-internal.d.ts +67 -52
- package/dist/auth/user-manager.d.ts +58 -58
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.d.ts +54 -54
- package/dist/builtins/addon-pages-aggregator/dedupe-pages.d.ts +22 -4
- package/dist/builtins/addon-pages-aggregator/index.d.ts +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.d.ts +54 -54
- package/dist/builtins/addon-widgets-aggregator/index.d.ts +1 -1
- package/dist/builtins/alerts/alerts.addon.d.ts +88 -87
- package/dist/builtins/alerts/device-label.d.ts +6 -6
- package/dist/builtins/alerts/index.d.ts +1 -1
- package/dist/builtins/alerts/prune-policy.d.ts +36 -36
- package/dist/builtins/autotrack/autotrack-cameras.d.ts +102 -79
- package/dist/builtins/autotrack/autotrack-config.d.ts +81 -81
- package/dist/builtins/autotrack/autotrack-decision.d.ts +69 -82
- package/dist/builtins/autotrack/autotrack-loop.d.ts +81 -61
- package/dist/builtins/autotrack/autotrack.addon.d.ts +103 -66
- package/dist/builtins/autotrack/frame-error.d.ts +38 -38
- package/dist/builtins/autotrack/frame-measurements.d.ts +79 -79
- package/dist/builtins/autotrack/index.d.ts +2 -2
- package/dist/builtins/autotrack/ptz-mirror.d.ts +46 -17
- package/dist/builtins/autotrack/target-selection.d.ts +33 -47
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.d.ts +270 -269
- package/dist/builtins/backup-orchestrator/cron-helpers.d.ts +17 -17
- package/dist/builtins/backup-orchestrator/destination-policy.d.ts +99 -82
- package/dist/builtins/backup-orchestrator/download-helpers.d.ts +9 -9
- package/dist/builtins/backup-orchestrator/encryption-key-store.d.ts +40 -29
- package/dist/builtins/backup-orchestrator/index.d.ts +2 -2
- package/dist/builtins/backup-orchestrator/manifest-store.d.ts +88 -69
- package/dist/builtins/backup-orchestrator/restore-archive.d.ts +14 -14
- package/dist/builtins/backup-orchestrator/run-queue.d.ts +86 -86
- package/dist/builtins/backup-orchestrator/schedule-store.d.ts +53 -37
- package/dist/builtins/backup-orchestrator/staging-paths.d.ts +23 -23
- package/dist/builtins/backup-orchestrator/write-targets.d.ts +53 -53
- package/dist/builtins/calendars/calendar-color.d.ts +5 -1
- package/dist/builtins/calendars/calendar-prefs-store.d.ts +18 -12
- package/dist/builtins/calendars/calendars.addon.d.ts +16 -11
- package/dist/builtins/calendars/index.d.ts +1 -1
- package/dist/builtins/camera-grid/acquire-retry.d.ts +26 -26
- package/dist/builtins/camera-grid/addon.d.ts +200 -174
- package/dist/builtins/camera-grid/flv-join.d.ts +32 -58
- package/dist/builtins/camera-grid/grid-activity-mirror.d.ts +37 -37
- package/dist/builtins/camera-grid/grid-activity.d.ts +83 -42
- package/dist/builtins/camera-grid/grid-camera-declarations.d.ts +46 -46
- package/dist/builtins/camera-grid/grid-camera-device.d.ts +60 -34
- package/dist/builtins/camera-grid/grid-canvas-derivation.d.ts +50 -15
- package/dist/builtins/camera-grid/grid-canvas-seed.d.ts +96 -46
- package/dist/builtins/camera-grid/grid-canvas.d.ts +74 -74
- package/dist/builtins/camera-grid/grid-child.d.ts +29 -16
- package/dist/builtins/camera-grid/grid-compositor-child.d.ts +2 -2
- package/dist/builtins/camera-grid/grid-compositor-invocation.d.ts +39 -11
- package/dist/builtins/camera-grid/grid-compositor.d.ts +50 -50
- package/dist/builtins/camera-grid/grid-detection-mapping.d.ts +52 -22
- package/dist/builtins/camera-grid/grid-device-settings.d.ts +31 -7
- package/dist/builtins/camera-grid/grid-filter-graph.d.ts +41 -41
- package/dist/builtins/camera-grid/grid-frame-sample.d.ts +45 -19
- package/dist/builtins/camera-grid/grid-instances.d.ts +20 -50
- package/dist/builtins/camera-grid/grid-last-frame-store.d.ts +51 -51
- package/dist/builtins/camera-grid/grid-layout-native-provider.d.ts +30 -4
- package/dist/builtins/camera-grid/grid-plan.d.ts +30 -20
- package/dist/builtins/camera-grid/grid-profiles.d.ts +85 -45
- package/dist/builtins/camera-grid/grid-row-normalization.d.ts +6 -6
- package/dist/builtins/camera-grid/grid-sentry-sources.d.ts +57 -57
- package/dist/builtins/camera-grid/grid-snapshot.d.ts +41 -41
- package/dist/builtins/camera-grid/grid-stream-descriptor.d.ts +49 -21
- package/dist/builtins/camera-grid/grid-stream-invocation.d.ts +37 -22
- package/dist/builtins/camera-grid/grid-stream-relay.d.ts +26 -26
- package/dist/builtins/camera-grid/grid-stream-session.d.ts +123 -93
- package/dist/builtins/camera-grid/grid-tile-feed.d.ts +47 -47
- package/dist/builtins/camera-grid/grid-tile-plan.d.ts +55 -20
- package/dist/builtins/camera-grid/grid-wire-format.d.ts +22 -6
- package/dist/builtins/camera-grid/index.d.ts +44 -44
- package/dist/builtins/camera-grid/silence-analysis.d.ts +31 -14
- package/dist/builtins/composer/claim-gate.d.ts +54 -27
- package/dist/builtins/composer/composed-device-set.d.ts +40 -26
- package/dist/builtins/composer/composed-device.d.ts +39 -17
- package/dist/builtins/composer/composer-apply-waits.d.ts +20 -13
- package/dist/builtins/composer/composer-grafts.d.ts +57 -38
- package/dist/builtins/composer/composer-live-set.d.ts +15 -15
- package/dist/builtins/composer/composer-plan.d.ts +76 -60
- package/dist/builtins/composer/composer-runtime-factory.d.ts +21 -14
- package/dist/builtins/composer/composer-seeds.d.ts +20 -14
- package/dist/builtins/composer/composer-verdict.d.ts +28 -14
- package/dist/builtins/composer/composer.addon.d.ts +23 -9
- package/dist/builtins/composer/composer.d.ts +145 -100
- package/dist/builtins/composer/composition-declarations.d.ts +50 -39
- package/dist/builtins/composer/composition-evaluation.d.ts +38 -22
- package/dist/builtins/composer/composition-runtime.d.ts +178 -125
- package/dist/builtins/composer/composition-target.d.ts +38 -34
- package/dist/builtins/composer/confirmed-seed.d.ts +35 -23
- package/dist/builtins/composer/deadline-timer.d.ts +13 -13
- package/dist/builtins/composer/existing-target.d.ts +90 -73
- package/dist/builtins/composer/field-record.d.ts +26 -19
- package/dist/builtins/composer/graft-host.d.ts +56 -32
- package/dist/builtins/composer/held-claims.d.ts +26 -9
- package/dist/builtins/composer/index.d.ts +1 -1
- package/dist/builtins/composer/own-field-reads.d.ts +26 -15
- package/dist/builtins/composer/owned-fields-target.d.ts +75 -44
- package/dist/builtins/composer/slice-assembler.d.ts +19 -3
- package/dist/builtins/composer/source-readings.d.ts +67 -61
- package/dist/builtins/composer/source-tracker.d.ts +133 -69
- package/dist/builtins/console-logging/console-destination.d.ts +15 -8
- package/dist/builtins/console-logging/console-logging.addon.d.ts +20 -19
- package/dist/builtins/console-logging/index.d.ts +3 -3
- package/dist/builtins/core-blocks/block-package.d.ts +37 -37
- package/dist/builtins/core-blocks/block-settings-store.d.ts +34 -21
- package/dist/builtins/core-blocks/block-supervisor.d.ts +138 -117
- package/dist/builtins/core-blocks/block-type-defs.d.ts +21 -21
- package/dist/builtins/core-blocks/blocks-integration.d.ts +76 -49
- package/dist/builtins/core-blocks/compile-block.d.ts +37 -37
- package/dist/builtins/core-blocks/composition-api.d.ts +38 -24
- package/dist/builtins/core-blocks/composition-peers.d.ts +26 -4
- package/dist/builtins/core-blocks/composition-sources.d.ts +25 -10
- package/dist/builtins/core-blocks/core-block-store.d.ts +109 -109
- package/dist/builtins/core-blocks/core-blocks.addon.d.ts +72 -72
- package/dist/builtins/core-blocks/extract-settings-schema.d.ts +4 -4
- package/dist/builtins/core-blocks/index.d.ts +8 -8
- package/dist/builtins/device-manager/adoption-job-engine.d.ts +141 -98
- package/dist/builtins/device-manager/claimed-status-overlay.d.ts +42 -9
- package/dist/builtins/device-manager/contribution-cache.d.ts +56 -56
- package/dist/builtins/device-manager/day-night-config-schema.d.ts +26 -12
- package/dist/builtins/device-manager/device-aggregation-merge.d.ts +17 -17
- package/dist/builtins/device-manager/device-aggregation.d.ts +277 -254
- package/dist/builtins/device-manager/device-bindings-store.d.ts +232 -220
- package/dist/builtins/device-manager/device-config-contribution.d.ts +29 -29
- package/dist/builtins/device-manager/device-config-secrets.d.ts +32 -13
- package/dist/builtins/device-manager/device-event-propagator.d.ts +22 -22
- package/dist/builtins/device-manager/device-extension-linked-slot.d.ts +17 -17
- package/dist/builtins/device-manager/device-form-secrets.d.ts +14 -14
- package/dist/builtins/device-manager/device-linked-devices.d.ts +159 -98
- package/dist/builtins/device-manager/device-manager.addon.d.ts +223 -197
- package/dist/builtins/device-manager/device-meta-actions.d.ts +306 -305
- package/dist/builtins/device-manager/device-meta-store.d.ts +100 -90
- package/dist/builtins/device-manager/device-meta-types.d.ts +250 -241
- package/dist/builtins/device-manager/device-online-fallback.d.ts +30 -30
- package/dist/builtins/device-manager/device-projection.d.ts +53 -67
- package/dist/builtins/device-manager/device-provider-context.d.ts +109 -94
- package/dist/builtins/device-manager/device-queries.d.ts +63 -63
- package/dist/builtins/device-manager/device-row-store.d.ts +417 -365
- package/dist/builtins/device-manager/device-source-activation.d.ts +91 -49
- package/dist/builtins/device-manager/device-state-claim-views.d.ts +76 -61
- package/dist/builtins/device-manager/device-state-claims.d.ts +53 -30
- package/dist/builtins/device-manager/device-state-mirror.d.ts +256 -264
- package/dist/builtins/device-manager/device-sync-resolvers.d.ts +25 -25
- package/dist/builtins/device-manager/field-claims-index.d.ts +85 -58
- package/dist/builtins/device-manager/field-ownership.d.ts +54 -36
- package/dist/builtins/device-manager/fleet-read-census.d.ts +99 -61
- package/dist/builtins/device-manager/image-settings-config-schema.d.ts +18 -8
- package/dist/builtins/device-manager/index.d.ts +2 -2
- package/dist/builtins/device-manager/linked-devices-manual-backfill.d.ts +20 -9
- package/dist/builtins/device-manager/location-alignment.d.ts +46 -46
- package/dist/builtins/device-manager/migrate-device.d.ts +178 -101
- package/dist/builtins/device-manager/migrate-guard.d.ts +66 -34
- package/dist/builtins/device-manager/migrate-hardware-state.d.ts +59 -59
- package/dist/builtins/device-manager/migrate-reload.d.ts +42 -4
- package/dist/builtins/device-manager/migration-refused.d.ts +20 -20
- package/dist/builtins/device-manager/mirror-row-writer.d.ts +205 -179
- package/dist/builtins/device-manager/recording-onboard-config-schema.d.ts +56 -32
- package/dist/builtins/device-manager/removal-fence.d.ts +48 -48
- package/dist/builtins/device-manager/runtime-state-persist-gate.d.ts +54 -26
- package/dist/builtins/device-manager/secret-config-paths.d.ts +17 -17
- package/dist/builtins/device-manager/stale-wrapper-activations.d.ts +52 -25
- package/dist/builtins/device-manager/write-lock.d.ts +13 -13
- package/dist/builtins/hub-forwarder/hub-forwarder-destination.d.ts +41 -41
- package/dist/builtins/hub-forwarder/hub-forwarder.addon.d.ts +13 -12
- package/dist/builtins/hub-forwarder/index.d.ts +3 -3
- package/dist/builtins/keychain/index.d.ts +1 -1
- package/dist/builtins/keychain/key-sources.d.ts +19 -19
- package/dist/builtins/keychain/keychain-crypto.d.ts +4 -4
- package/dist/builtins/keychain/keychain-reset-trigger.d.ts +13 -13
- package/dist/builtins/keychain/keychain-service.d.ts +128 -128
- package/dist/builtins/keychain/keychain-store.d.ts +96 -87
- package/dist/builtins/keychain/keychain-usage.d.ts +13 -2
- package/dist/builtins/keychain/keychain.addon.d.ts +31 -6
- package/dist/builtins/keychain/platform-key-source.d.ts +15 -15
- package/dist/builtins/keychain/system-held-secrets.d.ts +17 -4
- package/dist/builtins/liveness-monitor/index.d.ts +2 -2
- package/dist/builtins/liveness-monitor/liveness-checks.d.ts +73 -52
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.d.ts +57 -36
- package/dist/builtins/local-auth/admin-account-boot.d.ts +14 -14
- package/dist/builtins/local-auth/auth-config-reader.d.ts +34 -17
- package/dist/builtins/local-auth/auth-schema.d.ts +92 -69
- package/dist/builtins/local-auth/index.d.ts +1 -1
- package/dist/builtins/local-auth/jwt-signing-key-keeper.d.ts +22 -22
- package/dist/builtins/local-auth/local-auth.addon.d.ts +41 -40
- package/dist/builtins/local-auth/oauth-grants.d.ts +57 -57
- package/dist/builtins/local-auth/oauth-session-manager.d.ts +62 -62
- package/dist/builtins/local-network/address-book.d.ts +61 -36
- package/dist/builtins/local-network/index.d.ts +2 -2
- package/dist/builtins/local-network/ipv6-lan.d.ts +12 -17
- package/dist/builtins/local-network/local-hostname.d.ts +10 -10
- package/dist/builtins/local-network/local-network.addon.d.ts +259 -258
- package/dist/builtins/loki-logging/index.d.ts +4 -4
- package/dist/builtins/loki-logging/loki-destination.d.ts +113 -87
- package/dist/builtins/loki-logging/loki-logging.addon.d.ts +61 -42
- package/dist/builtins/loki-logging/loki-payload.d.ts +82 -39
- package/dist/builtins/loki-logging/retire-enabled-flag.d.ts +37 -12
- package/dist/builtins/native-metrics/cgroup-memory.d.ts +206 -159
- package/dist/builtins/native-metrics/cgroup-pids.d.ts +138 -91
- package/dist/builtins/native-metrics/container-memory-series.d.ts +212 -178
- package/dist/builtins/native-metrics/gpu-probe.d.ts +9 -9
- package/dist/builtins/native-metrics/index.d.ts +2 -2
- package/dist/builtins/native-metrics/load-series-config.d.ts +29 -57
- package/dist/builtins/native-metrics/load-series-reader.d.ts +52 -26
- package/dist/builtins/native-metrics/load-series-store.d.ts +237 -176
- package/dist/builtins/native-metrics/native-metrics-provider.d.ts +43 -43
- package/dist/builtins/native-metrics/native-metrics.addon.d.ts +230 -230
- package/dist/builtins/native-metrics/node-load-ring.d.ts +196 -196
- package/dist/builtins/native-metrics/proc-process-table.d.ts +12 -12
- package/dist/builtins/native-metrics/process-classification.d.ts +95 -36
- package/dist/builtins/native-metrics/thread-cpu-sampler.d.ts +95 -95
- package/dist/builtins/platform-probe/coral-accelerators.d.ts +17 -17
- package/dist/builtins/platform-probe/index.d.ts +38 -30
- package/dist/builtins/platform-probe/inference-config-resolver.d.ts +27 -27
- package/dist/builtins/platform-probe/intel-accelerators.d.ts +8 -8
- package/dist/builtins/platform-probe/intel-npu.d.ts +30 -30
- package/dist/builtins/platform-probe/platform-scorer.d.ts +35 -35
- package/dist/builtins/platform-probe/runtime-packages.d.ts +3 -3
- package/dist/builtins/remote-access-orchestrator/enabled-providers-reconcile.d.ts +87 -87
- package/dist/builtins/remote-access-orchestrator/index.d.ts +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.d.ts +66 -35
- package/dist/builtins/shared/device-state-changed.d.ts +9 -9
- package/dist/builtins/shared/settle-sources.d.ts +16 -16
- package/dist/builtins/snapshot/index.d.ts +2 -2
- package/dist/builtins/snapshot/snapshot-cache.d.ts +92 -92
- package/dist/builtins/snapshot/snapshot-coalescing.d.ts +108 -108
- package/dist/builtins/snapshot/snapshot-courtesy.d.ts +48 -48
- package/dist/builtins/snapshot/snapshot-durable-store.d.ts +32 -32
- package/dist/builtins/snapshot/snapshot-fatigue.d.ts +34 -34
- package/dist/builtins/snapshot/snapshot-grab-pick.d.ts +14 -14
- package/dist/builtins/snapshot/snapshot-link-url.d.ts +49 -49
- package/dist/builtins/snapshot/snapshot-media-handler.d.ts +97 -97
- package/dist/builtins/snapshot/snapshot-resize.d.ts +64 -103
- package/dist/builtins/snapshot/snapshot.addon.d.ts +569 -568
- package/dist/builtins/sqlite-storage/analyze-stats.d.ts +73 -29
- package/dist/builtins/sqlite-storage/config-store.d.ts +6 -6
- package/dist/builtins/sqlite-storage/device-store.d.ts +16 -16
- package/dist/builtins/sqlite-storage/filesystem-browse-provider.d.ts +23 -23
- package/dist/builtins/sqlite-storage/filesystem-storage-provider.d.ts +79 -79
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.d.ts +27 -26
- package/dist/builtins/sqlite-storage/filter-compiler.d.ts +107 -107
- package/dist/builtins/sqlite-storage/index.d.ts +12 -12
- package/dist/builtins/sqlite-storage/integration-registry.d.ts +37 -37
- package/dist/builtins/sqlite-storage/path-guard.d.ts +5 -5
- package/dist/builtins/sqlite-storage/prefix-range.d.ts +44 -44
- package/dist/builtins/sqlite-storage/query-bounds.d.ts +100 -106
- package/dist/builtins/sqlite-storage/query-profiler.d.ts +217 -217
- package/dist/builtins/sqlite-storage/retired-collections.d.ts +124 -55
- package/dist/builtins/sqlite-storage/retired-settings-keys.d.ts +239 -189
- package/dist/builtins/sqlite-storage/shm-lock-canary.d.ts +41 -41
- package/dist/builtins/sqlite-storage/sqlite-pragmas.d.ts +162 -162
- package/dist/builtins/sqlite-storage/sqlite-settings-backend.d.ts +458 -458
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.d.ts +59 -58
- package/dist/builtins/sqlite-storage/sqlite-snapshot-protocol.d.ts +37 -32
- package/dist/builtins/sqlite-storage/sqlite-snapshot-worker.d.ts +19 -19
- package/dist/builtins/sqlite-storage/sqlite-snapshotter.d.ts +76 -76
- package/dist/builtins/sqlite-storage/statement-shape.d.ts +54 -54
- package/dist/builtins/sqlite-storage/table-sizes.d.ts +71 -71
- package/dist/builtins/sqlite-storage/vector-index-shared.d.ts +63 -54
- package/dist/builtins/sqlite-storage/vector-index-vec.d.ts +133 -96
- package/dist/builtins/sqlite-storage/wal-checkpoint-policy.d.ts +161 -161
- package/dist/builtins/sqlite-storage/wal-checkpointer.d.ts +60 -60
- package/dist/builtins/sqlite-storage/wal-maintenance.d.ts +94 -94
- package/dist/builtins/storage-orchestrator/access-guards.d.ts +37 -26
- package/dist/builtins/storage-orchestrator/data-store-dispatch.d.ts +33 -18
- package/dist/builtins/storage-orchestrator/drain-ratchet.d.ts +85 -85
- package/dist/builtins/storage-orchestrator/drain-state-store.d.ts +20 -10
- package/dist/builtins/storage-orchestrator/hub-settings-forward.d.ts +113 -53
- package/dist/builtins/storage-orchestrator/index.d.ts +7 -7
- package/dist/builtins/storage-orchestrator/location-occupancy-slice.d.ts +64 -40
- package/dist/builtins/storage-orchestrator/location-occupancy.d.ts +14 -14
- package/dist/builtins/storage-orchestrator/location-protection.d.ts +13 -13
- package/dist/builtins/storage-orchestrator/location-repoint-move.d.ts +44 -44
- package/dist/builtins/storage-orchestrator/location-root-collision.d.ts +61 -25
- package/dist/builtins/storage-orchestrator/location-secrets.d.ts +99 -58
- package/dist/builtins/storage-orchestrator/location-store.d.ts +56 -47
- package/dist/builtins/storage-orchestrator/location-volume-capacity.d.ts +37 -37
- package/dist/builtins/storage-orchestrator/provider-discovery.d.ts +20 -6
- package/dist/builtins/storage-orchestrator/storage-cleanup-coordinator.d.ts +51 -51
- package/dist/builtins/storage-orchestrator/storage-migration-coordinator.d.ts +224 -224
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.d.ts +292 -292
- package/dist/builtins/storage-orchestrator/storage-orchestrator.service.d.ts +431 -450
- package/dist/builtins/storage-orchestrator/storage-pressure-manager.d.ts +104 -104
- package/dist/builtins/system-backup/backup-encryption.d.ts +60 -23
- package/dist/builtins/system-backup/system-backup.service.d.ts +240 -240
- package/dist/builtins/system-config/cluster-secret-keeper.d.ts +54 -34
- package/dist/builtins/system-config/index.d.ts +2 -2
- package/dist/builtins/system-config/mesh-actions.d.ts +2 -30
- package/dist/builtins/system-config/system-config.addon.d.ts +57 -93
- package/dist/builtins/system-config/system-config.addon.js +46 -33
- package/dist/builtins/system-config/system-config.addon.mjs +46 -33
- package/dist/builtins/winston-logging/index.d.ts +3 -3
- package/dist/builtins/winston-logging/winston-destination.d.ts +15 -15
- package/dist/builtins/winston-logging/winston-logging.addon.d.ts +14 -13
- package/dist/{child-cap-dispatch-nURMuVTX.js → child-cap-dispatch-Bnr8brru.js} +18 -0
- package/dist/{child-cap-dispatch-B1gyE35b.mjs → child-cap-dispatch-mHO_6r0G.mjs} +1 -1
- package/dist/download/hosted-model-revisions.d.ts +8 -8
- package/dist/download/model-download-service.d.ts +32 -32
- package/dist/download/model-downloader.d.ts +88 -88
- package/dist/events/event-bus.d.ts +6 -6
- package/dist/events/system-event-bus.d.ts +11 -11
- package/dist/feature/feature-manager.d.ts +6 -6
- package/dist/http/asset-compression.d.ts +35 -73
- package/dist/http/authenticated-file-server.d.ts +32 -32
- package/dist/http/data-plane-registry.d.ts +49 -39
- package/dist/http/file-data-plane.d.ts +14 -14
- package/dist/http/lan-http-bind.d.ts +24 -13
- package/dist/http/reverse-proxy.d.ts +36 -24
- package/dist/index.d.ts +137 -137
- package/dist/index.js +4 -3
- package/dist/index.mjs +2 -4
- package/dist/kernel/addon-class-resolver.d.ts +1 -1
- package/dist/kernel/addon-engine-manager.d.ts +20 -20
- package/dist/kernel/addon-health-monitor.d.ts +151 -151
- package/dist/kernel/addon-installer.d.ts +609 -609
- package/dist/kernel/addon-loader.d.ts +133 -133
- package/dist/kernel/addon-manifest.d.ts +118 -118
- package/dist/kernel/addon-residue.d.ts +28 -32
- package/dist/kernel/array-buffer-census.d.ts +84 -88
- package/dist/kernel/bootstrap-config.d.ts +3 -3
- package/dist/kernel/cap-router-builder.d.ts +145 -101
- package/dist/kernel/capability-handle.d.ts +41 -41
- package/dist/kernel/capability-registry.d.ts +588 -576
- package/dist/kernel/config-manager.d.ts +199 -199
- package/dist/kernel/config-schema.d.ts +132 -128
- package/dist/kernel/custom-action-registry.d.ts +25 -25
- package/dist/kernel/deps/addon-deps-manager.d.ts +17 -17
- package/dist/kernel/deps/closure-dedupe.d.ts +76 -76
- package/dist/kernel/deps/ensure-addon-natives.d.ts +34 -34
- package/dist/kernel/deps/ensure-native-prebuilds.d.ts +25 -25
- package/dist/kernel/deps/manifest-native-deps.d.ts +38 -38
- package/dist/kernel/deps/manifest-python-deps.d.ts +18 -18
- package/dist/kernel/deps/manifest-system-deps.d.ts +13 -13
- package/dist/kernel/deps/npm-command.d.ts +45 -45
- package/dist/kernel/deps/system-package-allowlist.d.ts +9 -9
- package/dist/kernel/deps/system-package-broker.d.ts +20 -20
- package/dist/kernel/deps/system-package-client.d.ts +3 -3
- package/dist/kernel/device-registry.d.ts +27 -27
- package/dist/kernel/event-loop-stall-monitor.d.ts +33 -33
- package/dist/kernel/event-plane-report.d.ts +174 -174
- package/dist/kernel/fs-utils.d.ts +70 -70
- package/dist/kernel/gc-census.d.ts +119 -119
- package/dist/kernel/heap-spaces.d.ts +87 -87
- package/dist/kernel/heap-watch.d.ts +706 -706
- package/dist/kernel/host-externals.d.ts +8 -8
- package/dist/kernel/hwaccel/hwaccel-resolver.d.ts +27 -27
- package/dist/kernel/index.d.ts +115 -113
- package/dist/kernel/inference/inference-resolver.d.ts +13 -13
- package/dist/kernel/infra-capabilities.d.ts +7 -7
- package/dist/kernel/isolated-builtin-phase.d.ts +42 -42
- package/dist/kernel/lifecycle/job-journal.d.ts +17 -17
- package/dist/kernel/lifecycle/lifecycle-job-engine.d.ts +99 -99
- package/dist/kernel/lifecycle/staging-area.d.ts +22 -22
- package/dist/kernel/moleculer/addon-context-factory.d.ts +90 -89
- package/dist/kernel/moleculer/addon-data-plane-facility.d.ts +12 -12
- package/dist/kernel/moleculer/addon-deploy-source.d.ts +11 -11
- package/dist/kernel/moleculer/addon-peer-bytes-facility.d.ts +18 -18
- package/dist/kernel/moleculer/addon-service-factory.d.ts +41 -41
- package/dist/kernel/moleculer/agent-mesh-authenticator.d.ts +60 -33
- package/dist/kernel/moleculer/agent-ui-unlock.d.ts +30 -30
- package/dist/kernel/moleculer/broker-factory.d.ts +61 -61
- package/dist/kernel/moleculer/cap-usage-registry.d.ts +108 -153
- package/dist/kernel/moleculer/capabilities-access.d.ts +19 -19
- package/dist/kernel/moleculer/child-addon-call-dispatch.d.ts +43 -43
- package/dist/kernel/moleculer/child-cap-descriptors.d.ts +26 -26
- package/dist/kernel/moleculer/child-cap-dispatch.d.ts +52 -52
- package/dist/kernel/moleculer/children-batch-loader.d.ts +86 -34
- package/dist/kernel/moleculer/cluster-secret.d.ts +19 -19
- package/dist/kernel/moleculer/core-cap-service.d.ts +53 -53
- package/dist/kernel/moleculer/crash-supervisor.d.ts +39 -39
- package/dist/kernel/moleculer/device-cap-proxy.d.ts +51 -51
- package/dist/kernel/moleculer/device-event-ring.d.ts +117 -75
- package/dist/kernel/moleculer/event-bus-core.d.ts +171 -159
- package/dist/kernel/moleculer/event-bus.d.ts +73 -73
- package/dist/kernel/moleculer/hub-log-forwarder.d.ts +30 -30
- package/dist/kernel/moleculer/hub-service.d.ts +42 -42
- package/dist/kernel/moleculer/init-watchdog.d.ts +49 -49
- package/dist/kernel/moleculer/mesh-access-middleware.d.ts +36 -21
- package/dist/kernel/moleculer/mesh-auth-mode.d.ts +33 -39
- package/dist/kernel/moleculer/mesh-authenticator.d.ts +58 -58
- package/dist/kernel/moleculer/mesh-auto-enforce.d.ts +38 -18
- package/dist/kernel/moleculer/mesh-join-client.d.ts +67 -45
- package/dist/kernel/moleculer/mesh-join-proof.d.ts +8 -8
- package/dist/kernel/moleculer/mesh-mtls/constants.d.ts +1 -1
- package/dist/kernel/moleculer/mesh-mtls/index.d.ts +10 -10
- package/dist/kernel/moleculer/mesh-mtls/mesh-ca-keeper.d.ts +43 -38
- package/dist/kernel/moleculer/mesh-mtls/mesh-ca.d.ts +29 -20
- package/dist/kernel/moleculer/mesh-mtls/mesh-clear-port.d.ts +32 -32
- package/dist/kernel/moleculer/mesh-mtls/mesh-crl.d.ts +11 -11
- package/dist/kernel/moleculer/mesh-mtls/mesh-enroll.d.ts +19 -16
- package/dist/kernel/moleculer/mesh-mtls/mesh-join-token.d.ts +40 -40
- package/dist/kernel/moleculer/mesh-mtls/mesh-tls-enabler.d.ts +5 -1
- package/dist/kernel/moleculer/mesh-mtls/tls-tcp-transporter.d.ts +131 -130
- package/dist/kernel/moleculer/mesh-queue-report.d.ts +39 -39
- package/dist/kernel/moleculer/node-registry.d.ts +120 -120
- package/dist/kernel/moleculer/process-context.d.ts +2 -2
- package/dist/kernel/moleculer/process-service.d.ts +168 -168
- package/dist/kernel/moleculer/provider-registry.d.ts +9 -9
- package/dist/kernel/moleculer/readiness-context.d.ts +58 -58
- package/dist/kernel/moleculer/readiness-service.d.ts +31 -16
- package/dist/kernel/moleculer/register-framework-resolver.d.ts +6 -6
- package/dist/kernel/moleculer/register-node-client.d.ts +34 -27
- package/dist/kernel/moleculer/remote-logger.d.ts +29 -29
- package/dist/kernel/moleculer/resilient-cap-call.d.ts +21 -21
- package/dist/kernel/moleculer/runner-native-allocator.d.ts +95 -95
- package/dist/kernel/moleculer/runner-process-group.d.ts +57 -57
- package/dist/kernel/moleculer/runtime-state-load.d.ts +21 -11
- package/dist/kernel/moleculer/settings-read-guard.d.ts +39 -39
- package/dist/kernel/moleculer/stream-probe-service.d.ts +25 -6
- package/dist/kernel/moleculer/trpc-links.d.ts +203 -203
- package/dist/kernel/moleculer/typed-array-serde.d.ts +9 -20
- package/dist/kernel/moleculer/worker-device-restore.d.ts +8 -8
- package/dist/kernel/outbound-queue-watch.d.ts +74 -74
- package/dist/kernel/process-cpu-census.d.ts +55 -55
- package/dist/kernel/provider-kind-drift.d.ts +17 -8
- package/dist/kernel/restart-coordinator.d.ts +71 -71
- package/dist/kernel/settings-door-view.d.ts +36 -25
- package/dist/kernel/settings-read-error.d.ts +29 -31
- package/dist/kernel/settings-view-types.d.ts +100 -95
- package/dist/kernel/socket-plane-report.d.ts +214 -153
- package/dist/kernel/status-overlay.d.ts +31 -11
- package/dist/kernel/storage-location-registry.d.ts +50 -50
- package/dist/kernel/store-settings-view.d.ts +13 -13
- package/dist/kernel/system-settings-mirror.d.ts +40 -28
- package/dist/kernel/system-settings-policy.d.ts +15 -34
- package/dist/kernel/transport/cap-action-census.d.ts +183 -183
- package/dist/kernel/transport/cap-action-name.d.ts +84 -84
- package/dist/kernel/transport/cap-child-index.d.ts +41 -41
- package/dist/kernel/transport/cap-route-resolver.d.ts +237 -212
- package/dist/kernel/transport/cap-route.d.ts +139 -139
- package/dist/kernel/transport/cap-routing-hints.d.ts +37 -37
- package/dist/kernel/transport/child-cap-protocol.d.ts +245 -245
- package/dist/kernel/transport/claimed-get-status.d.ts +30 -6
- package/dist/kernel/transport/create-local-transport.d.ts +5 -5
- package/dist/kernel/transport/frame-codec.d.ts +109 -109
- package/dist/kernel/transport/hub-cap-forward.d.ts +81 -59
- package/dist/kernel/transport/index.d.ts +36 -36
- package/dist/kernel/transport/local-child-client.d.ts +184 -184
- package/dist/kernel/transport/local-child-registry.d.ts +592 -592
- package/dist/kernel/transport/local-endpoint-path.d.ts +4 -4
- package/dist/kernel/transport/local-transport.d.ts +92 -92
- package/dist/kernel/transport/parent-unowned-call.d.ts +266 -237
- package/dist/kernel/transport/peer-answered-error.d.ts +14 -14
- package/dist/kernel/transport/socket-channel.d.ts +110 -110
- package/dist/kernel/transport/socket-traffic.d.ts +96 -96
- package/dist/kernel/transport/uds-event-bridge.d.ts +77 -50
- package/dist/kernel/transport/uds-event-bus.d.ts +75 -26
- package/dist/kernel/transport/uds-local-transport.d.ts +14 -14
- package/dist/kernel/transport/uds-log-ingest.d.ts +38 -23
- package/dist/kernel/transport/uds-logger.d.ts +33 -33
- package/dist/kernel/utils/ring-buffer.d.ts +12 -12
- package/dist/kernel/workspace-detect.d.ts +7 -7
- package/dist/lifecycle/lifecycle-state-machine.d.ts +24 -24
- package/dist/logging/formatter.d.ts +52 -25
- package/dist/logging/log-manager.d.ts +133 -133
- package/dist/logging/log-redactor.d.ts +22 -1
- package/dist/logging/log-ring-buffer.d.ts +57 -57
- package/dist/logging/logging-gate.d.ts +69 -25
- package/dist/logging/logging-gate.singleton.d.ts +12 -1
- package/dist/logging/partitioned-log-buffer.d.ts +161 -161
- package/dist/logging/scoped-logger.d.ts +14 -14
- package/dist/network/network-quality.d.ts +8 -8
- package/dist/notification/notification-service.d.ts +37 -37
- package/dist/notification/toast-service.d.ts +18 -18
- package/dist/pipeline/engine-manager-resolver.d.ts +12 -12
- package/dist/pipeline/pipeline-runner.d.ts +6 -6
- package/dist/pipeline/pipeline-validator.d.ts +8 -8
- package/dist/process/proc-stat.d.ts +51 -51
- package/dist/process/resource-monitor.d.ts +19 -19
- package/dist/python/python-env-manager.d.ts +10 -10
- package/dist/repl/interfaces.d.ts +21 -21
- package/dist/repl/repl-engine.d.ts +6 -6
- package/dist/storage/fs-storage-backend.d.ts +35 -35
- package/dist/storage/storage-location-manager.d.ts +21 -21
- package/dist/storage/storage-manager.d.ts +68 -68
- package/dist/tls/boot-tls.d.ts +24 -24
- package/dist/tls/cert-evaluation.d.ts +25 -25
- package/dist/tls/cert-identity.d.ts +39 -39
- package/dist/tls/cert-issue.d.ts +37 -17
- package/dist/tls/cert-manager.d.ts +86 -84
- package/dist/tls/https-listener.d.ts +16 -16
- package/dist/tls/index.d.ts +8 -8
- package/dist/tls/tls-actions.d.ts +18 -18
- package/dist/tls/tls-status.d.ts +15 -15
- package/dist/tls/uploaded-cert.d.ts +9 -9
- package/package.json +9 -3
|
@@ -1,193 +1,240 @@
|
|
|
1
|
-
import { ContainerMemorySnapshot, IScopedLogger } from '@camstack/types';
|
|
2
1
|
/**
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
* The container's own memory, read from the cgroup — the number no sum of
|
|
3
|
+
* per-process RSS can ever produce.
|
|
4
|
+
*
|
|
5
|
+
* ## Why this file exists
|
|
6
|
+
*
|
|
7
|
+
* Every memory number camstack had before it was PER PROCESS: the `[mem]`
|
|
8
|
+
* heartbeat per runner (`packages/system/src/kernel/heap-watch.ts`) and the
|
|
9
|
+
* `ps`-derived `memoryRssBytes` on each `NodeProcess`. On 2026-08-29 the hub's
|
|
10
|
+
* 39 processes summed to 15.81 GiB while the container reported 23.14 GiB, and
|
|
11
|
+
* the missing ~7 GiB was read for a leak. It was not one. `memory.stat` settled
|
|
12
|
+
* it in a single command:
|
|
13
|
+
*
|
|
14
|
+
* ```
|
|
15
|
+
* anon 19946409984 file 3642105856 shmem 1860067328 slab 95465928
|
|
16
|
+
* memory.current 24045301760 memory.max 34359738368
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* **The sum of per-process RSS can never equal the container total.** Page
|
|
20
|
+
* cache (`file`), shared memory (`shmem`, which is where the i915 driver parks
|
|
21
|
+
* GPU buffers) and kernel slab belong to the cgroup, not to any process in the
|
|
22
|
+
* way `ps` counts. On this hub they are ~6 GiB of 23. Read once by hand they
|
|
23
|
+
* say nothing about direction; that is what this file is for.
|
|
24
|
+
*
|
|
25
|
+
* ## What it is NOT
|
|
26
|
+
*
|
|
27
|
+
* Measurement only. Nothing here reclaims, trims, drops caches or tunes an
|
|
28
|
+
* allocator. The operator's standing position is that memory ceilings and
|
|
29
|
+
* `malloc` variables are patches over deeper problems
|
|
30
|
+
* (`docs/design/plans/2026-08-29-remove-the-memory-ceilings.md`); this exists
|
|
31
|
+
* to make the deeper problem visible, never to paper over it.
|
|
32
|
+
*
|
|
33
|
+
* ## Absent is ABSENT
|
|
34
|
+
*
|
|
35
|
+
* Every unavailable number is `null`, never `0`. A node with no cgroup (a
|
|
36
|
+
* developer Mac, a bare-metal host, a container with the hierarchy hidden)
|
|
37
|
+
* produces `null` from {@link ContainerMemoryProbe.sample} and contributes no
|
|
38
|
+
* point at all — because a zero here is indistinguishable from a healthy
|
|
39
|
+
* container that happens to use no memory, which is the exact class of lie
|
|
40
|
+
* this repo has been bitten by.
|
|
41
|
+
*
|
|
42
|
+
* ## The reads are pure, the I/O is injected
|
|
43
|
+
*
|
|
44
|
+
* Every parse below is a pure function over text, so the shapes are testable
|
|
45
|
+
* against real `memory.stat` fixtures without a Linux kernel. The only impure
|
|
46
|
+
* surface is {@link CgroupFileReader}, one method wide.
|
|
47
|
+
*/
|
|
48
|
+
import type { ContainerMemorySnapshot, IScopedLogger } from "@camstack/types";
|
|
49
|
+
/**
|
|
50
|
+
* Which hierarchy answered. Reported so a reading is never ambiguous.
|
|
51
|
+
*
|
|
52
|
+
* Narrowed from {@link ContainerMemorySnapshot}'s own field rather than
|
|
53
|
+
* re-declared: the shape is the capability's Zod schema and this file must not
|
|
54
|
+
* own a second copy of it.
|
|
55
|
+
*/
|
|
56
|
+
export type CgroupMemorySource = ContainerMemorySnapshot["source"];
|
|
10
57
|
/** The one impure surface. Returns `null` for anything unreadable. */
|
|
11
58
|
export interface CgroupFileReader {
|
|
12
|
-
|
|
59
|
+
read(path: string): string | null;
|
|
13
60
|
}
|
|
14
61
|
/** `readFileSync`, with every failure flattened to `null`. */
|
|
15
62
|
export declare const nodeCgroupFileReader: CgroupFileReader;
|
|
16
63
|
/** Where the v2 unified hierarchy is mounted, and where v1 hangs its controllers. */
|
|
17
64
|
export declare const CGROUP_MOUNT_ROOT = "/sys/fs/cgroup";
|
|
18
65
|
/**
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
66
|
+
* The i915 GEM accounting file.
|
|
67
|
+
*
|
|
68
|
+
* **debugfs, and it is not mounted in our containers.** Verified on the live
|
|
69
|
+
* hub on 2026-08-29: readable on the Unraid host (`6014 shrinkable [0 free]
|
|
70
|
+
* objects, 1194934272 bytes`), `ENOENT` inside the `CamStack` container where
|
|
71
|
+
* `native-metrics` actually runs. It is probed ONCE per process and latched —
|
|
72
|
+
* a bind mount cannot appear under a running container — so an absent file
|
|
73
|
+
* costs one failed `open` for the life of the runner and one log line, never a
|
|
74
|
+
* failure per tick.
|
|
75
|
+
*
|
|
76
|
+
* Making it populate is a one-line change on the container, not here:
|
|
77
|
+
* mounting `/sys/kernel/debug` read-only into `CamStack` fills this field on
|
|
78
|
+
* the next sample with no code change.
|
|
79
|
+
*/
|
|
33
80
|
export declare const I915_GEM_OBJECTS_PATH = "/sys/kernel/debug/dri/0/i915_gem_objects";
|
|
34
81
|
/** Where the numbers for one hierarchy live, once resolved. */
|
|
35
82
|
export interface CgroupMemoryLayout {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
83
|
+
readonly source: CgroupMemorySource;
|
|
84
|
+
/** Directory the three files below sit in. Kept for the resolution log line. */
|
|
85
|
+
readonly directory: string;
|
|
86
|
+
readonly currentPath: string;
|
|
87
|
+
readonly limitPath: string;
|
|
88
|
+
readonly statPath: string;
|
|
42
89
|
}
|
|
43
90
|
/** What `/proc/self/cgroup` says about this process. */
|
|
44
91
|
export interface CgroupSelfEntry {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
92
|
+
readonly version: "v2" | "v1";
|
|
93
|
+
/** Path RELATIVE to the hierarchy root, always leading-slashed. */
|
|
94
|
+
readonly path: string;
|
|
48
95
|
}
|
|
49
96
|
/**
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
97
|
+
* Parse `/proc/self/cgroup`.
|
|
98
|
+
*
|
|
99
|
+
* Two formats, and the file may contain both on a hybrid host:
|
|
100
|
+
*
|
|
101
|
+
* ```
|
|
102
|
+
* 0::/ ← v2 unified
|
|
103
|
+
* 5:memory:/docker/9f3c… ← v1, memory controller
|
|
104
|
+
* 4:cpu,cpuacct:/docker/9f3c… ← v1, other controllers
|
|
105
|
+
* ```
|
|
106
|
+
*
|
|
107
|
+
* v2 wins when present: on a hybrid host the unified hierarchy is the one
|
|
108
|
+
* carrying `memory.current`, and every camstack deployment is v2 (verified on
|
|
109
|
+
* the live hub, which reports the single line `0::/`).
|
|
110
|
+
*
|
|
111
|
+
* Returns `null` when the file names no memory hierarchy at all — which is
|
|
112
|
+
* also what a non-Linux host produces, because there is no file to read.
|
|
113
|
+
*/
|
|
67
114
|
export declare function parseCgroupSelf(text: string): CgroupSelfEntry | null;
|
|
68
115
|
/**
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
116
|
+
* Parse a `memory.stat` file — v1 or v2, both are `key value` per line.
|
|
117
|
+
*
|
|
118
|
+
* Unknown keys are KEPT rather than refused: a v2 `memory.stat` carries ~50
|
|
119
|
+
* fields and we read five of them, and a kernel that adds a sixth must not
|
|
120
|
+
* turn into a parse failure. A malformed line is skipped, not thrown on.
|
|
121
|
+
*/
|
|
75
122
|
export declare function parseCgroupStat(text: string): ReadonlyMap<string, number>;
|
|
76
123
|
/**
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
124
|
+
* Parse a single-scalar cgroup file (`memory.current`, `memory.max`, …).
|
|
125
|
+
*
|
|
126
|
+
* `max` — v2's word for "no limit" — and v1's `V1_UNLIMITED_SENTINEL` both
|
|
127
|
+
* become `null`, because a ceiling nothing can reach is not a ceiling and
|
|
128
|
+
* charting it as 8 exabytes would flatten every real series to zero.
|
|
129
|
+
*/
|
|
83
130
|
export declare function parseCgroupScalar(text: string): number | null;
|
|
84
131
|
/**
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
132
|
+
* Parse the first line of `i915_gem_objects`.
|
|
133
|
+
*
|
|
134
|
+
* ```
|
|
135
|
+
* 6014 shrinkable [0 free] objects, 1194934272 bytes
|
|
136
|
+
* ```
|
|
137
|
+
*
|
|
138
|
+
* Only the byte total is taken. The format has changed across kernel releases
|
|
139
|
+
* more than once, so a line that does not match reads `null` — an unrecognised
|
|
140
|
+
* format is UNKNOWN, never zero.
|
|
141
|
+
*/
|
|
95
142
|
export declare function parseI915GemObjects(text: string): number | null;
|
|
96
143
|
/**
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
144
|
+
* Find the cgroup from INSIDE this process — never a hard-coded path.
|
|
145
|
+
*
|
|
146
|
+
* The path the hub happens to have (`/sys/fs/cgroup/docker/<id>/memory.stat`
|
|
147
|
+
* as seen from the Unraid host) is an artefact of where you are standing. From
|
|
148
|
+
* inside the container the same cgroup is at the mount ROOT, because Docker
|
|
149
|
+
* gives the container its own cgroup namespace and `/proc/self/cgroup` reports
|
|
150
|
+
* `0::/`. Hard-coding either one breaks the other.
|
|
151
|
+
*
|
|
152
|
+
* So the resolution is: ask `/proc/self/cgroup` which hierarchy and which
|
|
153
|
+
* path, then take the FIRST candidate directory that actually publishes the
|
|
154
|
+
* usage file.
|
|
155
|
+
*
|
|
156
|
+
* - **v2** — `<mount><path>` then `<mount>`. The second candidate is the
|
|
157
|
+
* namespaced case and the one that answers on our hub; the first is the
|
|
158
|
+
* un-namespaced case (a host process, or `--cgroupns=host`).
|
|
159
|
+
* - **v1** — `<mount>/memory<path>` then `<mount>/memory`, same reasoning.
|
|
160
|
+
* - **neither** — `null`. macOS has no `/proc/self/cgroup` at all, so a
|
|
161
|
+
* developer Mac lands here and reports nothing, which is the truth.
|
|
162
|
+
*/
|
|
116
163
|
export declare function resolveCgroupMemoryLayout(fs: CgroupFileReader): CgroupMemoryLayout | null;
|
|
117
164
|
/**
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
165
|
+
* Turn one layout's three files into a snapshot.
|
|
166
|
+
*
|
|
167
|
+
* Pure over the text, so the whole mapping — including a v2 `memory.stat` full
|
|
168
|
+
* of fields we do not read — is testable against a real fixture.
|
|
169
|
+
*
|
|
170
|
+
* v1's `memory.stat` names the same quantities differently and publishes fewer
|
|
171
|
+
* of them: `rss` is the anonymous charge, `cache` is the page cache, and there
|
|
172
|
+
* is no slab accounting at all. Mapping them onto the same field names is what
|
|
173
|
+
* makes a v1 node and a v2 node comparable; reporting `slabBytes: null` on v1
|
|
174
|
+
* is what stops that comparison from lying.
|
|
175
|
+
*/
|
|
129
176
|
export declare function buildContainerMemorySnapshot(input: {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
177
|
+
readonly source: CgroupMemorySource;
|
|
178
|
+
readonly currentText: string;
|
|
179
|
+
readonly limitText: string | null;
|
|
180
|
+
readonly statText: string | null;
|
|
181
|
+
readonly gpuShmemBytes: number | null;
|
|
135
182
|
}): ContainerMemorySnapshot | null;
|
|
136
183
|
export interface ContainerMemoryProbeDeps {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
184
|
+
readonly logger: IScopedLogger;
|
|
185
|
+
readonly fs?: CgroupFileReader;
|
|
186
|
+
/** Set `false` to skip the debugfs probe entirely. Default `true`. */
|
|
187
|
+
readonly readGpu?: boolean;
|
|
141
188
|
}
|
|
142
189
|
/**
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
190
|
+
* The sampler. Resolves once, latches, and logs TRANSITIONS only.
|
|
191
|
+
*
|
|
192
|
+
* Three states are worth a line and none of them is worth one per tick:
|
|
193
|
+
*
|
|
194
|
+
* 1. **Resolution** — once, at the first sample. Either the layout that
|
|
195
|
+
* answered, or "no cgroup on this node", which is a fact about the node and
|
|
196
|
+
* not an error.
|
|
197
|
+
* 2. **GPU probe** — once, at the first sample. Absent debugfs is the normal
|
|
198
|
+
* case inside a container and is stated as such, then never retried: a bind
|
|
199
|
+
* mount cannot appear under a running container.
|
|
200
|
+
* 3. **Read failing / recovering** — a cgroup that resolved and then stopped
|
|
201
|
+
* answering is a real change and says so, once in each direction. A tick
|
|
202
|
+
* that fails while already failing is silent, because the first line
|
|
203
|
+
* already said it.
|
|
204
|
+
*
|
|
205
|
+
* The silence is bounded by design: at the 10 s snapshot cadence a per-tick
|
|
206
|
+
* warning would be 8 640 lines a day on a node that simply is not Linux.
|
|
207
|
+
*/
|
|
161
208
|
export declare class ContainerMemoryProbe {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
209
|
+
private readonly logger;
|
|
210
|
+
private readonly fs;
|
|
211
|
+
private readonly wantGpu;
|
|
212
|
+
private resolved;
|
|
213
|
+
private layout;
|
|
214
|
+
private gpuProbed;
|
|
215
|
+
private gpuReadable;
|
|
216
|
+
/** `null` until the first sample — so the FIRST outcome is a transition too. */
|
|
217
|
+
private lastReadOk;
|
|
218
|
+
constructor(deps: ContainerMemoryProbeDeps);
|
|
219
|
+
/** Did this node resolve a cgroup at all? Absent is a reportable fact. */
|
|
220
|
+
get available(): boolean;
|
|
221
|
+
/**
|
|
222
|
+
* One reading, or `null` when this node has no cgroup or the cgroup stopped
|
|
223
|
+
* answering. `null` is ABSENT — the caller contributes no point, and no
|
|
224
|
+
* point is what a chart must show, never a zero.
|
|
225
|
+
*/
|
|
226
|
+
sample(): ContainerMemorySnapshot | null;
|
|
227
|
+
/** Resolve on first use and never again — a cgroup does not move under a pid. */
|
|
228
|
+
private resolveOnce;
|
|
229
|
+
/**
|
|
230
|
+
* The GPU number, probed once.
|
|
231
|
+
*
|
|
232
|
+
* It is host-wide and lives in debugfs, so it is absent far more often than
|
|
233
|
+
* it is present — inside every camstack container today. One `open` decides
|
|
234
|
+
* it for the life of the process; after that an unreadable file costs
|
|
235
|
+
* nothing at all, not even a syscall.
|
|
236
|
+
*/
|
|
237
|
+
private readGpuShmem;
|
|
238
|
+
/** Log a read outcome only when it CHANGES. Never once per tick. */
|
|
239
|
+
private noteRead;
|
|
193
240
|
}
|
|
@@ -1,112 +1,159 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* The container's pid ceiling — the limit that stops work without an error
|
|
3
|
+
* anyone reads.
|
|
4
|
+
*
|
|
5
|
+
* ## Why this file exists
|
|
6
|
+
*
|
|
7
|
+
* A container cgroup counts **THREADS**, not processes. This hub runs with
|
|
8
|
+
* `pids.max` 2048 and was measured refusing 22 `clone()` calls in 45 minutes.
|
|
9
|
+
* A refused clone is not an exception that travels: an ffmpeg child that
|
|
10
|
+
* cannot start its decode threads runs degraded or dies, a worker pool comes
|
|
11
|
+
* up short, a spawn fails — and what the operator SEES is media that stopped.
|
|
12
|
+
* Nothing in the product read the counter, so the only trace of the ceiling
|
|
13
|
+
* was the damage it did.
|
|
14
|
+
*
|
|
15
|
+
* Live hub, 2026-09-18, verbatim:
|
|
16
|
+
*
|
|
17
|
+
* ```
|
|
18
|
+
* /sys/fs/cgroup/pids.current → 973
|
|
19
|
+
* /sys/fs/cgroup/pids.max → 2048
|
|
20
|
+
* /sys/fs/cgroup/pids.events → max 0
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* ## `pids.events` is the proof, `pids.current` is only the weather
|
|
24
|
+
*
|
|
25
|
+
* `pids.current` says how close we are. `pids.events`' `max` counter says how
|
|
26
|
+
* many times the kernel ALREADY said no — it is monotonic for the life of the
|
|
27
|
+
* cgroup, so a rise between two samples is a refusal that happened in that
|
|
28
|
+
* window, and nothing else can produce it. That is the difference between "it
|
|
29
|
+
* looks tight" and "we lost work", and only the second one is worth waking
|
|
30
|
+
* someone for.
|
|
31
|
+
*
|
|
32
|
+
* ## What it is NOT
|
|
33
|
+
*
|
|
34
|
+
* Measurement only. Nothing here raises a limit, kills a process or trims a
|
|
35
|
+
* pool. The ceiling is the operator's (`--pids-limit` on the container) and
|
|
36
|
+
* the thread counts are the subsystems' own; this file exists so that both are
|
|
37
|
+
* decided on a number instead of a hunch.
|
|
38
|
+
*
|
|
39
|
+
* ## Absent is ABSENT
|
|
40
|
+
*
|
|
41
|
+
* A node with no cgroup — a developer Mac, a bare-metal host — produces
|
|
42
|
+
* `null`, never zero, exactly as {@link ContainerMemoryProbe} does. `max` of
|
|
43
|
+
* `max` (no ceiling) is `null` too: a fraction of no ceiling is not 0 %.
|
|
44
|
+
*
|
|
45
|
+
* The parsing is pure and the I/O is the same injected {@link CgroupFileReader}
|
|
46
|
+
* the memory probe uses, so every shape here is testable against real files.
|
|
47
|
+
*/
|
|
48
|
+
import type { IScopedLogger } from "@camstack/types";
|
|
49
|
+
import type { CgroupFileReader } from "./cgroup-memory.js";
|
|
3
50
|
/** Which hierarchy answered — reported so a reading is never ambiguous. */
|
|
4
|
-
export type CgroupPidsSource =
|
|
51
|
+
export type CgroupPidsSource = "cgroup-v2" | "cgroup-v1";
|
|
5
52
|
/** One reading of the ceiling and our distance from it. */
|
|
6
53
|
export interface ContainerPidsSnapshot {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
54
|
+
readonly source: CgroupPidsSource;
|
|
55
|
+
/** Threads (not processes) charged to this cgroup right now. */
|
|
56
|
+
readonly current: number;
|
|
57
|
+
/** The ceiling, or `null` when there is none. */
|
|
58
|
+
readonly max: number | null;
|
|
59
|
+
/** `current / max`, or `null` without a ceiling. */
|
|
60
|
+
readonly usedFraction: number | null;
|
|
61
|
+
/** Lifetime count of REFUSED forks, or `null` when the kernel does not say. */
|
|
62
|
+
readonly refusals: number | null;
|
|
16
63
|
}
|
|
17
64
|
/** Where the files for one hierarchy live, once resolved. */
|
|
18
65
|
export interface CgroupPidsLayout {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
66
|
+
readonly source: CgroupPidsSource;
|
|
67
|
+
readonly directory: string;
|
|
68
|
+
readonly currentPath: string;
|
|
69
|
+
readonly maxPath: string;
|
|
70
|
+
readonly eventsPath: string;
|
|
24
71
|
}
|
|
25
72
|
/**
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
73
|
+
* `pids.max` is either a number or the word `max`.
|
|
74
|
+
*
|
|
75
|
+
* `max` means NO ceiling, and that is `null` — not `Infinity`, not a huge
|
|
76
|
+
* number. A ceiling nothing can reach is not a ceiling, and reporting one
|
|
77
|
+
* would make every utilisation fraction on an unlimited node read as 0 %.
|
|
78
|
+
*/
|
|
32
79
|
export declare function parsePidsMax(text: string): number | null;
|
|
33
80
|
/**
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
81
|
+
* `pids.events` is `key value` per line; we read exactly one key:
|
|
82
|
+
*
|
|
83
|
+
* ```
|
|
84
|
+
* max 22
|
|
85
|
+
* ```
|
|
86
|
+
*
|
|
87
|
+
* `max` is the number of times a fork was refused because the limit was hit.
|
|
88
|
+
* A kernel that publishes only `pids.events.local`, or a file we cannot make
|
|
89
|
+
* sense of, answers `null` — unknown, never zero, because zero here means "no
|
|
90
|
+
* refusals have ever happened" and that is a claim.
|
|
91
|
+
*/
|
|
45
92
|
export declare function parsePidsEvents(text: string): number | null;
|
|
46
93
|
/** Turn one layout's files into a snapshot. Pure over the text. */
|
|
47
94
|
export declare function buildContainerPidsSnapshot(input: {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
95
|
+
readonly source: CgroupPidsSource;
|
|
96
|
+
readonly currentText: string;
|
|
97
|
+
readonly maxText: string | null;
|
|
98
|
+
readonly eventsText: string | null;
|
|
52
99
|
}): ContainerPidsSnapshot | null;
|
|
53
100
|
/**
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
101
|
+
* Find the pids cgroup from INSIDE this process, never a hard-coded path —
|
|
102
|
+
* same reasoning as the memory layout: from inside the container the cgroup is
|
|
103
|
+
* at the mount ROOT (`0::/`), from the host it is `<mount>/docker/<id>`, and
|
|
104
|
+
* hard-coding either one breaks the other.
|
|
105
|
+
*/
|
|
59
106
|
export declare function resolveCgroupPidsLayout(fs: CgroupFileReader): CgroupPidsLayout | null;
|
|
60
107
|
export interface ContainerPidsProbeDeps {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
108
|
+
readonly logger: IScopedLogger;
|
|
109
|
+
readonly fs?: CgroupFileReader;
|
|
110
|
+
readonly now?: () => number;
|
|
111
|
+
/** How often the heartbeat line is written. Default 60 s. */
|
|
112
|
+
readonly heartbeatMs?: number;
|
|
113
|
+
/** Utilisation at which the heartbeat becomes a WARN. Default 0.8. */
|
|
114
|
+
readonly pressureFraction?: number;
|
|
68
115
|
}
|
|
69
116
|
/**
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
117
|
+
* The sampler.
|
|
118
|
+
*
|
|
119
|
+
* Its logging is deliberately different from the memory probe's, because the
|
|
120
|
+
* operator asked for a DAY of regular readings before deciding whether to
|
|
121
|
+
* raise the ceiling: there is a heartbeat, on its own cadence, whatever the
|
|
122
|
+
* sampling tick is. Three lines exist and no more:
|
|
123
|
+
*
|
|
124
|
+
* 1. **Resolution**, once — the hierarchy that answered, or "no cgroup here",
|
|
125
|
+
* which is a fact about the node and not an error.
|
|
126
|
+
* 2. **Heartbeat**, every `heartbeatMs` — current, ceiling, utilisation and
|
|
127
|
+
* the lifetime refusal count. INFO while there is room, WARN while we are
|
|
128
|
+
* above `pressureFraction`, and one INFO when it comes back down, so the
|
|
129
|
+
* log carries BOTH edges of a pressure episode rather than only its start.
|
|
130
|
+
* 3. **A refusal**, immediately — the `pids.events` counter rose, so the
|
|
131
|
+
* kernel said no that many times since the last sample and some subsystem
|
|
132
|
+
* silently did without a thread. This one never waits for the heartbeat.
|
|
133
|
+
*/
|
|
87
134
|
export declare class ContainerPidsProbe {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
135
|
+
private readonly logger;
|
|
136
|
+
private readonly fs;
|
|
137
|
+
private readonly now;
|
|
138
|
+
private readonly heartbeatMs;
|
|
139
|
+
private readonly pressureFraction;
|
|
140
|
+
private resolved;
|
|
141
|
+
private layout;
|
|
142
|
+
private lastHeartbeatAt;
|
|
143
|
+
private lastRefusals;
|
|
144
|
+
private underPressure;
|
|
145
|
+
constructor(deps: ContainerPidsProbeDeps);
|
|
146
|
+
/** Did this node resolve a pids cgroup at all? Absent is a reportable fact. */
|
|
147
|
+
get available(): boolean;
|
|
148
|
+
/** One reading, or `null` where there is no cgroup or it stopped answering. */
|
|
149
|
+
sample(): ContainerPidsSnapshot | null;
|
|
150
|
+
private resolveOnce;
|
|
151
|
+
private report;
|
|
152
|
+
/**
|
|
153
|
+
* The counter only ever rises, so a rise is a refusal that happened in this
|
|
154
|
+
* window. Reported the moment it is seen — never held for the heartbeat,
|
|
155
|
+
* because this is the line that says work was lost.
|
|
156
|
+
*/
|
|
157
|
+
private reportRefusals;
|
|
158
|
+
private meta;
|
|
112
159
|
}
|