@camstack/system 1.2.390 → 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 -100
- package/dist/builtins/system-config/system-config.addon.js +37 -33
- package/dist/builtins/system-config/system-config.addon.mjs +37 -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,37 +1,63 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* The ONE reader over both retention tiers.
|
|
3
|
+
*
|
|
4
|
+
* The hot window is the in-memory ring; the cold one is
|
|
5
|
+
* `metrics:node-load-samples`. A caller never learns which tier a point came
|
|
6
|
+
* from, and that is a hard requirement rather than a nicety: a second reader
|
|
7
|
+
* is how two charts start disagreeing about the same node, and it is how "the
|
|
8
|
+
* ring says X, the table says Y" becomes a question nobody can answer.
|
|
9
|
+
*
|
|
10
|
+
* Three things happen here, in this order, and each one is load-bearing:
|
|
11
|
+
*
|
|
12
|
+
* 1. **Merge and dedupe on `atMs`.** The two tiers OVERLAP by construction —
|
|
13
|
+
* the ring holds the last 180 snapshots and the table holds every snapshot
|
|
14
|
+
* the ring accepted, including those same 180. A snapshot present in both
|
|
15
|
+
* must contribute exactly once. Identity is `atMs`, because one node emits
|
|
16
|
+
* one snapshot per tick and a timestamp already held IS that snapshot. The
|
|
17
|
+
* HOT copy wins on a tie: it is the payload as it arrived, while the cold
|
|
18
|
+
* one has been through the storage encode.
|
|
19
|
+
* 2. **Fold per function.** The chart draws one series per addon, so the fold
|
|
20
|
+
* happens here rather than in the browser.
|
|
21
|
+
* 3. **Reduce, preserving the extremes.** See `load-series-fold.ts` for why
|
|
22
|
+
* the representative of a bucket is its MAX and never its mean.
|
|
23
|
+
*
|
|
24
|
+
* A GAP stays a gap through all three. Emission is fixed-cadence, so a missing
|
|
25
|
+
* interval means one thing — nobody reported — and nothing here fills it in.
|
|
26
|
+
*/
|
|
27
|
+
import { type LoadPoint } from "@camstack/types";
|
|
28
|
+
import type { RetainedSample } from "./load-series-store.js";
|
|
3
29
|
/** One function's assembled series, before it is shaped for the wire. */
|
|
4
30
|
export interface FoldedSeries {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
31
|
+
readonly key: string;
|
|
32
|
+
readonly kind: "addon" | "root" | "unattributed";
|
|
33
|
+
readonly points: readonly LoadPoint[];
|
|
8
34
|
}
|
|
9
35
|
export interface MergeLoadSeriesInput {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
36
|
+
/** Cold samples, oldest-first. May overlap `hot` — that is expected. */
|
|
37
|
+
readonly cold: readonly RetainedSample[];
|
|
38
|
+
/** Hot samples, oldest-first. Wins over a cold sample at the same `atMs`. */
|
|
39
|
+
readonly hot: readonly RetainedSample[];
|
|
40
|
+
readonly cadenceMs: number;
|
|
41
|
+
/** Absent ⇒ no reduction. */
|
|
42
|
+
readonly maxPoints?: number;
|
|
17
43
|
}
|
|
18
44
|
export interface MergedLoadSeries {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
45
|
+
readonly series: readonly FoldedSeries[];
|
|
46
|
+
readonly bucketMs: number;
|
|
47
|
+
readonly retainedSamples: number;
|
|
48
|
+
readonly oldestAtMs: number | null;
|
|
23
49
|
}
|
|
24
50
|
/**
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
51
|
+
* Merge the two tiers into one deduped, oldest-first list of samples.
|
|
52
|
+
*
|
|
53
|
+
* Exported because the dedup is the property worth testing on its own: a
|
|
54
|
+
* doubled point is invisible in a total and obvious only as a chart that reads
|
|
55
|
+
* twice as loud as the machine.
|
|
56
|
+
*/
|
|
31
57
|
export declare function mergeSamples(cold: readonly RetainedSample[], hot: readonly RetainedSample[]): readonly RetainedSample[];
|
|
32
58
|
/**
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
59
|
+
* Merge, fold and reduce. The whole read path in one pure function, so every
|
|
60
|
+
* property that matters — dedup, peak survival, an empty bucket staying empty
|
|
61
|
+
* — is testable without a database or a ring.
|
|
62
|
+
*/
|
|
37
63
|
export declare function mergeLoadSeries(input: MergeLoadSeriesInput): MergedLoadSeries;
|
|
@@ -1,31 +1,92 @@
|
|
|
1
|
-
import { IScopedLogger, SettingsStoreClient } from '@camstack/types';
|
|
2
1
|
/**
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
2
|
+
* Durable retention for the per-node load series — the COLD window behind the
|
|
3
|
+
* in-memory ring's hot one.
|
|
4
|
+
*
|
|
5
|
+
* ## One table, and what that decides
|
|
6
|
+
*
|
|
7
|
+
* One row per process per sample, in `metrics:node-load-samples`, declared the
|
|
8
|
+
* way every other typed collection in this repo is declared: explicit columns,
|
|
9
|
+
* explicit indexes, read by `where`/`whereBetween`/`orderBy`/`limit`. There is
|
|
10
|
+
* no dimension table, no per-addon pre-aggregate and no bucket tier. The
|
|
11
|
+
* consequence is that the row count is DETERMINISTIC and large, and the honest
|
|
12
|
+
* thing to do with a large number is to publish it rather than to design it
|
|
13
|
+
* away — see `docs/architecture/load-ledger.md` § "2026-08-27 (night) — the load
|
|
14
|
+
* series reaches disk, and what it costs".
|
|
15
|
+
*
|
|
16
|
+
* ## Measured cost, not estimated
|
|
17
|
+
*
|
|
18
|
+
* `scripts/measure-load-series-cost.mts` writes the real payload shape through
|
|
19
|
+
* the real `SqliteSettingsBackend` and the real `declareCollection` DDL, then
|
|
20
|
+
* reads `page_count × page_size` off the resulting file. The answer is
|
|
21
|
+
* **{@link MEASURED_BYTES_PER_ROW} bytes per row**, flat from 164 k rows to
|
|
22
|
+
* 3.9 M rows — table plus its one index, after a truncating WAL checkpoint.
|
|
23
|
+
*
|
|
24
|
+
* That number is why the columns look the way they do. Four decisions, each
|
|
25
|
+
* paid for in bytes measured on the same harness:
|
|
26
|
+
*
|
|
27
|
+
* | shape | B/row |
|
|
28
|
+
* | --- | --- |
|
|
29
|
+
* | naive: `TEXT` id, 2 indexes, every `NodeProcess` field | 196.0 |
|
|
30
|
+
* | one index, drop `threadCount` + `uptimeSec` | 172.8 |
|
|
31
|
+
* | + base36 in the composite id | 159.6 |
|
|
32
|
+
* | + CPU as integer tenths, RSS as integer MiB | 140.3 |
|
|
33
|
+
* | + `INTEGER` rowid-alias key (this file) | **86.9** |
|
|
34
|
+
*
|
|
35
|
+
* - **`command` is not stored.** It is the fattest field in a `NodeProcess` and
|
|
36
|
+
* it is the same ~100-character string on every runner — the runner id
|
|
37
|
+
* travels in the environment, not in argv, so `ps` reports one identical
|
|
38
|
+
* command line for all of them. `addonId` is the short identifier that
|
|
39
|
+
* already exists, and nothing that reads this series reads `command`.
|
|
40
|
+
* - **CPU is stored as integer tenths.** Losslessly: `ps pcpu` is rounded to
|
|
41
|
+
* one decimal by `runPs`, and the thread sampler rounds to one decimal too
|
|
42
|
+
* (`Math.round(x * 1000) / 10`). A SQLite `REAL` is 8 bytes always; the same
|
|
43
|
+
* value as an integer varint is 1-2.
|
|
44
|
+
* - **RSS is stored in whole MiB.** A byte-exact residency on a value in the
|
|
45
|
+
* hundreds of megabytes is precision no chart can draw, and it costs 3 bytes
|
|
46
|
+
* a row.
|
|
47
|
+
* - **The key is an `INTEGER` rowid alias.** A composite `TEXT` key cost ~40
|
|
48
|
+
* B/row — the string in the row plus its own B-tree — for an idempotence
|
|
49
|
+
* this table gets for free somewhere better: {@link NodeLoadRing.record}
|
|
50
|
+
* already refuses a sample at or before the newest it holds, and only an
|
|
51
|
+
* ACCEPTED sample is written here. The gate is one monotonic comparison in
|
|
52
|
+
* memory instead of a unique index on two million rows.
|
|
53
|
+
*
|
|
54
|
+
* ## Retention is an intention; the row cap is the guarantee
|
|
55
|
+
*
|
|
56
|
+
* {@link LoadSeriesRetention.retentionHours} is what the operator asked to
|
|
57
|
+
* keep. {@link DEFAULT_MAX_ROWS} is what the table is allowed to become. They
|
|
58
|
+
* are different promises on purpose: an operator who raises retention to three
|
|
59
|
+
* days must not be able to take this table to two million rows with nothing
|
|
60
|
+
* stopping it. When the cap bites, the OLDEST rows go and a line says so.
|
|
61
|
+
*/
|
|
62
|
+
import type { IScopedLogger, SettingsStoreClient } from "@camstack/types";
|
|
63
|
+
/**
|
|
64
|
+
* @durable class=audit owner=metrics-native
|
|
65
|
+
* write="one row per process per sample, appended in ONE transaction per
|
|
66
|
+
* sample (`settingsStore.insertMany`) by the HUB's `native-metrics`, off its
|
|
67
|
+
* subscription to `metrics.node-processes-snapshot`. Emission is
|
|
68
|
+
* fixed-cadence, so the write rate is deterministic: nodes x processes /
|
|
69
|
+
* cadence, 7.6 rows/s on the live fleet at the 10 s default. Only a sample
|
|
70
|
+
* the in-memory ring ACCEPTED is written, which is what makes the append
|
|
71
|
+
* idempotent without a unique key."
|
|
72
|
+
* retention="TWO bounds, swept together at most once a minute. By AGE, the
|
|
73
|
+
* operator's `loadSeriesRetentionHours` (default 6, the intention); by ROWS,
|
|
74
|
+
* DEFAULT_MAX_ROWS (the guarantee, which bites regardless of the age knob).
|
|
75
|
+
* Both prune oldest-first through a bounded page — never a full scan — and
|
|
76
|
+
* the row cap logs when it bites. Losing the table loses the cold window
|
|
77
|
+
* only: the ring keeps serving the last hour and the charts keep drawing."
|
|
78
|
+
*/
|
|
18
79
|
export declare const LOAD_SERIES_COLLECTION = "metrics:node-load-samples";
|
|
19
80
|
/**
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
81
|
+
* Bytes one stored row costs on disk, MEASURED — table plus index, after a
|
|
82
|
+
* truncating checkpoint. Used to project the cost of a configuration for the
|
|
83
|
+
* operator BEFORE they apply it, so the knob is honest.
|
|
84
|
+
*/
|
|
24
85
|
export declare const MEASURED_BYTES_PER_ROW = 87;
|
|
25
86
|
/**
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
87
|
+
* Sampling cadence bounds, in seconds. Outside this range a cadence is
|
|
88
|
+
* REFUSED — see {@link resolveLoadSeriesConfig}.
|
|
89
|
+
*/
|
|
29
90
|
export declare const MIN_CADENCE_SEC = 5;
|
|
30
91
|
export declare const MAX_CADENCE_SEC = 60;
|
|
31
92
|
export declare const DEFAULT_CADENCE_SEC = 10;
|
|
@@ -34,109 +95,109 @@ export declare const DEFAULT_RETENTION_HOURS = 6;
|
|
|
34
95
|
export declare const MIN_RETENTION_HOURS = 1;
|
|
35
96
|
export declare const MAX_RETENTION_HOURS = 72;
|
|
36
97
|
/**
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
export declare const DEFAULT_MAX_ROWS =
|
|
98
|
+
* Hard ceiling on the table, in ROWS.
|
|
99
|
+
*
|
|
100
|
+
* The guarantee behind the retention knob. Sized against the shipped default
|
|
101
|
+
* and against the worst configuration the knob can express:
|
|
102
|
+
*
|
|
103
|
+
* | cadence | retention | rows (3 nodes, 76 processes) |
|
|
104
|
+
* | --- | --- | --- |
|
|
105
|
+
* | 10 s | 6 h (default) | 164 160 |
|
|
106
|
+
* | 5 s | 6 h | 328 320 |
|
|
107
|
+
* | 5 s | 72 h | 3 939 840 — capped here |
|
|
108
|
+
*
|
|
109
|
+
* 500 000 rows x the measured 87 B = **41.5 MiB**, roughly 3x what the shipped
|
|
110
|
+
* default needs and far below the 2 M rows a three-day retention would reach.
|
|
111
|
+
* It is deliberately NOT a knob: the point of a guarantee is that it is not
|
|
112
|
+
* subject to the same hand that raised the intention. This is the discipline
|
|
113
|
+
* the in-memory ring already adopted (`DEFAULT_MAX_TOTAL_PROCESS_ROWS`) and
|
|
114
|
+
* the one the RTP pre-roll rings still lack — a maximum per instance and no
|
|
115
|
+
* budget at all for the whole, which reached 898 MB across 47 rings
|
|
116
|
+
* (`docs/architecture/load-ledger.md` #5).
|
|
117
|
+
*/
|
|
118
|
+
export declare const DEFAULT_MAX_ROWS = 5e5;
|
|
58
119
|
/**
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
export declare const PRUNE_PAGE_ROWS =
|
|
120
|
+
* Rows a single prune pass may remove.
|
|
121
|
+
*
|
|
122
|
+
* The prune is BOUNDED, never a full scan. It reads at most this many keys
|
|
123
|
+
* oldest-first through `idx_load_samples_node_at`, takes the last one's `atMs`
|
|
124
|
+
* as the effective cutoff and issues ONE `deleteWhere` up to it. A backlog
|
|
125
|
+
* larger than a page is worked off across passes rather than in one stall —
|
|
126
|
+
* which is the defect corrected in the recorder the same week, where
|
|
127
|
+
* `accountingForLocations` visited 6.7 M rows twice a minute.
|
|
128
|
+
*/
|
|
129
|
+
export declare const PRUNE_PAGE_ROWS = 2e4;
|
|
69
130
|
/** How often a prune pass may run. A bound, not a deadline. */
|
|
70
|
-
export declare const PRUNE_INTERVAL_MS =
|
|
131
|
+
export declare const PRUNE_INTERVAL_MS = 6e4;
|
|
71
132
|
export declare const LOAD_SERIES_COLUMNS: readonly [{
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
133
|
+
readonly name: "id";
|
|
134
|
+
readonly type: "INTEGER";
|
|
135
|
+
readonly primaryKey: true;
|
|
136
|
+
readonly notNull: true;
|
|
76
137
|
}, {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
138
|
+
readonly name: "nodeId";
|
|
139
|
+
readonly type: "TEXT";
|
|
140
|
+
readonly notNull: true;
|
|
80
141
|
}, {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
142
|
+
readonly name: "atMs";
|
|
143
|
+
readonly type: "INTEGER";
|
|
144
|
+
readonly notNull: true;
|
|
84
145
|
}, {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
146
|
+
readonly name: "pid";
|
|
147
|
+
readonly type: "INTEGER";
|
|
148
|
+
readonly notNull: true;
|
|
88
149
|
}, {
|
|
89
|
-
|
|
90
|
-
|
|
150
|
+
readonly name: "addonId";
|
|
151
|
+
readonly type: "TEXT";
|
|
91
152
|
}, {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
153
|
+
readonly name: "classification";
|
|
154
|
+
readonly type: "TEXT";
|
|
155
|
+
readonly notNull: true;
|
|
95
156
|
}, {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
157
|
+
readonly name: "cpuDeci";
|
|
158
|
+
readonly type: "INTEGER";
|
|
159
|
+
readonly notNull: true;
|
|
99
160
|
}, {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
161
|
+
readonly name: "rssMib";
|
|
162
|
+
readonly type: "INTEGER";
|
|
163
|
+
readonly notNull: true;
|
|
103
164
|
}, {
|
|
104
|
-
|
|
105
|
-
|
|
165
|
+
readonly name: "cpuMainDeci";
|
|
166
|
+
readonly type: "INTEGER";
|
|
106
167
|
}, {
|
|
107
|
-
|
|
108
|
-
|
|
168
|
+
readonly name: "cpuGcDeci";
|
|
169
|
+
readonly type: "INTEGER";
|
|
109
170
|
}];
|
|
110
171
|
export declare const LOAD_SERIES_INDEXES: readonly [{
|
|
111
|
-
|
|
112
|
-
|
|
172
|
+
readonly name: "idx_load_samples_node_at";
|
|
173
|
+
readonly columns: readonly ["nodeId", "atMs"];
|
|
113
174
|
}];
|
|
114
175
|
/** One stored process row, in the units the table stores them in. */
|
|
115
176
|
export interface LoadSeriesRow {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
177
|
+
readonly nodeId: string;
|
|
178
|
+
readonly atMs: number;
|
|
179
|
+
readonly pid: number;
|
|
180
|
+
readonly addonId: string | null;
|
|
181
|
+
readonly classification: string;
|
|
182
|
+
readonly cpuDeci: number;
|
|
183
|
+
readonly rssMib: number;
|
|
184
|
+
readonly cpuMainDeci: number | null;
|
|
185
|
+
readonly cpuGcDeci: number | null;
|
|
125
186
|
}
|
|
126
187
|
/** The process shape both tiers hand back — the series' own row, not `ps`'s. */
|
|
127
188
|
export interface RetainedProcess {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
189
|
+
readonly pid: number;
|
|
190
|
+
readonly addonId: string | null;
|
|
191
|
+
readonly classification: string;
|
|
192
|
+
readonly cpuPercent: number;
|
|
193
|
+
readonly memoryRssBytes: number;
|
|
194
|
+
readonly cpuMainPercent: number | null;
|
|
195
|
+
readonly cpuGcPercent: number | null;
|
|
135
196
|
}
|
|
136
197
|
/** One retained sample: when it was taken, and the processes in it. */
|
|
137
198
|
export interface RetainedSample {
|
|
138
|
-
|
|
139
|
-
|
|
199
|
+
readonly atMs: number;
|
|
200
|
+
readonly processes: readonly RetainedProcess[];
|
|
140
201
|
}
|
|
141
202
|
/** Storage row → the shape a reader gets. The ONE decode. */
|
|
142
203
|
export declare function rowToProcess(row: LoadSeriesRow): RetainedProcess;
|
|
@@ -146,87 +207,87 @@ export declare function processToRow(nodeId: string, atMs: number, process: Reta
|
|
|
146
207
|
export declare function rowsToSamples(rows: readonly LoadSeriesRow[]): readonly RetainedSample[];
|
|
147
208
|
/** The two bounds in force. */
|
|
148
209
|
export interface LoadSeriesRetention {
|
|
149
|
-
|
|
150
|
-
|
|
210
|
+
readonly retentionHours: number;
|
|
211
|
+
readonly maxRows: number;
|
|
151
212
|
}
|
|
152
213
|
export interface LoadSeriesStoreDeps {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
214
|
+
readonly store: SettingsStoreClient;
|
|
215
|
+
readonly logger: IScopedLogger;
|
|
216
|
+
readonly now?: () => number;
|
|
217
|
+
readonly prunePageRows?: number;
|
|
218
|
+
readonly pruneIntervalMs?: number;
|
|
158
219
|
}
|
|
159
220
|
/** What one prune pass did. Returned so a test can assert the bound held. */
|
|
160
221
|
export interface PruneOutcome {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
222
|
+
readonly deletedByAge: number;
|
|
223
|
+
readonly deletedByCap: number;
|
|
224
|
+
/** Rows read to find the cutoffs — the number that must stay bounded. */
|
|
225
|
+
readonly rowsExamined: number;
|
|
226
|
+
readonly capBit: boolean;
|
|
166
227
|
}
|
|
167
228
|
/**
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
229
|
+
* The cold tier. Append-only, bounded, and never the authority on anything the
|
|
230
|
+
* hot ring can answer.
|
|
231
|
+
*
|
|
232
|
+
* Every method is best-effort and says so in the log rather than throwing at
|
|
233
|
+
* the emitter: a storage hiccup must cost a gap in a chart, never a dropped
|
|
234
|
+
* snapshot on the bus.
|
|
235
|
+
*/
|
|
175
236
|
export declare class LoadSeriesStore {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
237
|
+
private declared;
|
|
238
|
+
private lastPruneAtMs;
|
|
239
|
+
private readonly store;
|
|
240
|
+
private readonly logger;
|
|
241
|
+
private readonly nowFn;
|
|
242
|
+
private readonly prunePageRows;
|
|
243
|
+
private readonly pruneIntervalMs;
|
|
244
|
+
constructor(deps: LoadSeriesStoreDeps);
|
|
245
|
+
/** Idempotently declare the collection. `false` when the store refused. */
|
|
246
|
+
declare(): Promise<boolean>;
|
|
247
|
+
/**
|
|
248
|
+
* Append ONE sample — every process row of it — in ONE transaction.
|
|
249
|
+
*
|
|
250
|
+
* Never a write per row. `insertMany` exists for exactly this: at the 10 s
|
|
251
|
+
* default the fleet produces 7.6 rows/s, and 7.6 separate commits per second
|
|
252
|
+
* on the connection that also serves every cluster-wide configuration read
|
|
253
|
+
* is a constant load nobody asked for.
|
|
254
|
+
*/
|
|
255
|
+
append(nodeId: string, atMs: number, processes: readonly RetainedProcess[]): Promise<number>;
|
|
256
|
+
/**
|
|
257
|
+
* Read one node's cold samples, oldest-first.
|
|
258
|
+
*
|
|
259
|
+
* `sinceMs` is EXCLUSIVE, matching the ring, so a caller passing the newest
|
|
260
|
+
* timestamp it holds gets only what it is missing. `limitRows` bounds the
|
|
261
|
+
* read in ROWS (not samples) because rows are what the query costs.
|
|
262
|
+
*/
|
|
263
|
+
read(nodeId: string, sinceMs: number, limitRows: number): Promise<readonly RetainedSample[]>;
|
|
264
|
+
/**
|
|
265
|
+
* Enforce BOTH bounds, oldest-first, through a bounded page each.
|
|
266
|
+
*
|
|
267
|
+
* Rate-limited to {@link pruneIntervalMs}: a bound is not a deadline, and the
|
|
268
|
+
* append path must not pay a sweep on every sample.
|
|
269
|
+
*/
|
|
270
|
+
prune(nodeIds: readonly string[], retention: LoadSeriesRetention, force?: boolean): Promise<PruneOutcome | null>;
|
|
271
|
+
/** Total rows, or `null` when the store could not answer. */
|
|
272
|
+
count(): Promise<number | null>;
|
|
273
|
+
/**
|
|
274
|
+
* Delete this node's rows older than `cutoff`, at most one page's worth.
|
|
275
|
+
*
|
|
276
|
+
* The page is the whole point. `deleteWhere({ atMs: [0, cutoff] })` on its
|
|
277
|
+
* own is one statement but an UNBOUNDED one — a first pass after a retention
|
|
278
|
+
* change would delete millions of rows inside a single stalling transaction.
|
|
279
|
+
* So the page is read first (keys only, ordered by the index), its last
|
|
280
|
+
* `atMs` becomes the EFFECTIVE cutoff, and the delete is bounded by it.
|
|
281
|
+
*/
|
|
282
|
+
private pruneNodeToCutoff;
|
|
283
|
+
/**
|
|
284
|
+
* Drop the oldest rows across the known nodes until `excess` is covered.
|
|
285
|
+
*
|
|
286
|
+
* Same bounded-page technique, walked per node so the one index serves it.
|
|
287
|
+
* The node holding the oldest rows pays first, which is also the node
|
|
288
|
+
* producing the pressure when a runaway process count is the cause.
|
|
289
|
+
*/
|
|
290
|
+
private pruneOldestRows;
|
|
230
291
|
}
|
|
231
292
|
/** Structural validation on read. A malformed row is skipped, never charted. */
|
|
232
293
|
export declare function recordToRow(data: Record<string, unknown>): LoadSeriesRow | null;
|
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
import { DiskSpaceInfo, MemoryInfo, MetricsGpuInfo, PidResourceStats, SystemResourceSnapshot } from
|
|
1
|
+
import type { DiskSpaceInfo, MemoryInfo, MetricsGpuInfo, PidResourceStats, SystemResourceSnapshot } from "@camstack/types";
|
|
2
2
|
interface SamplingDiagnostics {
|
|
3
|
-
|
|
3
|
+
warn(message: string, meta?: Record<string, unknown>): void;
|
|
4
4
|
}
|
|
5
5
|
export declare class NativeMetricsProvider {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
6
|
+
readonly id = "native";
|
|
7
|
+
private cachedSnapshot;
|
|
8
|
+
private samplingTimer;
|
|
9
|
+
private macMemTimer;
|
|
10
|
+
private prevCpu;
|
|
11
|
+
private diagnostics;
|
|
12
|
+
private consecutiveSampleErrors;
|
|
13
|
+
constructor();
|
|
14
|
+
/**
|
|
15
|
+
* Optional diagnostics sink for sampling errors. The first failure and
|
|
16
|
+
* every Nth failure thereafter are reported so a permanently-broken
|
|
17
|
+
* collector doesn't spam logs but is still observable.
|
|
18
|
+
*/
|
|
19
|
+
setDiagnostics(diag: SamplingDiagnostics): void;
|
|
20
|
+
startSampling(intervalMs: number): void;
|
|
21
|
+
private reportSampleError;
|
|
22
|
+
stopSampling(): void;
|
|
23
|
+
collectSnapshot(): Promise<SystemResourceSnapshot>;
|
|
24
|
+
getCached(): Promise<SystemResourceSnapshot | null>;
|
|
25
|
+
getCurrent(): Promise<{
|
|
26
|
+
cpuPercent: number;
|
|
27
|
+
memoryPercent: number;
|
|
28
|
+
memoryUsedMB: number;
|
|
29
|
+
memoryTotalMB: number;
|
|
30
|
+
diskPercent?: number;
|
|
31
|
+
temperature?: number;
|
|
32
|
+
gpuPercent?: number;
|
|
33
|
+
gpuMemoryPercent?: number;
|
|
34
|
+
}>;
|
|
35
|
+
getDiskSpace(input: {
|
|
36
|
+
dirPath: string;
|
|
37
|
+
}): Promise<DiskSpaceInfo>;
|
|
38
|
+
getGpuInfo(): Promise<MetricsGpuInfo | null>;
|
|
39
|
+
getCpuTemperature(): Promise<number | null>;
|
|
40
|
+
getProcessStats(input: {
|
|
41
|
+
pids: number[];
|
|
42
|
+
}): Promise<PidResourceStats[]>;
|
|
43
|
+
private sampleCpu;
|
|
44
|
+
/** Cached macOS memory (set by sampleMacMemory timer). */
|
|
45
|
+
_cachedMacMem: MemoryInfo | null;
|
|
46
|
+
private getMemoryInfo;
|
|
47
47
|
}
|
|
48
48
|
export {};
|