@camstack/types 1.2.116 → 1.2.118

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/addon.js +4 -3
  2. package/dist/addon.mjs +4 -3
  3. package/dist/capabilities/data-store-provider.cap.d.ts +11 -0
  4. package/dist/capabilities/index.d.ts +6 -3
  5. package/dist/capabilities/load-contribution.cap.d.ts +146 -0
  6. package/dist/capabilities/metrics-provider.cap.d.ts +156 -38
  7. package/dist/capabilities/settings-store.cap.d.ts +48 -1
  8. package/dist/capabilities/system.cap.d.ts +67 -1
  9. package/dist/constants.d.ts +19 -0
  10. package/dist/enums/event-category.d.ts +1 -1
  11. package/dist/enums.js +1 -1
  12. package/dist/enums.mjs +1 -1
  13. package/dist/{event-category-CIa_iT6b.mjs → event-category-BZL-fdNj.mjs} +1 -1
  14. package/dist/{event-category-EY0GNjV9.js → event-category-BaEgqJNv.js} +1 -1
  15. package/dist/generated/addon-api.d.ts +40 -3
  16. package/dist/generated/capability-router-map.d.ts +5 -2
  17. package/dist/generated/collection-array-methods.d.ts +1 -1
  18. package/dist/generated/method-access-map.d.ts +1 -1
  19. package/dist/generated/system-proxy.d.ts +3 -3
  20. package/dist/index.d.ts +2 -0
  21. package/dist/index.js +606 -37
  22. package/dist/index.mjs +595 -38
  23. package/dist/interfaces/event-bus.d.ts +29 -11
  24. package/dist/interfaces/metrics-provider.d.ts +5 -3
  25. package/dist/metrics/load-series-fold.d.ts +142 -0
  26. package/dist/node.d.ts +2 -0
  27. package/dist/node.js +191 -0
  28. package/dist/node.mjs +186 -1
  29. package/dist/process/child-cost-registry.d.ts +105 -0
  30. package/dist/{sleep-CSodb2vQ.js → sleep-9d8tJRbO.js} +1 -1
  31. package/dist/{sleep-CdbM8ge4.mjs → sleep-Dolp38qx.mjs} +1 -1
  32. package/package.json +1 -1
@@ -478,6 +478,36 @@ declare const LoggingSettingsPatchSchema: z.ZodObject<{
478
478
  * authority over the whole hierarchy and answers for every layer, so the
479
479
  * layer selector needs a name the transport does not already own.
480
480
  */
481
+ /**
482
+ * One contribution, plus WHO reported it.
483
+ *
484
+ * The addon and node are added by the hub as it enumerates providers, never by
485
+ * the contributor: an addon reporting its own identity could report somebody
486
+ * else's, and the whole point of this surface is that no claim is made by
487
+ * anyone but its owner.
488
+ */
489
+ declare const ReportedLoadContributionSchema: z.ZodObject<{
490
+ role: z.ZodEnum<{
491
+ streaming: "streaming";
492
+ decode: "decode";
493
+ recording: "recording";
494
+ transcode: "transcode";
495
+ detection: "detection";
496
+ }>;
497
+ deviceId: z.ZodNullable<z.ZodNumber>;
498
+ attribution: z.ZodEnum<{
499
+ measured: "measured";
500
+ accounted: "accounted";
501
+ unattributable: "unattributable";
502
+ }>;
503
+ unit: z.ZodString;
504
+ pid: z.ZodOptional<z.ZodNumber>;
505
+ startedAtMs: z.ZodOptional<z.ZodNumber>;
506
+ cpuSeconds: z.ZodOptional<z.ZodNumber>;
507
+ rssBytes: z.ZodOptional<z.ZodNumber>;
508
+ addonId: z.ZodString;
509
+ }, z.core.$strip>;
510
+ export type ReportedLoadContribution = z.infer<typeof ReportedLoadContributionSchema>;
481
511
  declare const GetLoggingSettingsInputSchema: z.ZodObject<{
482
512
  scopeNodeId: z.ZodOptional<z.ZodString>;
483
513
  scopeComponent: z.ZodOptional<z.ZodString>;
@@ -739,6 +769,42 @@ export declare const systemCapability: {
739
769
  }, z.core.$strip>>>;
740
770
  persisted: z.ZodBoolean;
741
771
  }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
772
+ /**
773
+ * Every `load-contribution` an addon on this cluster reports — each
774
+ * addon's OWN cost, already attributed by the addon that owns it.
775
+ *
776
+ * There is no central list of what costs what: an addon that spawns a
777
+ * per-camera child declares it, and one that cannot attribute its cost
778
+ * (the shared inference pool) declares THAT. So a new cost family appears
779
+ * here the moment its addon is redeployed, with nobody editing anything.
780
+ *
781
+ * What this does NOT do is measure the node. `metrics.node-processes-
782
+ * snapshot` still does that, and the difference between the two is the
783
+ * finding: a process no contribution claims is either a leak or a family
784
+ * nobody has taught to report. Both belong in the unattributed bucket, and
785
+ * neither may be folded into a camera.
786
+ */
787
+ readonly getLoadContributions: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodReadonly<z.ZodArray<z.ZodObject<{
788
+ role: z.ZodEnum<{
789
+ streaming: "streaming";
790
+ decode: "decode";
791
+ recording: "recording";
792
+ transcode: "transcode";
793
+ detection: "detection";
794
+ }>;
795
+ deviceId: z.ZodNullable<z.ZodNumber>;
796
+ attribution: z.ZodEnum<{
797
+ measured: "measured";
798
+ accounted: "accounted";
799
+ unattributable: "unattributable";
800
+ }>;
801
+ unit: z.ZodString;
802
+ pid: z.ZodOptional<z.ZodNumber>;
803
+ startedAtMs: z.ZodOptional<z.ZodNumber>;
804
+ cpuSeconds: z.ZodOptional<z.ZodNumber>;
805
+ rssBytes: z.ZodOptional<z.ZodNumber>;
806
+ addonId: z.ZodString;
807
+ }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
742
808
  /**
743
809
  * The logging settings document — levels and armed diagnostics — resolved
744
810
  * for `nodeId`, or for the cluster when `nodeId` is absent.
@@ -936,4 +1002,4 @@ export type SiteLocation = z.infer<typeof SiteLocationSchema>;
936
1002
  export type SiteLocationSource = z.infer<typeof SiteLocationSourceSchema>;
937
1003
  export type SiteLocationStatus = z.infer<typeof SiteLocationStatusSchema>;
938
1004
  export type SetSiteLocationInput = z.infer<typeof SetSiteLocationInputSchema>;
939
- export { DiagnosticIdSchema, DiagnosticWindowPatchSchema, DiagnosticWindowSchema, FeatureManifestSchema, GetLoggingSettingsInputSchema, HealthStatusSchema, LoggingEffectiveSchema, LoggingExplicitSchema, LoggingLevelLayerSchema, LoggingLevelSourceSchema, LoggingScopeKindSchema, LoggingSettingsPatchSchema, LoggingSettingsStateSchema, LogChannelWindowPatchSchema, LogChannelWindowStateSchema, LogLevelSchema, NetworkAddressSchema, RequestCensusGroupSchema, RequestCensusProcedureSchema, RequestCensusSnapshotSchema, RequestCensusStatusSchema, SetLoggingSettingsInputSchema, SetSiteLocationInputSchema, SiteLocationSchema, SiteLocationSourceSchema, SiteLocationStatusSchema, TransportPlaneCountsSchema, TransportPlaneSchema, };
1005
+ export { DiagnosticIdSchema, DiagnosticWindowPatchSchema, DiagnosticWindowSchema, FeatureManifestSchema, GetLoggingSettingsInputSchema, HealthStatusSchema, LoggingEffectiveSchema, LoggingExplicitSchema, LoggingLevelLayerSchema, LoggingLevelSourceSchema, LoggingScopeKindSchema, LoggingSettingsPatchSchema, LoggingSettingsStateSchema, LogChannelWindowPatchSchema, LogChannelWindowStateSchema, LogLevelSchema, NetworkAddressSchema, ReportedLoadContributionSchema, RequestCensusGroupSchema, RequestCensusProcedureSchema, RequestCensusSnapshotSchema, RequestCensusStatusSchema, SetLoggingSettingsInputSchema, SetSiteLocationInputSchema, SiteLocationSchema, SiteLocationSourceSchema, SiteLocationStatusSchema, TransportPlaneCountsSchema, TransportPlaneSchema, };
@@ -1,5 +1,24 @@
1
1
  export declare const HF_REPO = "camstack/camstack-models";
2
2
  export declare const HF_BASE_URL = "https://huggingface.co/camstack/camstack-models/resolve/main";
3
+ /**
4
+ * The ONE default session-JWT lifetime.
5
+ *
6
+ * There used to be three, and they disagreed: the `system-config` schema said
7
+ * `30d`, `RUNTIME_DEFAULTS['auth.tokenExpiry']` said `7d`, and
8
+ * `AuthManager.signToken` hardcoded `30d` as its own fallback. Because the
9
+ * production signer (`AuthService extends AuthManager`, wired to
10
+ * `ConfigManager`) resolves through `RUNTIME_DEFAULTS` BEFORE it can ever
11
+ * reach the hardcoded fallback, the value actually in force was `7d` while
12
+ * every surface an operator could read advertised `30d`.
13
+ *
14
+ * `30d` is the value the product documents and the one an operator decided on
15
+ * (2026-07-17: the viewer's silent refresh rotates tokens long before expiry,
16
+ * so a long lifetime only covers devices left unopened for weeks). It is
17
+ * declared here once and imported by the schema, by the runtime defaults and
18
+ * by the signer's fallback — a second default that disagrees with the first is
19
+ * the same defect in miniature.
20
+ */
21
+ export declare const DEFAULT_TOKEN_EXPIRY = "30d";
3
22
  /**
4
23
  * Shape of {@link RUNTIME_DEFAULTS}. Every key/value is typed explicitly so
5
24
  * consumers (ConfigManager.raw, feature accessors, settings-store seeder)
@@ -434,7 +434,7 @@ export declare enum EventCategory {
434
434
  MetricsNodeResourcesSnapshot = "metrics.node-resources-snapshot",
435
435
  /**
436
436
  * Periodic per-node process-tree snapshot (camstack-related pids
437
- * with ghost / managed / root classification). Emitted ~0.2 Hz by
437
+ * with root / managed / system classification). Emitted ~0.2 Hz by
438
438
  * the metrics-provider addon. Drives the Cluster → Processes tab
439
439
  * without polling `metricsProvider.listNodeProcesses`.
440
440
  */
package/dist/enums.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_event_category = require("./event-category-EY0GNjV9.js");
2
+ const require_event_category = require("./event-category-BaEgqJNv.js");
3
3
  //#region src/enums/event-source-type.ts
4
4
  var EventSourceType = /* @__PURE__ */ function(EventSourceType) {
5
5
  EventSourceType["Addon"] = "addon";
package/dist/enums.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { t as EventCategory } from "./event-category-CIa_iT6b.mjs";
1
+ import { t as EventCategory } from "./event-category-BZL-fdNj.mjs";
2
2
  //#region src/enums/event-source-type.ts
3
3
  var EventSourceType = /* @__PURE__ */ function(EventSourceType) {
4
4
  EventSourceType["Addon"] = "addon";
@@ -435,7 +435,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
435
435
  EventCategory["MetricsNodeResourcesSnapshot"] = "metrics.node-resources-snapshot";
436
436
  /**
437
437
  * Periodic per-node process-tree snapshot (camstack-related pids
438
- * with ghost / managed / root classification). Emitted ~0.2 Hz by
438
+ * with root / managed / system classification). Emitted ~0.2 Hz by
439
439
  * the metrics-provider addon. Drives the Cluster → Processes tab
440
440
  * without polling `metricsProvider.listNodeProcesses`.
441
441
  */
@@ -435,7 +435,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
435
435
  EventCategory["MetricsNodeResourcesSnapshot"] = "metrics.node-resources-snapshot";
436
436
  /**
437
437
  * Periodic per-node process-tree snapshot (camstack-related pids
438
- * with ghost / managed / root classification). Emitted ~0.2 Hz by
438
+ * with root / managed / system classification). Emitted ~0.2 Hz by
439
439
  * the metrics-provider addon. Drives the Cluster → Processes tab
440
440
  * without polling `metricsProvider.listNodeProcesses`.
441
441
  */
@@ -54,6 +54,7 @@ import type { intercomCapability } from '../capabilities/intercom.cap.js';
54
54
  import type { lawnMowerControlCapability } from '../capabilities/lawn-mower-control.cap.js';
55
55
  import type { llmRuntimeCapability } from '../capabilities/llm-runtime.cap.js';
56
56
  import type { llmCapability } from '../capabilities/llm.cap.js';
57
+ import type { loadContributionCapability } from '../capabilities/load-contribution.cap.js';
57
58
  import type { localNetworkCapability } from '../capabilities/local-network.cap.js';
58
59
  import type { lockControlCapability } from '../capabilities/lock-control.cap.js';
59
60
  import type { logChannelsCapability } from '../capabilities/log-channels.cap.js';
@@ -1594,6 +1595,13 @@ export type AppRouter = TrpcCoreRouter<{
1594
1595
  output: z.infer<typeof dataStoreProviderCapability.methods.insert.output>;
1595
1596
  meta: object;
1596
1597
  }>;
1598
+ insertMany: TRPCMutationProcedure<{
1599
+ input: {
1600
+ [x: string]: unknown;
1601
+ } & z.input<typeof dataStoreProviderCapability.methods.insertMany.input>;
1602
+ output: z.infer<typeof dataStoreProviderCapability.methods.insertMany.output>;
1603
+ meta: object;
1604
+ }>;
1597
1605
  update: TRPCMutationProcedure<{
1598
1606
  input: {
1599
1607
  [x: string]: unknown;
@@ -3578,6 +3586,21 @@ export type AppRouter = TrpcCoreRouter<{
3578
3586
  meta: object;
3579
3587
  }>;
3580
3588
  }>>;
3589
+ loadContribution: TRPCBuiltRouter<{
3590
+ ctx: TrpcContext;
3591
+ meta: object;
3592
+ errorShape: AugmentedErrorShape;
3593
+ transformer: true;
3594
+ }, TRPCDecorateCreateRouterOptions<{
3595
+ list: TRPCQueryProcedure<{
3596
+ input: {
3597
+ nodeId?: string | undefined;
3598
+ addonId?: string | undefined;
3599
+ } | undefined;
3600
+ output: z.infer<typeof loadContributionCapability.methods.list.output>;
3601
+ meta: object;
3602
+ }>;
3603
+ }>>;
3581
3604
  localNetwork: TRPCBuiltRouter<{
3582
3605
  ctx: TrpcContext;
3583
3606
  meta: object;
@@ -3996,11 +4019,11 @@ export type AppRouter = TrpcCoreRouter<{
3996
4019
  output: z.infer<typeof metricsProviderCapability.methods.listNodeProcesses.output>;
3997
4020
  meta: object;
3998
4021
  }>;
3999
- killProcess: TRPCMutationProcedure<{
4022
+ getLoadSeries: TRPCQueryProcedure<{
4000
4023
  input: {
4001
4024
  [x: string]: unknown;
4002
- } & z.input<typeof metricsProviderCapability.methods.killProcess.input>;
4003
- output: z.infer<typeof metricsProviderCapability.methods.killProcess.output>;
4025
+ } & z.input<typeof metricsProviderCapability.methods.getLoadSeries.input>;
4026
+ output: z.infer<typeof metricsProviderCapability.methods.getLoadSeries.output>;
4004
4027
  meta: object;
4005
4028
  }>;
4006
4029
  dumpHeapSnapshot: TRPCMutationProcedure<{
@@ -6777,6 +6800,13 @@ export type AppRouter = TrpcCoreRouter<{
6777
6800
  output: z.infer<typeof settingsStoreCapability.methods.insert.output>;
6778
6801
  meta: object;
6779
6802
  }>;
6803
+ insertMany: TRPCMutationProcedure<{
6804
+ input: {
6805
+ [x: string]: unknown;
6806
+ } & z.input<typeof settingsStoreCapability.methods.insertMany.input>;
6807
+ output: z.infer<typeof settingsStoreCapability.methods.insertMany.output>;
6808
+ meta: object;
6809
+ }>;
6780
6810
  update: TRPCMutationProcedure<{
6781
6811
  input: {
6782
6812
  [x: string]: unknown;
@@ -7735,6 +7765,13 @@ export type AppRouter = TrpcCoreRouter<{
7735
7765
  output: z.infer<typeof systemCapability.methods.getRequestCensus.output>;
7736
7766
  meta: object;
7737
7767
  }>;
7768
+ getLoadContributions: TRPCQueryProcedure<{
7769
+ input: {
7770
+ nodeId?: string | undefined;
7771
+ } | undefined;
7772
+ output: z.infer<typeof systemCapability.methods.getLoadContributions.output>;
7773
+ meta: object;
7774
+ }>;
7738
7775
  getLoggingSettings: TRPCQueryProcedure<{
7739
7776
  input: {
7740
7777
  [x: string]: unknown;
@@ -69,6 +69,7 @@ export { intercomCapability } from '../capabilities/intercom.cap.js';
69
69
  export { lawnMowerControlCapability } from '../capabilities/lawn-mower-control.cap.js';
70
70
  export { llmCapability } from '../capabilities/llm.cap.js';
71
71
  export { llmRuntimeCapability } from '../capabilities/llm-runtime.cap.js';
72
+ export { loadContributionCapability } from '../capabilities/load-contribution.cap.js';
72
73
  export { localNetworkCapability } from '../capabilities/local-network.cap.js';
73
74
  export { lockControlCapability } from '../capabilities/lock-control.cap.js';
74
75
  export { logChannelsCapability } from '../capabilities/log-channels.cap.js';
@@ -220,6 +221,7 @@ export declare const CAPABILITY_NAMES: {
220
221
  readonly lawnMowerControl: "lawn-mower-control";
221
222
  readonly llm: "llm";
222
223
  readonly llmRuntime: "llm-runtime";
224
+ readonly loadContribution: "load-contribution";
223
225
  readonly localNetwork: "local-network";
224
226
  readonly lockControl: "lock-control";
225
227
  readonly logChannels: "log-channels";
@@ -384,6 +386,7 @@ export interface CapabilityRouterMap<TRouter = unknown> {
384
386
  readonly lawnMowerControl: TRouter;
385
387
  readonly llm: TRouter;
386
388
  readonly llmRuntime: TRouter;
389
+ readonly loadContribution: TRouter;
387
390
  readonly localNetwork: TRouter;
388
391
  readonly lockControl: TRouter;
389
392
  readonly logChannels: TRouter;
@@ -468,8 +471,8 @@ export interface CapabilityRouterMap<TRouter = unknown> {
468
471
  export declare const SINGLETON_CAPABILITY_NAMES: readonly ["accessories", "addon-pages", "addon-settings", "addon-widgets", "addons", "admin-ui", "air-quality-sensor", "alarm-panel", "alerts", "ambient-light-sensor", "audio-analysis", "audio-analyzer", "audio-codec", "audio-metrics", "automation-control", "backup", "battery", "binary", "brightness", "button", "camera-credentials", "camera-pipeline-config", "camera-streams", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "core-blocks", "cover", "day-night", "decoder", "detection-pipeline", "device-adoption", "device-discovery", "device-manager", "device-ops", "device-state", "device-status", "doorbell", "enum-sensor", "event-emitter", "events", "face-gallery", "fan-control", "feature-probe", "filesystem-browse", "flood", "gas", "humidifier", "humidity-sensor", "image", "image-settings", "integrations", "intercom", "lawn-mower-control", "llm-runtime", "local-network", "lock-control", "media-player", "metrics-provider", "model-convert", "model-distributor", "motion", "motion-detection", "motion-trigger", "motion-zones", "native-object-detection", "network-quality", "nodes", "notification-rules", "notifier", "numeric-sensor", "osd", "osd-manager", "pet-feeder", "pipeline-analytics", "pipeline-executor", "pipeline-orchestrator", "pipeline-runner", "plate-gallery", "platform-probe", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "reboot", "recording", "recording-export", "scene-monitor", "script-runner", "server-management", "settings-store", "smoke", "snapshot", "sso-bridge", "storage", "storage-migration", "stream-broker", "stream-catalog", "stream-params", "switch", "system", "tamper", "temperature-sensor", "terminal-session", "toast", "update", "user-management", "vacuum-control", "valve", "vector-store", "vibration", "videoclips", "viewer-ui", "water-heater", "weather", "webrtc-session", "zone-analytics", "zone-rules", "zones"];
469
472
  /** Union of singleton capability names (literal string union). */
470
473
  export type SingletonCapabilityName = typeof SINGLETON_CAPABILITY_NAMES[number];
471
- /** Capability names whose mode is `collection` (25 caps). */
472
- export declare const COLLECTION_CAPABILITY_NAMES: readonly ["addon-pages-source", "addon-routes", "addon-widgets-source", "auth-provider", "broker", "connection-test", "custom-model-registry", "data-store-provider", "device-export", "device-provider", "embedding-encoder", "llm", "log-channels", "log-destination", "login-method", "mesh-network", "mqtt-broker", "network-access", "notification-output", "oauth-integration", "smtp-provider", "storage-evictable", "storage-provider", "turn-provider", "user-passkeys"];
474
+ /** Capability names whose mode is `collection` (26 caps). */
475
+ export declare const COLLECTION_CAPABILITY_NAMES: readonly ["addon-pages-source", "addon-routes", "addon-widgets-source", "auth-provider", "broker", "connection-test", "custom-model-registry", "data-store-provider", "device-export", "device-provider", "embedding-encoder", "llm", "load-contribution", "log-channels", "log-destination", "login-method", "mesh-network", "mqtt-broker", "network-access", "notification-output", "oauth-integration", "smtp-provider", "storage-evictable", "storage-provider", "turn-provider", "user-passkeys"];
473
476
  /** Union of collection capability names (literal string union). */
474
477
  export type CollectionCapabilityName = typeof COLLECTION_CAPABILITY_NAMES[number];
475
478
  /** Capability mode lookup at runtime — mirrors the `.cap.ts` definitions. */
@@ -8,7 +8,7 @@
8
8
  * barrel (`ALL_CAPABILITY_DEFINITIONS`), which would cost ~144MB RSS per
9
9
  * forked runner. See docs/decisions/adr-0028.md.
10
10
  *
11
- * Coverage: 18 collection caps, 31 array methods.
11
+ * Coverage: 19 collection caps, 32 array methods.
12
12
  */
13
13
  export declare const COLLECTION_ARRAY_METHODS: Readonly<Record<string, readonly string[]>>;
14
14
  /**
@@ -6,7 +6,7 @@
6
6
  * scope+access check inside `protectedProcedure` (see
7
7
  * `server/backend/src/api/trpc/trpc.middleware.ts`).
8
8
  *
9
- * Coverage: 971 method paths across 124 capabilities.
9
+ * Coverage: 975 method paths across 125 capabilities.
10
10
  */
11
11
  import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
12
12
  export interface MethodAccessRecord {
@@ -76,7 +76,7 @@ export interface SystemProxy {
76
76
  readonly llm: Pick<InferProvider<typeof llmCapability>, 'generate' | 'generateVision' | 'cancel' | 'listProfileKinds' | 'listProfiles' | 'upsertProfile' | 'deleteProfile' | 'testProfile' | 'listModels' | 'getDefaults' | 'setDefault' | 'getUsage' | 'listModelCatalog' | 'listRuntimeNodes' | 'listNodeModels' | 'resolveModelRef' | 'installModel' | 'deleteModel' | 'getRuntimeStatus' | 'startRuntime' | 'stopRuntime'>;
77
77
  readonly localNetwork: Pick<InferProvider<typeof localNetworkCapability>, 'list' | 'getPreferred' | 'getConnectionEndpoints' | 'getNotificationEndpoint' | 'setNotificationEndpoint' | 'getViewerEndpoints' | 'setViewerEndpoints' | 'getAllowedAddresses' | 'setAllowedAddresses' | 'resetAllowlistToBestMatch' | 'getTlsStatus' | 'regenerateCertificate' | 'uploadCertificate' | 'downloadCa' | 'revertToGeneratedCertificate'>;
78
78
  readonly meshNetwork: Pick<InferProvider<typeof meshNetworkCapability>, 'getStatus' | 'join' | 'startLogin' | 'leave' | 'logout' | 'listPeers' | 'testConnection'>;
79
- readonly metricsProvider: Pick<InferProvider<typeof metricsProviderCapability>, 'collectSnapshot' | 'getCached' | 'getCurrent' | 'getDiskSpace' | 'getGpuInfo' | 'getCpuTemperature' | 'getProcessStats' | 'listAddonInstances' | 'getAddonStats' | 'listNodeProcesses' | 'killProcess' | 'dumpHeapSnapshot'>;
79
+ readonly metricsProvider: Pick<InferProvider<typeof metricsProviderCapability>, 'collectSnapshot' | 'getCached' | 'getCurrent' | 'getDiskSpace' | 'getGpuInfo' | 'getCpuTemperature' | 'getProcessStats' | 'listAddonInstances' | 'getAddonStats' | 'listNodeProcesses' | 'getLoadSeries' | 'dumpHeapSnapshot'>;
80
80
  readonly mqttBroker: Pick<InferProvider<typeof mqttBrokerCapability>, 'listBrokers' | 'getBrokerConfig' | 'addBroker' | 'removeBroker' | 'testConnection' | 'startEmbeddedBroker' | 'stopEmbeddedBroker' | 'getStatus'>;
81
81
  readonly networkAccess: Pick<InferProvider<typeof networkAccessCapability>, 'start' | 'stop' | 'getEndpoint' | 'getStatus' | 'listEndpoints'>;
82
82
  readonly networkQuality: Pick<InferProvider<typeof networkQualityCapability>, 'getAllStats'>;
@@ -90,11 +90,11 @@ export interface SystemProxy {
90
90
  readonly recording: Pick<InferProvider<typeof recordingCapability>, 'getStorageUsage' | 'listOpsLog' | 'pauseForStorageMigration' | 'resumeForStorageMigration' | 'refreshStorageLocationsForMigration' | 'startStorageMigrationMove' | 'getStorageMigrationMoveStatus' | 'cancelStorageMigrationMove' | 'relocateFootage' | 'listRelocateJobs' | 'cancelRelocateJob' | 'planStorageRebalance' | 'startStorageRebalance'>;
91
91
  readonly recordingExport: Pick<InferProvider<typeof recordingExportCapability>, 'createExport' | 'getExport' | 'cancelExport' | 'deleteExport' | 'getDownloadUrl' | 'readExportBytes'>;
92
92
  readonly serverManagement: Pick<InferProvider<typeof serverManagementCapability>, 'getServerPackageStatus' | 'checkServerUpdate' | 'applyServerUpdate' | 'rollbackServerUpdate' | 'restartServer'>;
93
- readonly settingsStore: Pick<InferProvider<typeof settingsStoreCapability>, 'get' | 'set' | 'query' | 'insert' | 'update' | 'delete' | 'deleteWhere' | 'updateWhere' | 'count' | 'aggregate' | 'histogram' | 'isEmpty' | 'declareCollection'>;
93
+ readonly settingsStore: Pick<InferProvider<typeof settingsStoreCapability>, 'get' | 'set' | 'query' | 'insert' | 'insertMany' | 'update' | 'delete' | 'deleteWhere' | 'updateWhere' | 'count' | 'aggregate' | 'histogram' | 'isEmpty' | 'declareCollection'>;
94
94
  readonly storage: Pick<InferProvider<typeof storageCapability>, 'resolve' | 'write' | 'read' | 'exists' | 'list' | 'delete' | 'getAvailableSpace' | 'beginUpload' | 'writeChunk' | 'finalizeUpload' | 'abortUpload' | 'beginDownload' | 'readChunk' | 'endDownload' | 'listLocations' | 'getDefaultLocation' | 'listLocationDeclarations' | 'upsertLocation' | 'deleteLocation' | 'testLocation' | 'listProviders' | 'testConfig'>;
95
95
  readonly storageMigration: Pick<InferProvider<typeof storageMigrationCapability>, 'plan' | 'start' | 'status' | 'cancel'>;
96
96
  readonly streamBroker: Pick<InferProvider<typeof streamBrokerCapability>, 'fetchEventMedia' | 'listAllCameraStreams' | 'listAllProfileSlots' | 'getBrokerStats' | 'probeStream' | 'listClients' | 'killClient' | 'getStreamUrl' | 'getStreamWithCodec' | 'releaseStreamWithCodec' | 'acquireEgressTranscode' | 'releaseEgressTranscode' | 'subscribeAudioChunks' | 'pullAudioChunks' | 'unsubscribeAudioChunks' | 'subscribeFrames' | 'pullFrameHandles' | 'unsubscribeFrames' | 'setPreBufferDuration' | 'getPreBufferInfo' | 'getRtspPort' | 'getAllRtspEntries' | 'getRtspEntry' | 'regenerateRtspToken' | 'setRtspEnabled' | 'isRtspEnabled'>;
97
- readonly system: Pick<InferProvider<typeof systemCapability>, 'info' | 'health' | 'featureFlags' | 'networkAddresses' | 'getRetentionConfig' | 'setRetentionConfig' | 'forceRetentionCleanup' | 'getSiteLocation' | 'setSiteLocation' | 'detectSiteLocation' | 'getRequestCensus' | 'getLoggingSettings' | 'setLoggingSettings'>;
97
+ readonly system: Pick<InferProvider<typeof systemCapability>, 'info' | 'health' | 'featureFlags' | 'networkAddresses' | 'getRetentionConfig' | 'setRetentionConfig' | 'forceRetentionCleanup' | 'getSiteLocation' | 'setSiteLocation' | 'detectSiteLocation' | 'getRequestCensus' | 'getLoadContributions' | 'getLoggingSettings' | 'setLoggingSettings'>;
98
98
  readonly terminalSession: Pick<InferProvider<typeof terminalSessionCapability>, 'listProfiles' | 'listInstances' | 'createInstance' | 'updateInstance' | 'deleteInstance' | 'setInstanceEnabled' | 'listLegacyCameras' | 'adoptLegacyMonitor' | 'listSessions' | 'openSession' | 'resize' | 'pullOutput' | 'writeInput' | 'close'>;
99
99
  readonly toast: Pick<InferProvider<typeof toastCapability>, 'onToast'>;
100
100
  readonly turnProvider: Pick<InferProvider<typeof turnProviderCapability>, 'getTurnServers'>;
package/dist/index.d.ts CHANGED
@@ -101,6 +101,8 @@ export { findTimezone, TIMEZONES } from './interfaces/timezones.js';
101
101
  export type { AwaitReadyOptions, ReadinessHandler, ReadinessRegistryOptions, ReadinessTransition, } from './readiness/index.js';
102
102
  export { emitDownForOwnedCaps, ReadinessRegistry, ReadinessTimeoutError, readinessKey, scopeKey, } from './readiness/index.js';
103
103
  export * from './stream-selection.js';
104
+ export { ROOT_BUCKET_KEY, UNATTRIBUTED_BUCKET_KEY, foldSnapshotByFunction, reducePoints, resolveBucketMs, } from './metrics/load-series-fold.js';
105
+ export type { LoadBucket, LoadBucketKind, LoadPoint, LoadProcessRow, } from './metrics/load-series-fold.js';
104
106
  export type { AgentAddonConfig, AgentPipelineSettings, CameraPipelineSettings, CameraStepOverridePatch, DeviceStepConfig, } from './types/agent-pipeline-settings.js';
105
107
  export * from './types/analytics.js';
106
108
  export type { CameraPipelineConfig, PipelineTemplate as CameraPipelineTemplate, } from './types/camera-pipeline.js';