@camstack/types 1.2.367 → 1.2.369

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.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_sleep = require("./sleep-NZlEFYGX.js");
2
+ const require_sleep = require("./sleep-CXlc9YJ5.js");
3
3
  const require_event_category = require("./event-category-T43rdQWR.js");
4
4
  const require_err_msg = require("./err-msg-Dx2Kor0g.js");
5
5
  //#region src/generated/cap-input-defaults.ts
@@ -16,7 +16,7 @@ const require_err_msg = require("./err-msg-Dx2Kor0g.js");
16
16
  * Plain data, zero Zod: a forked runner must not import the schema barrel
17
17
  * (~144MB RSS per runner — D28).
18
18
  *
19
- * Coverage: 26 caps, 67 methods with defaults.
19
+ * Coverage: 27 caps, 69 methods with defaults.
20
20
  */
21
21
  var CAP_INPUT_DEFAULTS = Object.freeze({
22
22
  "addons": { "getLogs": { "limit": 100 } },
@@ -40,6 +40,16 @@ var CAP_INPUT_DEFAULTS = Object.freeze({
40
40
  "pageSize": 50
41
41
  } },
42
42
  "device-credentials": { "listDeviceCredentials": { "includeRevoked": false } },
43
+ "device-history": {
44
+ "query": {
45
+ "resolution": "auto",
46
+ "maxPoints": 1e3
47
+ },
48
+ "queryNode": {
49
+ "resolution": "auto",
50
+ "maxPoints": 1e3
51
+ }
52
+ },
43
53
  "device-manager": { "adoptionListCandidates": {
44
54
  "page": 1,
45
55
  "pageSize": 50
package/dist/addon.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { A as viewerUiCapability, At as createSecretsAccess, Bt as PEER_BYTES_STALL_MS, C as isZodSecret, Cn as isSecretClear, Dn as makeSecretMarker, E as HF_REPO, En as isSecretMarkerLike, Ft as registerKnownSecret, Gt as DisposerChain, I as adminUiCapability, It as scrubKnownSecrets, Kt as BaseAddon, Lt as shortSecretRefHash, Mt as clearKnownSecrets, Nt as forgetKnownSecret, On as toSecretFieldView, Ot as resolveSecretViewsIn, P as describeCustomActions, Pt as knownSecretCount, Q as readNodePin, Rt as PEER_BYTES_CHUNK_BYTES, S as collectZodSecretPaths, Sn as classifySecretWrite, Tn as isSecretMarker, Ut as DATAPLANE_SECRET_HEADER, Vt as PEER_BYTES_TICKET_TTL_MS, W as expandCapMethods, Z as nodePin, _ as createEventBusSliceSource, an as formatSecretScope, at as scopeKey, c as asString, cn as normalizeSecretOwner, d as parseJsonUnknown, et as MODEL_FORMATS, f as hfModelUrl, fn as createEvent, g as createDeviceProxy, h as isDeviceScopedCap, in as buildSecretRef, j as DEVICE_CHILDREN_BATCH_MAX, jt as MIN_SCRUBBED_LENGTH, k as deviceOpsCapability, kt as REVALIDATE_AFTER_MS, ln as parseSecretRef, m as DEVICE_SCOPED_CAPS, nn as SECRET_REF_SCHEME, nt as ReadinessTimeoutError, o as asJsonObject, on as globalSecretScope, p as BOOT_RECOVERY_BACKOFF_MS, pn as emitReadiness, qt as normalizeAddonInitResult, r as maskUrlCredentials, rn as arrayItemFieldPath, sn as isSecretRef, t as sleep, tt as ReadinessRegistry, wn as isSecretFieldView, xn as SECRET_CLEAR, zt as PEER_BYTES_MAX_OUTSTANDING } from "./sleep-DxJdzHni.mjs";
1
+ import { A as viewerUiCapability, At as createSecretsAccess, Bt as PEER_BYTES_STALL_MS, C as isZodSecret, Cn as isSecretClear, Dn as makeSecretMarker, E as HF_REPO, En as isSecretMarkerLike, Ft as registerKnownSecret, Gt as DisposerChain, I as adminUiCapability, It as scrubKnownSecrets, Kt as BaseAddon, Lt as shortSecretRefHash, Mt as clearKnownSecrets, Nt as forgetKnownSecret, On as toSecretFieldView, Ot as resolveSecretViewsIn, P as describeCustomActions, Pt as knownSecretCount, Q as readNodePin, Rt as PEER_BYTES_CHUNK_BYTES, S as collectZodSecretPaths, Sn as classifySecretWrite, Tn as isSecretMarker, Ut as DATAPLANE_SECRET_HEADER, Vt as PEER_BYTES_TICKET_TTL_MS, W as expandCapMethods, Z as nodePin, _ as createEventBusSliceSource, an as formatSecretScope, at as scopeKey, c as asString, cn as normalizeSecretOwner, d as parseJsonUnknown, et as MODEL_FORMATS, f as hfModelUrl, fn as createEvent, g as createDeviceProxy, h as isDeviceScopedCap, in as buildSecretRef, j as DEVICE_CHILDREN_BATCH_MAX, jt as MIN_SCRUBBED_LENGTH, k as deviceOpsCapability, kt as REVALIDATE_AFTER_MS, ln as parseSecretRef, m as DEVICE_SCOPED_CAPS, nn as SECRET_REF_SCHEME, nt as ReadinessTimeoutError, o as asJsonObject, on as globalSecretScope, p as BOOT_RECOVERY_BACKOFF_MS, pn as emitReadiness, qt as normalizeAddonInitResult, r as maskUrlCredentials, rn as arrayItemFieldPath, sn as isSecretRef, t as sleep, tt as ReadinessRegistry, wn as isSecretFieldView, xn as SECRET_CLEAR, zt as PEER_BYTES_MAX_OUTSTANDING } from "./sleep--g-h2_c_.mjs";
2
2
  import { t as EventCategory } from "./event-category-C4hVnRo8.mjs";
3
3
  import { a as DeviceType, t as errMsg } from "./err-msg-DX6i_MY4.mjs";
4
4
  //#region src/generated/cap-input-defaults.ts
@@ -15,7 +15,7 @@ import { a as DeviceType, t as errMsg } from "./err-msg-DX6i_MY4.mjs";
15
15
  * Plain data, zero Zod: a forked runner must not import the schema barrel
16
16
  * (~144MB RSS per runner — D28).
17
17
  *
18
- * Coverage: 26 caps, 67 methods with defaults.
18
+ * Coverage: 27 caps, 69 methods with defaults.
19
19
  */
20
20
  var CAP_INPUT_DEFAULTS = Object.freeze({
21
21
  "addons": { "getLogs": { "limit": 100 } },
@@ -39,6 +39,16 @@ var CAP_INPUT_DEFAULTS = Object.freeze({
39
39
  "pageSize": 50
40
40
  } },
41
41
  "device-credentials": { "listDeviceCredentials": { "includeRevoked": false } },
42
+ "device-history": {
43
+ "query": {
44
+ "resolution": "auto",
45
+ "maxPoints": 1e3
46
+ },
47
+ "queryNode": {
48
+ "resolution": "auto",
49
+ "maxPoints": 1e3
50
+ }
51
+ },
42
52
  "device-manager": { "adoptionListCandidates": {
43
53
  "page": 1,
44
54
  "pageSize": 50
@@ -0,0 +1,444 @@
1
+ import { z } from 'zod';
2
+ import { type InferProvider } from './capability-definition.js';
3
+ /**
4
+ * device-history — the ONE mechanism for numeric history (D850).
5
+ *
6
+ * A device value is recorded because its capability says so (the `history`
7
+ * block of a `*.cap.ts`, captured hub-side from `DeviceStateChanged`); any
8
+ * other series is DECLARED by the addon that produces it and fed with points
9
+ * (`record`) or closed five-minute buckets (`recordBuckets`). Rollups 5m / 1h /
10
+ * 1d are computed here and nowhere else. Storage is `history.db` (D851).
11
+ *
12
+ * Who the PRODUCER is: `declareSeries`, `record` and `recordBuckets` are owner
13
+ * checked against the `callerAddonId` the transport stamps into a call that
14
+ * crossed a process (never in an input schema, so a session cannot supply it).
15
+ * A call with no stamp is refused `not-owner`. The methods are `admin` so a
16
+ * non-admin session never reaches them; an addon's `ctx.api` call bypasses the
17
+ * tier by design.
18
+ */
19
+ /** Whose history: a real device, or a cluster node (load, memory). */
20
+ export declare const DeviceHistorySubjectSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
21
+ kind: z.ZodLiteral<"device">;
22
+ deviceId: z.ZodNumber;
23
+ }, z.core.$strip>, z.ZodObject<{
24
+ kind: z.ZodLiteral<"node">;
25
+ nodeId: z.ZodString;
26
+ }, z.core.$strip>], "kind">;
27
+ export type DeviceHistorySubject = z.infer<typeof DeviceHistorySubjectSchema>;
28
+ export declare const DeviceHistoryKindSchema: z.ZodEnum<{
29
+ boolean: "boolean";
30
+ counter: "counter";
31
+ gauge: "gauge";
32
+ }>;
33
+ export type DeviceHistoryKind = z.infer<typeof DeviceHistoryKindSchema>;
34
+ export declare const DeviceHistoryResolutionSchema: z.ZodEnum<{
35
+ "1d": "1d";
36
+ "1h": "1h";
37
+ "5m": "5m";
38
+ raw: "raw";
39
+ }>;
40
+ export type DeviceHistoryResolution = z.infer<typeof DeviceHistoryResolutionSchema>;
41
+ /** Why a producer's point or bucket was not stored. Counted, never silent (D391). */
42
+ export declare const DeviceHistoryRefusalReasonSchema: z.ZodEnum<{
43
+ "ingest-mismatch": "ingest-mismatch";
44
+ "not-a-real-device": "not-a-real-device";
45
+ "not-owner": "not-owner";
46
+ "opted-out": "opted-out";
47
+ "out-of-range": "out-of-range";
48
+ rate: "rate";
49
+ undeclared: "undeclared";
50
+ }>;
51
+ export type DeviceHistoryRefusalReason = z.infer<typeof DeviceHistoryRefusalReasonSchema>;
52
+ declare const IngestResultSchema: z.ZodObject<{
53
+ accepted: z.ZodNumber;
54
+ refused: z.ZodReadonly<z.ZodArray<z.ZodObject<{
55
+ key: z.ZodString;
56
+ reason: z.ZodEnum<{
57
+ "ingest-mismatch": "ingest-mismatch";
58
+ "not-a-real-device": "not-a-real-device";
59
+ "not-owner": "not-owner";
60
+ "opted-out": "opted-out";
61
+ "out-of-range": "out-of-range";
62
+ rate: "rate";
63
+ undeclared: "undeclared";
64
+ }>;
65
+ count: z.ZodNumber;
66
+ }, z.core.$strip>>>;
67
+ }, z.core.$strip>;
68
+ export type DeviceHistoryIngestResult = z.infer<typeof IngestResultSchema>;
69
+ declare const SeriesInfoSchema: z.ZodObject<{
70
+ key: z.ZodString;
71
+ scope: z.ZodString;
72
+ kind: z.ZodEnum<{
73
+ boolean: "boolean";
74
+ counter: "counter";
75
+ gauge: "gauge";
76
+ }>;
77
+ unit: z.ZodNullable<z.ZodString>;
78
+ displayName: z.ZodString;
79
+ source: z.ZodEnum<{
80
+ addon: "addon";
81
+ cap: "cap";
82
+ }>;
83
+ firstTs: z.ZodNumber;
84
+ lastTs: z.ZodNumber;
85
+ }, z.core.$strip>;
86
+ export type DeviceHistorySeriesInfo = z.infer<typeof SeriesInfoSchema>;
87
+ declare const QueryPointSchema: z.ZodObject<{
88
+ t: z.ZodNumber;
89
+ samples: z.ZodNumber;
90
+ mean: z.ZodNullable<z.ZodNumber>;
91
+ twMean: z.ZodNullable<z.ZodNumber>;
92
+ min: z.ZodNumber;
93
+ max: z.ZodNumber;
94
+ last: z.ZodNullable<z.ZodNumber>;
95
+ }, z.core.$strip>;
96
+ export type DeviceHistoryQueryPoint = z.infer<typeof QueryPointSchema>;
97
+ /** Operator/diagnostic view: rows per tier, last runs, refusals and drops since boot. */
98
+ export declare const DeviceHistoryStatusSchema: z.ZodObject<{
99
+ startedAt: z.ZodNumber;
100
+ ready: z.ZodBoolean;
101
+ series: z.ZodNumber;
102
+ metrics: z.ZodNumber;
103
+ optedOutDevices: z.ZodNumber;
104
+ tiers: z.ZodReadonly<z.ZodArray<z.ZodObject<{
105
+ tier: z.ZodEnum<{
106
+ "1d": "1d";
107
+ "1h": "1h";
108
+ "5m": "5m";
109
+ raw: "raw";
110
+ }>;
111
+ rows: z.ZodNullable<z.ZodNumber>;
112
+ approxBytes: z.ZodNullable<z.ZodNumber>;
113
+ countedAt: z.ZodNullable<z.ZodNumber>;
114
+ }, z.core.$strip>>>;
115
+ capture: z.ZodObject<{
116
+ eventsSeen: z.ZodNumber;
117
+ pointsEmitted: z.ZodNumber;
118
+ pointsWritten: z.ZodNumber;
119
+ pointsDropped: z.ZodNumber;
120
+ bufferDepth: z.ZodNumber;
121
+ trailingEmitted: z.ZodNumber;
122
+ reconciledPoints: z.ZodNumber;
123
+ reconcileRuns: z.ZodNumber;
124
+ reconcileFailures: z.ZodNumber;
125
+ lastReconcileAt: z.ZodNullable<z.ZodNumber>;
126
+ lastFlushAt: z.ZodNullable<z.ZodNumber>;
127
+ flushFailures: z.ZodNumber;
128
+ skipped: z.ZodRecord<z.ZodString, z.ZodNumber>;
129
+ }, z.core.$strip>;
130
+ ingest: z.ZodObject<{
131
+ accepted: z.ZodNumber;
132
+ refused: z.ZodRecord<z.ZodString, z.ZodNumber>;
133
+ }, z.core.$strip>;
134
+ rollup: z.ZodObject<{
135
+ last5mAt: z.ZodNullable<z.ZodNumber>;
136
+ last1hAt: z.ZodNullable<z.ZodNumber>;
137
+ last1dAt: z.ZodNullable<z.ZodNumber>;
138
+ errors: z.ZodNumber;
139
+ dirty5m: z.ZodNumber;
140
+ dirty1h: z.ZodNumber;
141
+ dirty1d: z.ZodNumber;
142
+ }, z.core.$strip>;
143
+ retention: z.ZodObject<{
144
+ lastRunAt: z.ZodNullable<z.ZodNumber>;
145
+ deleted: z.ZodRecord<z.ZodString, z.ZodNumber>;
146
+ purgedSeries: z.ZodNumber;
147
+ }, z.core.$strip>;
148
+ directory: z.ZodObject<{
149
+ devices: z.ZodNumber;
150
+ lastRefreshAt: z.ZodNullable<z.ZodNumber>;
151
+ }, z.core.$strip>;
152
+ }, z.core.$strip>;
153
+ export type DeviceHistoryStatus = z.infer<typeof DeviceHistoryStatusSchema>;
154
+ export declare const deviceHistoryCapability: {
155
+ readonly name: 'device-history';
156
+ readonly scope: 'system';
157
+ readonly mode: 'singleton';
158
+ readonly methods: {
159
+ /**
160
+ * The series a DEVICE has, and their span. `deviceId` is a flat top-level field
161
+ * on purpose: the generated device selector (and so the scope gate) only sees
162
+ * top-level ids, and a nested `subject.deviceId` would let a principal limited
163
+ * to one device read another's history. Node series are the admin-only
164
+ * `listNodeSeries` / `queryNode`.
165
+ */
166
+ readonly listSeries: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
167
+ deviceId: z.ZodNumber;
168
+ }, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
169
+ key: z.ZodString;
170
+ scope: z.ZodString;
171
+ kind: z.ZodEnum<{
172
+ boolean: "boolean";
173
+ counter: "counter";
174
+ gauge: "gauge";
175
+ }>;
176
+ unit: z.ZodNullable<z.ZodString>;
177
+ displayName: z.ZodString;
178
+ source: z.ZodEnum<{
179
+ addon: "addon";
180
+ cap: "cap";
181
+ }>;
182
+ firstTs: z.ZodNumber;
183
+ lastTs: z.ZodNumber;
184
+ }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
185
+ readonly listNodeSeries: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
186
+ nodeId: z.ZodString;
187
+ }, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
188
+ key: z.ZodString;
189
+ scope: z.ZodString;
190
+ kind: z.ZodEnum<{
191
+ boolean: "boolean";
192
+ counter: "counter";
193
+ gauge: "gauge";
194
+ }>;
195
+ unit: z.ZodNullable<z.ZodString>;
196
+ displayName: z.ZodString;
197
+ source: z.ZodEnum<{
198
+ addon: "addon";
199
+ cap: "cap";
200
+ }>;
201
+ firstTs: z.ZodNumber;
202
+ lastTs: z.ZodNumber;
203
+ }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
204
+ /**
205
+ * One series (or every scope of it) at one resolution. `auto` picks the
206
+ * finest tier whose retention covers `from` and whose point count fits
207
+ * `maxPoints`; when even the coarsest tier does not fit, the newest
208
+ * `maxPoints` points are returned and `truncated` is true.
209
+ */
210
+ readonly query: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
211
+ key: z.ZodString;
212
+ scope: z.ZodOptional<z.ZodString>;
213
+ from: z.ZodNumber;
214
+ to: z.ZodNumber;
215
+ resolution: z.ZodDefault<z.ZodUnion<readonly [z.ZodEnum<{
216
+ "1d": "1d";
217
+ "1h": "1h";
218
+ "5m": "5m";
219
+ raw: "raw";
220
+ }>, z.ZodLiteral<"auto">]>>;
221
+ maxPoints: z.ZodDefault<z.ZodNumber>;
222
+ deviceId: z.ZodNumber;
223
+ }, z.core.$strip>, z.ZodObject<{
224
+ resolution: z.ZodEnum<{
225
+ "1d": "1d";
226
+ "1h": "1h";
227
+ "5m": "5m";
228
+ raw: "raw";
229
+ }>;
230
+ series: z.ZodReadonly<z.ZodArray<z.ZodObject<{
231
+ scope: z.ZodString;
232
+ before: z.ZodNullable<z.ZodObject<{
233
+ t: z.ZodNumber;
234
+ value: z.ZodNullable<z.ZodNumber>;
235
+ }, z.core.$strip>>;
236
+ points: z.ZodReadonly<z.ZodArray<z.ZodObject<{
237
+ t: z.ZodNumber;
238
+ samples: z.ZodNumber;
239
+ mean: z.ZodNullable<z.ZodNumber>;
240
+ twMean: z.ZodNullable<z.ZodNumber>;
241
+ min: z.ZodNumber;
242
+ max: z.ZodNumber;
243
+ last: z.ZodNullable<z.ZodNumber>;
244
+ }, z.core.$strip>>>;
245
+ }, z.core.$strip>>>;
246
+ truncated: z.ZodBoolean;
247
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
248
+ readonly queryNode: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
249
+ key: z.ZodString;
250
+ scope: z.ZodOptional<z.ZodString>;
251
+ from: z.ZodNumber;
252
+ to: z.ZodNumber;
253
+ resolution: z.ZodDefault<z.ZodUnion<readonly [z.ZodEnum<{
254
+ "1d": "1d";
255
+ "1h": "1h";
256
+ "5m": "5m";
257
+ raw: "raw";
258
+ }>, z.ZodLiteral<"auto">]>>;
259
+ maxPoints: z.ZodDefault<z.ZodNumber>;
260
+ nodeId: z.ZodString;
261
+ }, z.core.$strip>, z.ZodObject<{
262
+ resolution: z.ZodEnum<{
263
+ "1d": "1d";
264
+ "1h": "1h";
265
+ "5m": "5m";
266
+ raw: "raw";
267
+ }>;
268
+ series: z.ZodReadonly<z.ZodArray<z.ZodObject<{
269
+ scope: z.ZodString;
270
+ before: z.ZodNullable<z.ZodObject<{
271
+ t: z.ZodNumber;
272
+ value: z.ZodNullable<z.ZodNumber>;
273
+ }, z.core.$strip>>;
274
+ points: z.ZodReadonly<z.ZodArray<z.ZodObject<{
275
+ t: z.ZodNumber;
276
+ samples: z.ZodNumber;
277
+ mean: z.ZodNullable<z.ZodNumber>;
278
+ twMean: z.ZodNullable<z.ZodNumber>;
279
+ min: z.ZodNumber;
280
+ max: z.ZodNumber;
281
+ last: z.ZodNullable<z.ZodNumber>;
282
+ }, z.core.$strip>>>;
283
+ }, z.core.$strip>>>;
284
+ truncated: z.ZodBoolean;
285
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
286
+ /** Producer: declare (idempotent) a series key this addon owns: `addon:<callerAddonId>/<name>`. */
287
+ readonly declareSeries: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
288
+ name: z.ZodString;
289
+ subjectKind: z.ZodEnum<{
290
+ device: "device";
291
+ node: "node";
292
+ }>;
293
+ kind: z.ZodEnum<{
294
+ boolean: "boolean";
295
+ counter: "counter";
296
+ gauge: "gauge";
297
+ }>;
298
+ unit: z.ZodOptional<z.ZodString>;
299
+ displayName: z.ZodString;
300
+ ingest: z.ZodEnum<{
301
+ buckets: "buckets";
302
+ points: "points";
303
+ }>;
304
+ }, z.core.$strip>, z.ZodObject<{
305
+ key: z.ZodString;
306
+ }, z.core.$strip>, "mutation">;
307
+ /** Producer: points. Low rate: at most one per 10 s per series, sustained. */
308
+ readonly record: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
309
+ points: z.ZodArray<z.ZodObject<{
310
+ key: z.ZodString;
311
+ subject: z.ZodDiscriminatedUnion<[z.ZodObject<{
312
+ kind: z.ZodLiteral<"device">;
313
+ deviceId: z.ZodNumber;
314
+ }, z.core.$strip>, z.ZodObject<{
315
+ kind: z.ZodLiteral<"node">;
316
+ nodeId: z.ZodString;
317
+ }, z.core.$strip>], "kind">;
318
+ scope: z.ZodDefault<z.ZodString>;
319
+ ts: z.ZodNumber;
320
+ value: z.ZodNumber;
321
+ }, z.core.$strip>>;
322
+ }, z.core.$strip>, z.ZodObject<{
323
+ accepted: z.ZodNumber;
324
+ refused: z.ZodReadonly<z.ZodArray<z.ZodObject<{
325
+ key: z.ZodString;
326
+ reason: z.ZodEnum<{
327
+ "ingest-mismatch": "ingest-mismatch";
328
+ "not-a-real-device": "not-a-real-device";
329
+ "not-owner": "not-owner";
330
+ "opted-out": "opted-out";
331
+ "out-of-range": "out-of-range";
332
+ rate: "rate";
333
+ undeclared: "undeclared";
334
+ }>;
335
+ count: z.ZodNumber;
336
+ }, z.core.$strip>>>;
337
+ }, z.core.$strip>, "mutation">;
338
+ /** Producer: CLOSED five-minute buckets. Idempotent upsert keyed (series, bucketStart). */
339
+ readonly recordBuckets: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
340
+ buckets: z.ZodArray<z.ZodObject<{
341
+ key: z.ZodString;
342
+ subject: z.ZodDiscriminatedUnion<[z.ZodObject<{
343
+ kind: z.ZodLiteral<"device">;
344
+ deviceId: z.ZodNumber;
345
+ }, z.core.$strip>, z.ZodObject<{
346
+ kind: z.ZodLiteral<"node">;
347
+ nodeId: z.ZodString;
348
+ }, z.core.$strip>], "kind">;
349
+ scope: z.ZodDefault<z.ZodString>;
350
+ bucketStart: z.ZodNumber;
351
+ samples: z.ZodNumber;
352
+ sum: z.ZodNumber;
353
+ min: z.ZodNumber;
354
+ max: z.ZodNumber;
355
+ last: z.ZodNullable<z.ZodNumber>;
356
+ lastTs: z.ZodNullable<z.ZodNumber>;
357
+ }, z.core.$strip>>;
358
+ }, z.core.$strip>, z.ZodObject<{
359
+ accepted: z.ZodNumber;
360
+ refused: z.ZodReadonly<z.ZodArray<z.ZodObject<{
361
+ key: z.ZodString;
362
+ reason: z.ZodEnum<{
363
+ "ingest-mismatch": "ingest-mismatch";
364
+ "not-a-real-device": "not-a-real-device";
365
+ "not-owner": "not-owner";
366
+ "opted-out": "opted-out";
367
+ "out-of-range": "out-of-range";
368
+ rate: "rate";
369
+ undeclared: "undeclared";
370
+ }>;
371
+ count: z.ZodNumber;
372
+ }, z.core.$strip>>>;
373
+ }, z.core.$strip>, "mutation">;
374
+ /** Per-device opt-out. This addon IS the authority: the switch stores nothing elsewhere (D62). */
375
+ readonly getDeviceEnabled: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
376
+ deviceId: z.ZodNumber;
377
+ }, z.core.$strip>, z.ZodObject<{
378
+ enabled: z.ZodBoolean;
379
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
380
+ readonly setDeviceEnabled: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
381
+ deviceId: z.ZodNumber;
382
+ enabled: z.ZodBoolean;
383
+ }, z.core.$strip>, z.ZodObject<{
384
+ enabled: z.ZodBoolean;
385
+ }, z.core.$strip>, "mutation">;
386
+ readonly getStatus: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{}, z.core.$strip>, z.ZodObject<{
387
+ startedAt: z.ZodNumber;
388
+ ready: z.ZodBoolean;
389
+ series: z.ZodNumber;
390
+ metrics: z.ZodNumber;
391
+ optedOutDevices: z.ZodNumber;
392
+ tiers: z.ZodReadonly<z.ZodArray<z.ZodObject<{
393
+ tier: z.ZodEnum<{
394
+ "1d": "1d";
395
+ "1h": "1h";
396
+ "5m": "5m";
397
+ raw: "raw";
398
+ }>;
399
+ rows: z.ZodNullable<z.ZodNumber>;
400
+ approxBytes: z.ZodNullable<z.ZodNumber>;
401
+ countedAt: z.ZodNullable<z.ZodNumber>;
402
+ }, z.core.$strip>>>;
403
+ capture: z.ZodObject<{
404
+ eventsSeen: z.ZodNumber;
405
+ pointsEmitted: z.ZodNumber;
406
+ pointsWritten: z.ZodNumber;
407
+ pointsDropped: z.ZodNumber;
408
+ bufferDepth: z.ZodNumber;
409
+ trailingEmitted: z.ZodNumber;
410
+ reconciledPoints: z.ZodNumber;
411
+ reconcileRuns: z.ZodNumber;
412
+ reconcileFailures: z.ZodNumber;
413
+ lastReconcileAt: z.ZodNullable<z.ZodNumber>;
414
+ lastFlushAt: z.ZodNullable<z.ZodNumber>;
415
+ flushFailures: z.ZodNumber;
416
+ skipped: z.ZodRecord<z.ZodString, z.ZodNumber>;
417
+ }, z.core.$strip>;
418
+ ingest: z.ZodObject<{
419
+ accepted: z.ZodNumber;
420
+ refused: z.ZodRecord<z.ZodString, z.ZodNumber>;
421
+ }, z.core.$strip>;
422
+ rollup: z.ZodObject<{
423
+ last5mAt: z.ZodNullable<z.ZodNumber>;
424
+ last1hAt: z.ZodNullable<z.ZodNumber>;
425
+ last1dAt: z.ZodNullable<z.ZodNumber>;
426
+ errors: z.ZodNumber;
427
+ dirty5m: z.ZodNumber;
428
+ dirty1h: z.ZodNumber;
429
+ dirty1d: z.ZodNumber;
430
+ }, z.core.$strip>;
431
+ retention: z.ZodObject<{
432
+ lastRunAt: z.ZodNullable<z.ZodNumber>;
433
+ deleted: z.ZodRecord<z.ZodString, z.ZodNumber>;
434
+ purgedSeries: z.ZodNumber;
435
+ }, z.core.$strip>;
436
+ directory: z.ZodObject<{
437
+ devices: z.ZodNumber;
438
+ lastRefreshAt: z.ZodNullable<z.ZodNumber>;
439
+ }, z.core.$strip>;
440
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
441
+ };
442
+ };
443
+ export type IDeviceHistoryProvider = InferProvider<typeof deviceHistoryCapability>;
444
+ export {};
@@ -147,3 +147,20 @@ export declare const HUB_MDNS_TXT_KEYS: {
147
147
  readonly url: 'url';
148
148
  };
149
149
  export declare const HUB_MDNS_ROLE = "hub";
150
+ /**
151
+ * How a hub finds agents to pair (D857): every agent publishes ONE mDNS service for its API
152
+ * port, paired or not. The TXT record carries only public facts. Finding an agent grants
153
+ * nothing: pairing still needs the six-digit code confirmed on both screens.
154
+ */
155
+ export declare const AGENT_MDNS_SERVICE_TYPE = "camstack-agent";
156
+ /** The fully-qualified name a hub browses for. */
157
+ export declare const AGENT_MDNS_QUERY_NAME = "_camstack-agent._tcp.local";
158
+ /** The TXT keys of the agent advertisement. Every value is public. */
159
+ export declare const AGENT_MDNS_TXT_KEYS: {
160
+ readonly nodeId: 'nodeId';
161
+ readonly version: 'version';
162
+ /** `unpaired` | `pending` | `paired`. */
163
+ readonly state: 'state';
164
+ /** First 16 hex chars of the SHA-256 of the agent's mesh leaf; present once paired. */
165
+ readonly keyFingerprint: 'fp';
166
+ };
@@ -46,6 +46,7 @@ export { CustomModelDescriptorSchema, customModelRegistryCapability, ImportModel
46
46
  export { type DataStoreEngineInfo, dataStoreProviderCapability, EngineInfoSchema as DataStoreEngineInfoSchema, type IDataStoreProvider, } from './data-store-provider.cap.js';
47
47
  export { type ArchiveSqliteSnapshot, ArchiveSqliteSnapshotSchema, DATABASE_SNAPSHOT_PARTIAL_SUFFIX, DATABASE_SNAPSHOT_SUFFIX, DATABASE_SNAPSHOT_TIMEOUT_MS, type DatabaseSnapshotRequest, DatabaseSnapshotRequestSchema, type DatabaseSnapshotResult, DatabaseSnapshotResultSchema, type DatabaseSnapshotTable, DatabaseSnapshotTableSchema, type DatabaseSnapshotTargets, DatabaseSnapshotTargetsSchema, type DatabaseSnapshotWritten, DatabaseSnapshotWrittenSchema, databaseSnapshotCapability, type IDatabaseSnapshotProvider, } from './database-snapshot.cap.js';
48
48
  export { type IKeychainProvider, KEYCHAIN_MAX_REFS_PER_CALL, type KeychainResolveEntry, KeychainResolveEntrySchema, type KeychainResolveResult, KeychainResolveResultSchema, type KeychainSecretMeta, KeychainSecretMetaSchema, type KeychainState, KeychainStateSchema, type KeychainUnavailableReason, KeychainUnavailableReasonSchema, keychainCapability, } from './keychain.cap.js';
49
+ export { type DeviceHistoryStatus, DeviceHistoryStatusSchema, type DeviceHistoryIngestResult, type DeviceHistoryKind, DeviceHistoryKindSchema, type DeviceHistoryQueryPoint, type DeviceHistoryRefusalReason, DeviceHistoryRefusalReasonSchema, type DeviceHistoryResolution, DeviceHistoryResolutionSchema, type DeviceHistorySeriesInfo, type DeviceHistorySubject, DeviceHistorySubjectSchema, type IDeviceHistoryProvider, deviceHistoryCapability, } from './device-history.cap.js';
49
50
  export { type DeviceCaStatus, DeviceCaStatusSchema, type DeviceCertificateSettings, DeviceCertificateSettingsSchema, deviceCredentialsCapability, type IDeviceCredentialsProvider, } from './device-credentials.cap.js';
50
51
  export { type HttpsLeafInfo, HttpsLeafInfoSchema, type INodeCertificatesProvider, type MeshLeafInfo, MeshLeafInfoSchema, type NodeHttpsState, NodeHttpsStateSchema, nodeCertificatesCapability, } from './node-certificates.cap.js';
51
52
  export { type IKeychainAdminProvider, KEYCHAIN_RESET_CONFIRMATION, type KeychainAdminSecret, KeychainAdminSecretSchema, type KeychainAuditAction, KeychainAuditActionSchema, type KeychainAuditEntry, KeychainAuditEntrySchema, type KeychainKeySource, type KeychainKeySourceKind, KeychainKeySourceKindSchema, KeychainKeySourceSchema, KEYCHAIN_RESET_TRIGGER_ACTOR, type KeychainResetRecord, KeychainResetRecordSchema, type KeychainSecretUsage, KeychainSecretUsageSchema, type KeychainStatus, KeychainStatusSchema, keychainAdminCapability, type SystemHeldSecretName, SystemHeldSecretNameSchema, } from './keychain-admin.cap.js';
@@ -68,7 +69,7 @@ export { EMBEDDING_MODEL_FAILED, EMBEDDING_REQUIREMENTS_FAILED, EMBEDDING_REQUIR
68
69
  export type { FailureContribution, IFailureContributionProvider, } from './failure-contribution.cap.js';
69
70
  export { FailureContributionSchema, FailureReasonCountSchema, failureContributionCapability, } from './failure-contribution.cap.js';
70
71
  export { filesystemBrowseCapability, type IFilesystemBrowseProvider, } from './filesystem-browse.cap.js';
71
- export { AUTOMATIC_HUB_ADDRESS_FLAGS, checkRoleAddress, HUB_ADDRESS_ROLES, type HubAddressCheck, type HubAddressFlags, type HubAddressRole, type HubAddressRoleResolution, type HubAddressRoles, type HubAddressSource, type HubAppConnectionsResolution, HUB_MDNS_QUERY_NAME, HUB_MDNS_ROLE, HUB_MDNS_SERVICE_TYPE, HUB_MDNS_TXT_KEYS, hubAddressHostname, isDefaultAppConnectionEndpoint, isSingleHubAddressRole, PUBLIC_ENDPOINT_HTTP_REASON, resolveAppConnections, resolveHubAddressRoles, resolveInternalAddress, resolveNotificationTapAddress, resolvePublicEndpoint, SINGLE_HUB_ADDRESS_ROLES, type SingleHubAddressRole, selectAppConnectionEndpoints, validateCustomAddress, } from './hub-address.js';
72
+ export { AUTOMATIC_HUB_ADDRESS_FLAGS, checkRoleAddress, HUB_ADDRESS_ROLES, type HubAddressCheck, type HubAddressFlags, type HubAddressRole, type HubAddressRoleResolution, type HubAddressRoles, type HubAddressSource, type HubAppConnectionsResolution, HUB_MDNS_QUERY_NAME, HUB_MDNS_ROLE, HUB_MDNS_SERVICE_TYPE, HUB_MDNS_TXT_KEYS, AGENT_MDNS_QUERY_NAME, AGENT_MDNS_SERVICE_TYPE, AGENT_MDNS_TXT_KEYS, hubAddressHostname, isDefaultAppConnectionEndpoint, isSingleHubAddressRole, PUBLIC_ENDPOINT_HTTP_REASON, resolveAppConnections, resolveHubAddressRoles, resolveInternalAddress, resolveNotificationTapAddress, resolvePublicEndpoint, SINGLE_HUB_ADDRESS_ROLES, type SingleHubAddressRole, selectAppConnectionEndpoints, validateCustomAddress, } from './hub-address.js';
72
73
  export { type HfModelResolution, HfModelResolutionSchema, type ILlmProvider, type LlmDefault, LlmDefaultSchema, type LlmDefaultSelector, LlmDefaultSelectorSchema, type LlmProfile, type LlmProfileKind, type LlmProfileKindDescriptor, LlmProfileKindDescriptorSchema, LlmProfileKindSchema, LlmProfileSchema, type LlmRuntimeNode, LlmRuntimeNodeSchema, type LlmUsageRollup, LlmUsageRollupSchema, llmCapability, type ManagedModelCatalogEntry, ManagedModelCatalogEntrySchema, } from './llm.cap.js';
73
74
  export { type AppleFmAvailability, AppleFmAvailabilitySchema, type AppleFmUnavailableReason, AppleFmUnavailableReasonSchema, type ILlmRuntimeProvider, type LlmDownloadProgress, LlmDownloadProgressSchema, type LlmNodeModel, LlmNodeModelSchema, type LlmRuntimeAppleCompleteInput, LlmRuntimeAppleCompleteInputSchema, type LlmRuntimeCancelInput, LlmRuntimeCancelInputSchema, type LlmRuntimeCompleteInput, LlmRuntimeCompleteInputSchema, type LlmRuntimeDiskUsage, LlmRuntimeDiskUsageSchema, type LlmRuntimeStatus, LlmRuntimeStatusSchema, llmRuntimeCapability, type ManagedModelExtraFile, ManagedModelExtraFileSchema, type ManagedModelRef, ManagedModelRefSchema, type ManagedRuntimeConfig, ManagedRuntimeConfigSchema, } from './llm-runtime.cap.js';
74
75
  export { type LlmErrorCode, LlmErrorCodeSchema, type LlmGenerateBaseInput, LlmGenerateBaseInputSchema, type LlmGenerateErr, LlmGenerateErrSchema, type LlmGenerateOk, LlmGenerateOkSchema, type LlmGenerateResult, LlmGenerateResultSchema, type LlmImage, LlmImageSchema, type LlmRefusalSource, LlmRefusalSourceSchema, type LlmRetryPolicy, LlmRetryPolicySchema, LlmTimeoutDefaults, type LlmUsage, LlmUsageSchema, } from './llm-shared.js';
@@ -286,6 +287,7 @@ import type { coverCapability } from './cover.cap.js';
286
287
  import type { customModelRegistryCapability } from './custom-model-registry.cap.js';
287
288
  import type { dataStoreProviderCapability } from './data-store-provider.cap.js';
288
289
  import type { databaseSnapshotCapability } from './database-snapshot.cap.js';
290
+ import type { deviceHistoryCapability } from './device-history.cap.js';
289
291
  import type { keychainCapability } from './keychain.cap.js';
290
292
  import type { keychainAdminCapability } from './keychain-admin.cap.js';
291
293
  import type { deviceCredentialsCapability } from './device-credentials.cap.js';
@@ -413,6 +415,6 @@ import type { trainingProviderCapability } from './training-provider.cap.js';
413
415
  import type { zoneAnalyticsCapability } from './zone-analytics.cap.js';
414
416
  import type { zoneRulesCapability } from './zone-rules.cap.js';
415
417
  import type { zonesCapability } from './zones.cap.js';
416
- type AnyCapability = typeof streamSignalsCapability | typeof addonSettingsCapability | typeof alertsCapability | typeof storageCapability | typeof storageMigrationCapability | typeof storageProviderCapability | typeof storageEvictableCapability | typeof storageOccupancyCapability | typeof filesystemBrowseCapability | typeof backupCapability | typeof terminalSessionCapability | typeof settingsStoreCapability | typeof dataStoreProviderCapability | typeof databaseSnapshotCapability | typeof keychainCapability | typeof keychainAdminCapability | typeof deviceCredentialsCapability | typeof nodeCertificatesCapability | typeof logChannelsCapability | typeof logDestinationCapability | typeof loadContributionCapability | typeof failureContributionCapability | typeof adminUiCapability | typeof viewerUiCapability | typeof ssoBridgeCapability | typeof userPasskeysCapability | typeof smtpProviderCapability | typeof mqttBrokerCapability | typeof brokerCapability | typeof deviceAdoptionCapability | typeof deviceAdminLinkCapability | typeof deviceExportCapability | typeof addonPagesCapability | typeof addonPagesSourceCapability | typeof addonWidgetsCapability | typeof addonWidgetsSourceCapability | typeof customModelRegistryCapability | typeof modelDistributorCapability | typeof modelConvertCapability | typeof addonRoutesCapability | typeof streamBrokerCapability | typeof decoderCapability | typeof webrtcSessionCapability | typeof cameraStreamsCapability | typeof calendarSourceCapability | typeof calendarsCapability | typeof motionDetectionCapability | typeof pipelineExecutorCapability | typeof detectionPipelineCapability | typeof cameraPipelineConfigCapability | typeof pipelineRunnerCapability | typeof pipelineOrchestratorCapability | typeof audioAnalyzerCapability | typeof audioAnalysisCapability | typeof audioCodecCapability | typeof embeddingEncoderCapability | typeof vectorStoreCapability | typeof deviceProviderCapability | typeof deviceManagerCapability | typeof deviceStateCapability | typeof authProviderCapability | typeof loginMethodCapability | typeof networkAccessCapability | typeof turnProviderCapability | typeof snapshotCapability | typeof llmCapability | typeof llmRuntimeCapability | typeof notificationOutputCapability | typeof composerCapability | typeof coreBlocksCapability | typeof notificationRulesCapability | typeof pipelineAnalyticsCapability | typeof metricsProviderCapability | typeof ptzCapability | typeof ptzAutotrackCapability | typeof navigationCapability | typeof consumablesCapability | typeof connectionTestCapability | typeof rebootCapability | typeof deviceDiscoveryCapability | typeof brightnessCapability | typeof colorCapability | typeof climateControlCapability | typeof coverCapability | typeof valveCapability | typeof humidifierCapability | typeof waterHeaterCapability | typeof weatherCapability | typeof imageCapability | typeof lockControlCapability | typeof vacuumControlCapability | typeof petFeederCapability | typeof lawnMowerControlCapability | typeof fanControlCapability | typeof controlCapability | typeof notifierCapability | typeof mediaPlayerCapability | typeof alarmPanelCapability | typeof presenceCapability | typeof scriptRunnerCapability | typeof automationControlCapability | typeof motionTriggerCapability | typeof zonesCapability | typeof zoneRulesCapability | typeof trainingCapability | typeof trainingProviderCapability | typeof zoneAnalyticsCapability | typeof audioMetricsCapability | typeof motionCapability | typeof contactCapability | typeof floodCapability | typeof smokeCapability | typeof carbonMonoxideCapability | typeof gasCapability | typeof tamperCapability | typeof vibrationCapability | typeof connectivityCapability | typeof binaryCapability | typeof temperatureSensorCapability | typeof humiditySensorCapability | typeof ambientLightSensorCapability | typeof pressureSensorCapability | typeof powerMeterCapability | typeof airQualitySensorCapability | typeof numericSensorCapability | typeof enumSensorCapability | typeof recordingCapability | typeof recordingArchiveCapability | typeof recordingExportCapability | typeof recordingSignalCapability | typeof deviceOpsCapability | typeof platformProbeCapability | typeof localNetworkCapability | typeof meshNetworkCapability | typeof userManagementCapability | typeof systemCapability | typeof networkQualityCapability | typeof toastCapability | typeof nodesCapability | typeof serverManagementCapability | typeof integrationsCapability | typeof addonsCapability | typeof oauthIntegrationCapability | typeof oidcConnectionsCapability | typeof streamParamsCapability | typeof streamCatalogCapability | typeof motionZonesCapability | typeof cameraGridLayoutCapability | typeof sceneMonitorCapability | typeof privacyMaskCapability | typeof dayNightCapability | typeof recordingOnboardCapability | typeof imageSettingsCapability | typeof osdCapability | typeof osdManagerCapability | typeof accessoriesCapability | typeof batteryCapability | typeof networkLinkCapability | typeof buttonCapability | typeof cameraCredentialsCapability | typeof deviceStatusCapability | typeof doorbellCapability | typeof eventEmitterCapability | typeof faceGalleryCapability | typeof featureProbeCapability | typeof intercomCapability | typeof nativeObjectDetectionCapability | typeof plateGalleryCapability | typeof switchCapability | typeof updateCapability | typeof videoclipsCapability | typeof deviceExtensionCapability;
418
+ type AnyCapability = typeof streamSignalsCapability | typeof addonSettingsCapability | typeof alertsCapability | typeof storageCapability | typeof storageMigrationCapability | typeof storageProviderCapability | typeof storageEvictableCapability | typeof storageOccupancyCapability | typeof filesystemBrowseCapability | typeof backupCapability | typeof terminalSessionCapability | typeof settingsStoreCapability | typeof dataStoreProviderCapability | typeof databaseSnapshotCapability | typeof deviceHistoryCapability | typeof keychainCapability | typeof keychainAdminCapability | typeof deviceCredentialsCapability | typeof nodeCertificatesCapability | typeof logChannelsCapability | typeof logDestinationCapability | typeof loadContributionCapability | typeof failureContributionCapability | typeof adminUiCapability | typeof viewerUiCapability | typeof ssoBridgeCapability | typeof userPasskeysCapability | typeof smtpProviderCapability | typeof mqttBrokerCapability | typeof brokerCapability | typeof deviceAdoptionCapability | typeof deviceAdminLinkCapability | typeof deviceExportCapability | typeof addonPagesCapability | typeof addonPagesSourceCapability | typeof addonWidgetsCapability | typeof addonWidgetsSourceCapability | typeof customModelRegistryCapability | typeof modelDistributorCapability | typeof modelConvertCapability | typeof addonRoutesCapability | typeof streamBrokerCapability | typeof decoderCapability | typeof webrtcSessionCapability | typeof cameraStreamsCapability | typeof calendarSourceCapability | typeof calendarsCapability | typeof motionDetectionCapability | typeof pipelineExecutorCapability | typeof detectionPipelineCapability | typeof cameraPipelineConfigCapability | typeof pipelineRunnerCapability | typeof pipelineOrchestratorCapability | typeof audioAnalyzerCapability | typeof audioAnalysisCapability | typeof audioCodecCapability | typeof embeddingEncoderCapability | typeof vectorStoreCapability | typeof deviceProviderCapability | typeof deviceManagerCapability | typeof deviceStateCapability | typeof authProviderCapability | typeof loginMethodCapability | typeof networkAccessCapability | typeof turnProviderCapability | typeof snapshotCapability | typeof llmCapability | typeof llmRuntimeCapability | typeof notificationOutputCapability | typeof composerCapability | typeof coreBlocksCapability | typeof notificationRulesCapability | typeof pipelineAnalyticsCapability | typeof metricsProviderCapability | typeof ptzCapability | typeof ptzAutotrackCapability | typeof navigationCapability | typeof consumablesCapability | typeof connectionTestCapability | typeof rebootCapability | typeof deviceDiscoveryCapability | typeof brightnessCapability | typeof colorCapability | typeof climateControlCapability | typeof coverCapability | typeof valveCapability | typeof humidifierCapability | typeof waterHeaterCapability | typeof weatherCapability | typeof imageCapability | typeof lockControlCapability | typeof vacuumControlCapability | typeof petFeederCapability | typeof lawnMowerControlCapability | typeof fanControlCapability | typeof controlCapability | typeof notifierCapability | typeof mediaPlayerCapability | typeof alarmPanelCapability | typeof presenceCapability | typeof scriptRunnerCapability | typeof automationControlCapability | typeof motionTriggerCapability | typeof zonesCapability | typeof zoneRulesCapability | typeof trainingCapability | typeof trainingProviderCapability | typeof zoneAnalyticsCapability | typeof audioMetricsCapability | typeof motionCapability | typeof contactCapability | typeof floodCapability | typeof smokeCapability | typeof carbonMonoxideCapability | typeof gasCapability | typeof tamperCapability | typeof vibrationCapability | typeof connectivityCapability | typeof binaryCapability | typeof temperatureSensorCapability | typeof humiditySensorCapability | typeof ambientLightSensorCapability | typeof pressureSensorCapability | typeof powerMeterCapability | typeof airQualitySensorCapability | typeof numericSensorCapability | typeof enumSensorCapability | typeof recordingCapability | typeof recordingArchiveCapability | typeof recordingExportCapability | typeof recordingSignalCapability | typeof deviceOpsCapability | typeof platformProbeCapability | typeof localNetworkCapability | typeof meshNetworkCapability | typeof userManagementCapability | typeof systemCapability | typeof networkQualityCapability | typeof toastCapability | typeof nodesCapability | typeof serverManagementCapability | typeof integrationsCapability | typeof addonsCapability | typeof oauthIntegrationCapability | typeof oidcConnectionsCapability | typeof streamParamsCapability | typeof streamCatalogCapability | typeof motionZonesCapability | typeof cameraGridLayoutCapability | typeof sceneMonitorCapability | typeof privacyMaskCapability | typeof dayNightCapability | typeof recordingOnboardCapability | typeof imageSettingsCapability | typeof osdCapability | typeof osdManagerCapability | typeof accessoriesCapability | typeof batteryCapability | typeof networkLinkCapability | typeof buttonCapability | typeof cameraCredentialsCapability | typeof deviceStatusCapability | typeof doorbellCapability | typeof eventEmitterCapability | typeof faceGalleryCapability | typeof featureProbeCapability | typeof intercomCapability | typeof nativeObjectDetectionCapability | typeof plateGalleryCapability | typeof switchCapability | typeof updateCapability | typeof videoclipsCapability | typeof deviceExtensionCapability;
417
419
  export type CapabilityName = AnyCapability['name'];
418
420
  export type ITypedReadinessRegistry = IReadinessRegistry<CapabilityName>;
@@ -108,6 +108,15 @@ export declare const nodeCertificatesCapability: {
108
108
  addresses: z.ZodArray<z.ZodString>;
109
109
  pinnedCaFingerprintSha256: z.ZodNullable<z.ZodString>;
110
110
  }, z.core.$strip>, "mutation">;
111
+ /**
112
+ * The hub unpairs this node (D857): it erases its mesh material, goes back to the
113
+ * unpaired state and advertises itself again. The call is answered first; the wire
114
+ * goes down right after, so the hub revokes the node's certificates BEFORE this
115
+ * connection drops, never after.
116
+ */
117
+ readonly forgetHub: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{}, z.core.$strip>, z.ZodObject<{
118
+ ok: z.ZodLiteral<true>;
119
+ }, z.core.$strip>, "mutation">;
111
120
  /** Install the hub-signed HTTPS leaf and hot-swap the serving context (no restart). */
112
121
  readonly installHttpsCertificate: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
113
122
  certPem: z.ZodString;
package/dist/client.js CHANGED
@@ -26470,6 +26470,12 @@ function createDeviceProxy(api, binding, opts) {
26470
26470
  getDeviceLiveContribution: (input) => dispatchSystem("deviceExport", "getDeviceLiveContribution", "query", input),
26471
26471
  applyDeviceSettingsPatch: (input) => dispatchSystem("deviceExport", "applyDeviceSettingsPatch", "mutation", input)
26472
26472
  };
26473
+ const deviceHistoryInterface = {
26474
+ listSeries: (input) => dispatchSystem("deviceHistory", "listSeries", "query", input),
26475
+ query: (input) => dispatchSystem("deviceHistory", "query", "query", input),
26476
+ getDeviceEnabled: (input) => dispatchSystem("deviceHistory", "getDeviceEnabled", "query", input),
26477
+ setDeviceEnabled: (input) => dispatchSystem("deviceHistory", "setDeviceEnabled", "mutation", input)
26478
+ };
26473
26479
  const deviceManagerInterface = {
26474
26480
  loadConfig: (input) => dispatchSystem("deviceManager", "loadConfig", "query", input),
26475
26481
  loadRuntimeState: (input) => dispatchSystem("deviceManager", "loadRuntimeState", "query", input),
@@ -26781,6 +26787,7 @@ function createDeviceProxy(api, binding, opts) {
26781
26787
  audioAnalyzer: audioAnalyzerInterface,
26782
26788
  deviceAdoption: deviceAdoptionInterface,
26783
26789
  deviceExport: deviceExportInterface,
26790
+ deviceHistory: deviceHistoryInterface,
26784
26791
  deviceManager: deviceManagerInterface,
26785
26792
  deviceState: deviceStateInterface,
26786
26793
  faceGallery: faceGalleryInterface,
@@ -27663,6 +27670,14 @@ function createSystemProxy(api) {
27663
27670
  exposeDevice: (input) => dispatch("deviceExport", "exposeDevice", "mutation", input),
27664
27671
  unexposeDevice: (input) => dispatch("deviceExport", "unexposeDevice", "mutation", input)
27665
27672
  },
27673
+ deviceHistory: {
27674
+ listNodeSeries: (input) => dispatch("deviceHistory", "listNodeSeries", "query", input),
27675
+ queryNode: (input) => dispatch("deviceHistory", "queryNode", "query", input),
27676
+ declareSeries: (input) => dispatch("deviceHistory", "declareSeries", "mutation", input),
27677
+ record: (input) => dispatch("deviceHistory", "record", "mutation", input),
27678
+ recordBuckets: (input) => dispatch("deviceHistory", "recordBuckets", "mutation", input),
27679
+ getStatus: (input) => dispatch("deviceHistory", "getStatus", "query", input)
27680
+ },
27666
27681
  deviceManager: {
27667
27682
  allocateDeviceId: (input) => dispatch("deviceManager", "allocateDeviceId", "mutation", input),
27668
27683
  migrateDevice: (input) => dispatch("deviceManager", "migrateDevice", "mutation", input),