@camstack/types 1.2.418 → 1.2.419
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 +2 -2
- package/dist/addon.mjs +2 -2
- package/dist/capabilities/addons.cap.d.ts +67 -1
- package/dist/capabilities/color.cap.d.ts +1 -0
- package/dist/capabilities/composer.cap.d.ts +3 -0
- package/dist/capabilities/core-blocks.cap.d.ts +21 -0
- package/dist/capabilities/group-commands.cap.d.ts +49 -0
- package/dist/capabilities/group-status.cap.d.ts +1 -1
- package/dist/capabilities/index.d.ts +4 -2
- package/dist/capabilities/notification-rules.cap.d.ts +46 -0
- package/dist/capabilities/osd-manager.cap.d.ts +12 -0
- package/dist/client.js +34 -5
- package/dist/client.mjs +34 -5
- package/dist/composition/composition.d.ts +1 -0
- package/dist/composition/helpers/actuator.d.ts +58 -0
- package/dist/composition/helpers/catalog.d.ts +7 -2
- package/dist/composition/helpers/index.d.ts +2 -1
- package/dist/composition/helpers/spec.d.ts +6 -1
- package/dist/{composition-B85l9j1M.mjs → composition-OhpuespA.mjs} +10 -3
- package/dist/{composition-OJKOJJD-.js → composition-re1aezX9.js} +21 -2
- package/dist/device/cap-vocabulary/entries/sensors.d.ts +1 -1
- package/dist/enums/event-category.d.ts +8 -0
- package/dist/enums.js +1 -1
- package/dist/enums.mjs +1 -1
- package/dist/{event-category-DXZ3f9Q5.js → event-category-Ave2VSxY.js} +8 -0
- package/dist/{event-category-DHXxB8t9.mjs → event-category-CT-hz5Rb.mjs} +8 -0
- package/dist/generated/addon-api.d.ts +21 -0
- package/dist/generated/cap-status-types.d.ts +3 -1
- package/dist/generated/capability-router-map.d.ts +5 -2
- package/dist/generated/device-local-state.d.ts +3 -0
- package/dist/generated/device-proxy.d.ts +3 -0
- package/dist/generated/device-scoped-caps.d.ts +1 -1
- package/dist/generated/history-catalog.d.ts +1 -1
- package/dist/generated/method-access-map.d.ts +1 -1
- package/dist/generated/method-device-selectors.d.ts +1 -1
- package/dist/generated/runtime-state-durability.d.ts +1 -1
- package/dist/generated/system-proxy.d.ts +1 -1
- package/dist/index.js +341 -19
- package/dist/index.mjs +328 -20
- package/dist/interfaces/event-bus.d.ts +15 -0
- package/dist/node.js +1 -1
- package/dist/node.mjs +1 -1
- package/dist/{sleep-7Gw3GJ4n.js → sleep-YJ6FVsUu.js} +8 -2
- package/dist/{sleep-B81gwQuR.mjs → sleep-bykKrTgu.mjs} +8 -2
- package/package.json +1 -1
|
@@ -2193,7 +2193,9 @@ var GROUP_TEMPLATE_IDS = [
|
|
|
2193
2193
|
"leak",
|
|
2194
2194
|
"smoke",
|
|
2195
2195
|
"occupancy",
|
|
2196
|
-
"binary"
|
|
2196
|
+
"binary",
|
|
2197
|
+
"switch",
|
|
2198
|
+
"light"
|
|
2197
2199
|
];
|
|
2198
2200
|
var NUMERIC_AGGREGATES = [
|
|
2199
2201
|
"mean",
|
|
@@ -2203,6 +2205,8 @@ var NUMERIC_AGGREGATES = [
|
|
|
2203
2205
|
"sum"
|
|
2204
2206
|
];
|
|
2205
2207
|
var BINARY_AGGREGATES = ["any", "all"];
|
|
2208
|
+
/** How an actuator group decides it is on. Unknown members never count as off. */
|
|
2209
|
+
var ACTIVE_CRITERIA = ["at-least-one", "all"];
|
|
2206
2210
|
var AGGREGATE_REDUCERS = [
|
|
2207
2211
|
"mean",
|
|
2208
2212
|
"median",
|
|
@@ -2214,6 +2218,7 @@ var AGGREGATE_REDUCERS = [
|
|
|
2214
2218
|
];
|
|
2215
2219
|
var GroupTemplateIdSchema = z.enum(GROUP_TEMPLATE_IDS);
|
|
2216
2220
|
var AggregateReducerSchema = z.enum(AGGREGATE_REDUCERS);
|
|
2221
|
+
var ActiveCriterionSchema = z.enum(ACTIVE_CRITERIA);
|
|
2217
2222
|
/** One member. The field is stored so occupancy can name motion or binary. */
|
|
2218
2223
|
var HelperMemberSchema = z.object({
|
|
2219
2224
|
source: CompositionSourceRefSchema,
|
|
@@ -2228,7 +2233,9 @@ var GroupHelperSpecSchema = z.object({
|
|
|
2228
2233
|
kind: z.literal("group"),
|
|
2229
2234
|
templateId: GroupTemplateIdSchema,
|
|
2230
2235
|
aggregate: AggregateReducerSchema,
|
|
2231
|
-
members: z.array(HelperMemberSchema).min(1).max(64)
|
|
2236
|
+
members: z.array(HelperMemberSchema).min(1).max(64),
|
|
2237
|
+
/** Actuator groups only. Readings leave this unset. */
|
|
2238
|
+
active: ActiveCriterionSchema.optional()
|
|
2232
2239
|
});
|
|
2233
2240
|
var HelperSpecSchema = z.discriminatedUnion("kind", [GroupHelperSpecSchema]);
|
|
2234
2241
|
//#endregion
|
|
@@ -2490,4 +2497,4 @@ function featureSources(feature) {
|
|
|
2490
2497
|
return featureFieldEntries(feature).map((e) => e.source);
|
|
2491
2498
|
}
|
|
2492
2499
|
//#endregion
|
|
2493
|
-
export {
|
|
2500
|
+
export { createStatefulExpressionMemory as $, pickVideoEncoder as $t, compositionFeatureEnabled as A, SOURCE_DEVICE_TYPES as At, ActiveCriterionSchema as B, getFfmpegArtifact as Bt, CompositionTargetSchema as C, isStatefulBuiltin as Ct, MAX_COMPOSITION_ITEMS as D, SOURCE_CAPS as Dt, MAX_COMPOSITION_FIELDS_PER_FEATURE as E, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as Et, featureFieldEntries as F, sliceChangedAt as Ft, GroupTemplateIdSchema as G, audioPlanFromEncodeProfile as Gt, BINARY_AGGREGATES as H, canonicalHash as Ht, featureSources as I, FFMPEG_PATH_ENV as It, MAX_HELPER_MEMBERS as J, buildInputArgs as Jt, HelperMemberSchema as K, buildAudioArgs as Kt, fieldReads as L, chooseFfmpegBinary as Lt, compositionReadKey as M, evaluateSensorLevelEdge as Mt, compositionSliceKey as N, isSourceCap as Nt, composedDeviceRef as O, SOURCE_CAP_ACTIVE_FIELD as Ot, compositionSourceKey as P, sliceActiveValue as Pt, cloneStatefulExpressionMemory as Q, logBannerArgs as Qt, ACTIVE_CRITERIA as R, ffmpegBinaryName as Rt, CompositionSchema as S, evaluateRose as St, MAX_COMPOSITION_FEATURES as T, ExpressionParseError as Tt, GROUP_TEMPLATE_IDS as U, Fmp4BoxSplitter as Ut, AggregateReducerSchema as V, getFfmpegDownloadUrl as Vt, GroupHelperSpecSchema as W, AUDIO_PRESETS as Wt, CompositionSourceRefSchema as X, invocationFromEncodeProfile as Xt, NUMERIC_AGGREGATES as Y, buildVideoArgs as Yt, EXPRESSION_INJECTED_NOW as Z, isSoftwareDecode as Zt, CompositionFromSourceSchema as _, RESERVED_BINDING_NAMES as _t, CUSTOMIZATION_BLOCK_NAME_PREFIX as a, evaluateAst as at, CompositionNewTargetSchema as b, disarmRoseMemory as bt, CompositionCodeSourceSchema as c, parseExpression as ct, CompositionExpressionSourceSchema as d, EXPRESSION_IDENTIFIER_RE as dt, resolveStreamMaps as en, evaluateExpressionSource as et, CompositionFeatureSchema as f, MAX_EXPRESSION_AST_NODES as ft, CompositionForwardCommandSchema as g, MAX_EXPRESSION_SOURCE_LENGTH as gt, CompositionFieldsFeatureSchema as h, MAX_EXPRESSION_EVAL_STEPS as ht, COMPOSITION_ITEM_KEY_RE as i, createExpressionScope as it, compositionItemFieldPath as j, evaluateSensorEdge as jt, composedDeviceStableId as k, SOURCE_CAP_CHANGED_AT_FIELD as kt, CompositionCommandTargetSchema as l, tokenize as lt, CompositionFieldSourceSchema as m, MAX_EXPRESSION_CALL_ARGS as mt, COMPOSER_ADDON_ID as n, toExpressionValue as nt, CompositionAggregateSourceSchema as o, compileExpression as ot, CompositionFieldReadSchema as p, MAX_EXPRESSION_BINDINGS as pt, HelperSpecSchema as q, buildFfmpegArgs as qt, COMPOSITION_ITEM_ARRAY_PATH as r, validateExpressionSource as rt, CompositionBindingSchema as s, compileExpressionSafe as st, COMPOSED_DEVICE_STABLE_ID_PREFIX as t, evaluateStatefulExpressionCall as tt, CompositionExistingTargetSchema as u, EXPRESSION_COMPILE_CACHE_CAPACITY as ut, CompositionItemEntrySchema as v, EXPRESSION_BUILTINS as vt, MAX_COMPOSITION_CODE_LENGTH as w, ExpressionEvalError as wt, CompositionPassthroughFeatureSchema as x, evaluateCount as xt, CompositionLiteralBindingSchema as y, EXPRESSION_BUILTIN_NAMES as yt, AGGREGATE_REDUCERS as z, FFMPEG_RELEASE as zt };
|
|
@@ -2193,7 +2193,9 @@ var GROUP_TEMPLATE_IDS = [
|
|
|
2193
2193
|
"leak",
|
|
2194
2194
|
"smoke",
|
|
2195
2195
|
"occupancy",
|
|
2196
|
-
"binary"
|
|
2196
|
+
"binary",
|
|
2197
|
+
"switch",
|
|
2198
|
+
"light"
|
|
2197
2199
|
];
|
|
2198
2200
|
var NUMERIC_AGGREGATES = [
|
|
2199
2201
|
"mean",
|
|
@@ -2203,6 +2205,8 @@ var NUMERIC_AGGREGATES = [
|
|
|
2203
2205
|
"sum"
|
|
2204
2206
|
];
|
|
2205
2207
|
var BINARY_AGGREGATES = ["any", "all"];
|
|
2208
|
+
/** How an actuator group decides it is on. Unknown members never count as off. */
|
|
2209
|
+
var ACTIVE_CRITERIA = ["at-least-one", "all"];
|
|
2206
2210
|
var AGGREGATE_REDUCERS = [
|
|
2207
2211
|
"mean",
|
|
2208
2212
|
"median",
|
|
@@ -2214,6 +2218,7 @@ var AGGREGATE_REDUCERS = [
|
|
|
2214
2218
|
];
|
|
2215
2219
|
var GroupTemplateIdSchema = zod.z.enum(GROUP_TEMPLATE_IDS);
|
|
2216
2220
|
var AggregateReducerSchema = zod.z.enum(AGGREGATE_REDUCERS);
|
|
2221
|
+
var ActiveCriterionSchema = zod.z.enum(ACTIVE_CRITERIA);
|
|
2217
2222
|
/** One member. The field is stored so occupancy can name motion or binary. */
|
|
2218
2223
|
var HelperMemberSchema = zod.z.object({
|
|
2219
2224
|
source: CompositionSourceRefSchema,
|
|
@@ -2228,7 +2233,9 @@ var GroupHelperSpecSchema = zod.z.object({
|
|
|
2228
2233
|
kind: zod.z.literal("group"),
|
|
2229
2234
|
templateId: GroupTemplateIdSchema,
|
|
2230
2235
|
aggregate: AggregateReducerSchema,
|
|
2231
|
-
members: zod.z.array(HelperMemberSchema).min(1).max(64)
|
|
2236
|
+
members: zod.z.array(HelperMemberSchema).min(1).max(64),
|
|
2237
|
+
/** Actuator groups only. Readings leave this unset. */
|
|
2238
|
+
active: ActiveCriterionSchema.optional()
|
|
2232
2239
|
});
|
|
2233
2240
|
var HelperSpecSchema = zod.z.discriminatedUnion("kind", [GroupHelperSpecSchema]);
|
|
2234
2241
|
//#endregion
|
|
@@ -2490,6 +2497,12 @@ function featureSources(feature) {
|
|
|
2490
2497
|
return featureFieldEntries(feature).map((e) => e.source);
|
|
2491
2498
|
}
|
|
2492
2499
|
//#endregion
|
|
2500
|
+
Object.defineProperty(exports, "ACTIVE_CRITERIA", {
|
|
2501
|
+
enumerable: true,
|
|
2502
|
+
get: function() {
|
|
2503
|
+
return ACTIVE_CRITERIA;
|
|
2504
|
+
}
|
|
2505
|
+
});
|
|
2493
2506
|
Object.defineProperty(exports, "AGGREGATE_REDUCERS", {
|
|
2494
2507
|
enumerable: true,
|
|
2495
2508
|
get: function() {
|
|
@@ -2502,6 +2515,12 @@ Object.defineProperty(exports, "AUDIO_PRESETS", {
|
|
|
2502
2515
|
return AUDIO_PRESETS;
|
|
2503
2516
|
}
|
|
2504
2517
|
});
|
|
2518
|
+
Object.defineProperty(exports, "ActiveCriterionSchema", {
|
|
2519
|
+
enumerable: true,
|
|
2520
|
+
get: function() {
|
|
2521
|
+
return ActiveCriterionSchema;
|
|
2522
|
+
}
|
|
2523
|
+
});
|
|
2505
2524
|
Object.defineProperty(exports, "AggregateReducerSchema", {
|
|
2506
2525
|
enumerable: true,
|
|
2507
2526
|
get: function() {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CapVocabularySlice } from '../types.js';
|
|
2
|
-
type SensorCap = 'air-quality-sensor' | 'ambient-light-sensor' | 'binary' | 'carbon-monoxide' | 'connectivity' | 'contact' | 'enum-sensor' | 'flood' | 'gas' | 'group-status' | 'humidity-sensor' | 'motion' | 'numeric-sensor' | 'power-meter' | 'presence' | 'pressure-sensor' | 'smoke' | 'tamper' | 'temperature-sensor' | 'vibration' | 'weather' | 'battery' | 'network-link' | 'device-status' | 'doorbell' | 'event-emitter';
|
|
2
|
+
type SensorCap = 'air-quality-sensor' | 'ambient-light-sensor' | 'binary' | 'carbon-monoxide' | 'connectivity' | 'contact' | 'enum-sensor' | 'flood' | 'gas' | 'group-commands' | 'group-status' | 'humidity-sensor' | 'motion' | 'numeric-sensor' | 'power-meter' | 'presence' | 'pressure-sensor' | 'smoke' | 'tamper' | 'temperature-sensor' | 'vibration' | 'weather' | 'battery' | 'network-link' | 'device-status' | 'doorbell' | 'event-emitter';
|
|
3
3
|
/** The sensor family of the vocabulary. */
|
|
4
4
|
export declare const SENSOR_CAP_VOCABULARY: CapVocabularySlice<SensorCap>;
|
|
5
5
|
export {};
|
|
@@ -322,6 +322,14 @@ export declare enum EventCategory {
|
|
|
322
322
|
PipelineMotionNoisy = "pipeline.motion-noisy",
|
|
323
323
|
/** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
|
|
324
324
|
PipelineMotionCalm = "pipeline.motion-calm",
|
|
325
|
+
/**
|
|
326
|
+
* A camera's package LLM confirm has failed closed three times in a row
|
|
327
|
+
* (D931, 2026-10-26). One edge per camera until
|
|
328
|
+
* {@link PipelinePackageLlmAnswered}.
|
|
329
|
+
*/
|
|
330
|
+
PipelinePackageLlmSilent = "pipeline.package-llm-silent",
|
|
331
|
+
/** The recovery edge of {@link PipelinePackageLlmSilent}: a confirm returned yes or no. */
|
|
332
|
+
PipelinePackageLlmAnswered = "pipeline.package-llm-answered",
|
|
325
333
|
/**
|
|
326
334
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
327
335
|
* (a settings change via `setAgentInferenceDevices` /
|
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-
|
|
2
|
+
const require_event_category = require("./event-category-Ave2VSxY.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-
|
|
1
|
+
import { t as EventCategory } from "./event-category-CT-hz5Rb.mjs";
|
|
2
2
|
//#region src/enums/event-source-type.ts
|
|
3
3
|
var EventSourceType = /* @__PURE__ */ function(EventSourceType) {
|
|
4
4
|
EventSourceType["Addon"] = "addon";
|
|
@@ -324,6 +324,14 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
324
324
|
/** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
|
|
325
325
|
EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
|
|
326
326
|
/**
|
|
327
|
+
* A camera's package LLM confirm has failed closed three times in a row
|
|
328
|
+
* (D931, 2026-10-26). One edge per camera until
|
|
329
|
+
* {@link PipelinePackageLlmAnswered}.
|
|
330
|
+
*/
|
|
331
|
+
EventCategory["PipelinePackageLlmSilent"] = "pipeline.package-llm-silent";
|
|
332
|
+
/** The recovery edge of {@link PipelinePackageLlmSilent}: a confirm returned yes or no. */
|
|
333
|
+
EventCategory["PipelinePackageLlmAnswered"] = "pipeline.package-llm-answered";
|
|
334
|
+
/**
|
|
327
335
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
328
336
|
* (a settings change via `setAgentInferenceDevices` /
|
|
329
337
|
* `setCameraStepToggle` / `setCameraStepSettings`). Orchestrator
|
|
@@ -324,6 +324,14 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
324
324
|
/** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
|
|
325
325
|
EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
|
|
326
326
|
/**
|
|
327
|
+
* A camera's package LLM confirm has failed closed three times in a row
|
|
328
|
+
* (D931, 2026-10-26). One edge per camera until
|
|
329
|
+
* {@link PipelinePackageLlmAnswered}.
|
|
330
|
+
*/
|
|
331
|
+
EventCategory["PipelinePackageLlmSilent"] = "pipeline.package-llm-silent";
|
|
332
|
+
/** The recovery edge of {@link PipelinePackageLlmSilent}: a confirm returned yes or no. */
|
|
333
|
+
EventCategory["PipelinePackageLlmAnswered"] = "pipeline.package-llm-answered";
|
|
334
|
+
/**
|
|
327
335
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
328
336
|
* (a settings change via `setAgentInferenceDevices` /
|
|
329
337
|
* `setCameraStepToggle` / `setCameraStepSettings`). Orchestrator
|
|
@@ -438,6 +438,13 @@ export type AppRouter = TrpcCoreRouter<{
|
|
|
438
438
|
output: z.infer<typeof addonsCapability.methods.getVersions.output>;
|
|
439
439
|
meta: object;
|
|
440
440
|
}>;
|
|
441
|
+
getPackageDocs: TRPCQueryProcedure<{
|
|
442
|
+
input: {
|
|
443
|
+
[x: string]: unknown;
|
|
444
|
+
} & z.input<typeof addonsCapability.methods.getPackageDocs.input>;
|
|
445
|
+
output: z.infer<typeof addonsCapability.methods.getPackageDocs.output>;
|
|
446
|
+
meta: object;
|
|
447
|
+
}>;
|
|
441
448
|
restartAddon: TRPCMutationProcedure<{
|
|
442
449
|
input: {
|
|
443
450
|
[x: string]: unknown;
|
|
@@ -3843,6 +3850,20 @@ export type AppRouter = TrpcCoreRouter<{
|
|
|
3843
3850
|
meta: object;
|
|
3844
3851
|
}>;
|
|
3845
3852
|
}>>;
|
|
3853
|
+
groupCommands: TRPCBuiltRouter<{
|
|
3854
|
+
ctx: TrpcContext;
|
|
3855
|
+
meta: object;
|
|
3856
|
+
errorShape: AugmentedErrorShape;
|
|
3857
|
+
transformer: true;
|
|
3858
|
+
}, TRPCDecorateCreateRouterOptions<{
|
|
3859
|
+
getStatus: TRPCQueryProcedure<{
|
|
3860
|
+
input: {
|
|
3861
|
+
[x: string]: unknown;
|
|
3862
|
+
} & z.input<typeof DEVICE_STATUS_METHOD.getStatus.input>;
|
|
3863
|
+
output: z.infer<typeof DEVICE_STATUS_METHOD.getStatus.output>;
|
|
3864
|
+
meta: object;
|
|
3865
|
+
}>;
|
|
3866
|
+
}>>;
|
|
3846
3867
|
groupStatus: TRPCBuiltRouter<{
|
|
3847
3868
|
ctx: TrpcContext;
|
|
3848
3869
|
meta: object;
|
|
@@ -30,6 +30,7 @@ import type { FanControlStatusSchema } from '../capabilities/fan-control.cap.js'
|
|
|
30
30
|
import type { FeatureProbeStatusSchema } from '../capabilities/feature-probe.cap.js';
|
|
31
31
|
import type { FloodStatusSchema } from '../capabilities/flood.cap.js';
|
|
32
32
|
import type { GasStatusSchema } from '../capabilities/gas.cap.js';
|
|
33
|
+
import type { groupCommandsCapability } from '../capabilities/group-commands.cap.js';
|
|
33
34
|
import type { groupStatusCapability } from '../capabilities/group-status.cap.js';
|
|
34
35
|
import type { HeatingValveStatusSchema } from '../capabilities/heating-valve.cap.js';
|
|
35
36
|
import type { HumidifierStatusSchema } from '../capabilities/humidifier.cap.js';
|
|
@@ -112,6 +113,7 @@ export type CapStatusTypeMap = {
|
|
|
112
113
|
readonly 'feature-probe': z.infer<typeof FeatureProbeStatusSchema>;
|
|
113
114
|
readonly 'flood': z.infer<typeof FloodStatusSchema>;
|
|
114
115
|
readonly 'gas': z.infer<typeof GasStatusSchema>;
|
|
116
|
+
readonly 'group-commands': z.infer<(typeof groupCommandsCapability)['status']['schema']>;
|
|
115
117
|
readonly 'group-status': z.infer<(typeof groupStatusCapability)['status']['schema']>;
|
|
116
118
|
readonly 'heating-valve': z.infer<typeof HeatingValveStatusSchema>;
|
|
117
119
|
readonly 'humidifier': z.infer<typeof HumidifierStatusSchema>;
|
|
@@ -165,4 +167,4 @@ export type CapNameWithStatus = keyof CapStatusTypeMap;
|
|
|
165
167
|
* aggregator to enumerate caps whose `status` should be polled +
|
|
166
168
|
* streamed via `subscribeDeviceStatusAggregate`.
|
|
167
169
|
*/
|
|
168
|
-
export declare const CAP_NAMES_WITH_STATUS: readonly ["accessories", "air-quality-sensor", "alarm-panel", "ambient-light-sensor", "automation-control", "battery", "binary", "brightness", "broker", "camera-credentials", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "cover", "day-night", "device-adoption", "device-discovery", "device-export", "device-status", "dishwasher", "doorbell", "enum-sensor", "event-emitter", "fan-control", "feature-probe", "flood", "gas", "group-status", "heating-valve", "humidifier", "humidity-sensor", "image", "image-settings", "intercom", "lawn-mower-control", "lock-control", "media-player", "motion", "motion-trigger", "motion-zones", "mqtt-broker", "native-object-detection", "navigation", "network-link", "notifier", "numeric-sensor", "osd", "pet-feeder", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "recording-archive", "recording-onboard", "recording-signal", "running-state", "scene-monitor", "script-runner", "smoke", "snapshot", "stream-params", "switch", "tamper", "temperature-sensor", "update", "vacuum-control", "valve", "vibration", "water-heater", "weather"];
|
|
170
|
+
export declare const CAP_NAMES_WITH_STATUS: readonly ["accessories", "air-quality-sensor", "alarm-panel", "ambient-light-sensor", "automation-control", "battery", "binary", "brightness", "broker", "camera-credentials", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "cover", "day-night", "device-adoption", "device-discovery", "device-export", "device-status", "dishwasher", "doorbell", "enum-sensor", "event-emitter", "fan-control", "feature-probe", "flood", "gas", "group-commands", "group-status", "heating-valve", "humidifier", "humidity-sensor", "image", "image-settings", "intercom", "lawn-mower-control", "lock-control", "media-player", "motion", "motion-trigger", "motion-zones", "mqtt-broker", "native-object-detection", "navigation", "network-link", "notifier", "numeric-sensor", "osd", "pet-feeder", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "recording-archive", "recording-onboard", "recording-signal", "running-state", "scene-monitor", "script-runner", "smoke", "snapshot", "stream-params", "switch", "tamper", "temperature-sensor", "update", "vacuum-control", "valve", "vibration", "water-heater", "weather"];
|
|
@@ -72,6 +72,7 @@ export { featureProbeCapability } from '../capabilities/feature-probe.cap.js';
|
|
|
72
72
|
export { filesystemBrowseCapability } from '../capabilities/filesystem-browse.cap.js';
|
|
73
73
|
export { floodCapability } from '../capabilities/flood.cap.js';
|
|
74
74
|
export { gasCapability } from '../capabilities/gas.cap.js';
|
|
75
|
+
export { groupCommandsCapability } from '../capabilities/group-commands.cap.js';
|
|
75
76
|
export { groupStatusCapability } from '../capabilities/group-status.cap.js';
|
|
76
77
|
export { heatingValveCapability } from '../capabilities/heating-valve.cap.js';
|
|
77
78
|
export { humidifierCapability } from '../capabilities/humidifier.cap.js';
|
|
@@ -255,6 +256,7 @@ export declare const CAPABILITY_NAMES: {
|
|
|
255
256
|
readonly filesystemBrowse: 'filesystem-browse';
|
|
256
257
|
readonly flood: 'flood';
|
|
257
258
|
readonly gas: 'gas';
|
|
259
|
+
readonly groupCommands: 'group-commands';
|
|
258
260
|
readonly groupStatus: 'group-status';
|
|
259
261
|
readonly heatingValve: 'heating-valve';
|
|
260
262
|
readonly humidifier: 'humidifier';
|
|
@@ -451,6 +453,7 @@ export interface CapabilityRouterMap<TRouter = unknown> {
|
|
|
451
453
|
readonly filesystemBrowse: TRouter;
|
|
452
454
|
readonly flood: TRouter;
|
|
453
455
|
readonly gas: TRouter;
|
|
456
|
+
readonly groupCommands: TRouter;
|
|
454
457
|
readonly groupStatus: TRouter;
|
|
455
458
|
readonly heatingValve: TRouter;
|
|
456
459
|
readonly humidifier: TRouter;
|
|
@@ -560,8 +563,8 @@ export interface CapabilityRouterMap<TRouter = unknown> {
|
|
|
560
563
|
readonly zoneRules: TRouter;
|
|
561
564
|
readonly zones: TRouter;
|
|
562
565
|
}
|
|
563
|
-
/** Capability names whose mode is `singleton` (
|
|
564
|
-
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', 'calendars', 'camera-credentials', 'camera-grid-layout', 'camera-pipeline-config', 'camera-streams', 'carbon-monoxide', 'climate-control', 'color', 'composer', 'connectivity', 'consumables', 'contact', 'control', 'core-blocks', 'cover', 'database-snapshot', 'day-night', 'decoder', 'detection-pipeline', 'device-admin-link', 'device-credentials', 'device-discovery', 'device-history', 'device-manager', 'device-ops', 'device-state', 'device-status', 'dishwasher', 'display-palette', 'doorbell', 'enum-sensor', 'event-emitter', 'face-gallery', 'fan-control', 'feature-probe', 'filesystem-browse', 'flood', 'gas', 'group-status', 'heating-valve', 'humidifier', 'humidity-sensor', 'image', 'image-settings', 'integrations', 'intercom', 'keychain', 'keychain-admin', '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', 'navigation', 'network-link', 'network-quality', 'node-certificates', 'nodes', 'notification-rules', 'notifier', 'numeric-sensor', 'oidc-connections', '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', 'record-entries', 'recording-archive', 'recording-export', 'recording-onboard', 'recording-signal', 'records', 'running-state', 'scene-monitor', 'script-runner', 'server-management', 'settings-store', 'smoke', 'snapshot', 'sso-bridge', 'storage', 'storage-admin', 'storage-migration', 'stream-broker', 'stream-catalog', 'stream-params', 'stream-signals', 'switch', 'system', 'tamper', 'temperature-sensor', 'terminal-session', 'toast', 'training', 'update', 'user-management', 'vacuum-control', 'valve', 'vector-store', 'vibration', 'viewer-ui', 'water-heater', 'weather', 'webrtc-session', 'zone-analytics', 'zone-rules', 'zones'];
|
|
566
|
+
/** Capability names whose mode is `singleton` (148 caps). */
|
|
567
|
+
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', 'calendars', 'camera-credentials', 'camera-grid-layout', 'camera-pipeline-config', 'camera-streams', 'carbon-monoxide', 'climate-control', 'color', 'composer', 'connectivity', 'consumables', 'contact', 'control', 'core-blocks', 'cover', 'database-snapshot', 'day-night', 'decoder', 'detection-pipeline', 'device-admin-link', 'device-credentials', 'device-discovery', 'device-history', 'device-manager', 'device-ops', 'device-state', 'device-status', 'dishwasher', 'display-palette', 'doorbell', 'enum-sensor', 'event-emitter', 'face-gallery', 'fan-control', 'feature-probe', 'filesystem-browse', 'flood', 'gas', 'group-commands', 'group-status', 'heating-valve', 'humidifier', 'humidity-sensor', 'image', 'image-settings', 'integrations', 'intercom', 'keychain', 'keychain-admin', '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', 'navigation', 'network-link', 'network-quality', 'node-certificates', 'nodes', 'notification-rules', 'notifier', 'numeric-sensor', 'oidc-connections', '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', 'record-entries', 'recording-archive', 'recording-export', 'recording-onboard', 'recording-signal', 'records', 'running-state', 'scene-monitor', 'script-runner', 'server-management', 'settings-store', 'smoke', 'snapshot', 'sso-bridge', 'storage', 'storage-admin', 'storage-migration', 'stream-broker', 'stream-catalog', 'stream-params', 'stream-signals', 'switch', 'system', 'tamper', 'temperature-sensor', 'terminal-session', 'toast', 'training', 'update', 'user-management', 'vacuum-control', 'valve', 'vector-store', 'vibration', 'viewer-ui', 'water-heater', 'weather', 'webrtc-session', 'zone-analytics', 'zone-rules', 'zones'];
|
|
565
568
|
/** Union of singleton capability names (literal string union). */
|
|
566
569
|
export type SingletonCapabilityName = typeof SINGLETON_CAPABILITY_NAMES[number];
|
|
567
570
|
/** Capability names whose mode is `collection` (35 caps). */
|
|
@@ -27,6 +27,7 @@ import { fanControlCapability } from '../capabilities/fan-control.cap.js';
|
|
|
27
27
|
import { featureProbeCapability } from '../capabilities/feature-probe.cap.js';
|
|
28
28
|
import { floodCapability } from '../capabilities/flood.cap.js';
|
|
29
29
|
import { gasCapability } from '../capabilities/gas.cap.js';
|
|
30
|
+
import { groupCommandsCapability } from '../capabilities/group-commands.cap.js';
|
|
30
31
|
import { groupStatusCapability } from '../capabilities/group-status.cap.js';
|
|
31
32
|
import { heatingValveCapability } from '../capabilities/heating-valve.cap.js';
|
|
32
33
|
import { humidifierCapability } from '../capabilities/humidifier.cap.js';
|
|
@@ -112,6 +113,7 @@ export interface DeviceLocalState {
|
|
|
112
113
|
featureProbe: InferRuntimeState<typeof featureProbeCapability>;
|
|
113
114
|
flood: InferRuntimeState<typeof floodCapability>;
|
|
114
115
|
gas: InferRuntimeState<typeof gasCapability>;
|
|
116
|
+
groupCommands: InferRuntimeState<typeof groupCommandsCapability>;
|
|
115
117
|
groupStatus: InferRuntimeState<typeof groupStatusCapability>;
|
|
116
118
|
heatingValve: InferRuntimeState<typeof heatingValveCapability>;
|
|
117
119
|
humidifier: InferRuntimeState<typeof humidifierCapability>;
|
|
@@ -207,6 +209,7 @@ export interface CapNameToRuntimeStateMap {
|
|
|
207
209
|
'feature-probe': InferRuntimeState<typeof featureProbeCapability>;
|
|
208
210
|
'flood': InferRuntimeState<typeof floodCapability>;
|
|
209
211
|
'gas': InferRuntimeState<typeof gasCapability>;
|
|
212
|
+
'group-commands': InferRuntimeState<typeof groupCommandsCapability>;
|
|
210
213
|
'group-status': InferRuntimeState<typeof groupStatusCapability>;
|
|
211
214
|
'heating-valve': InferRuntimeState<typeof heatingValveCapability>;
|
|
212
215
|
'humidifier': InferRuntimeState<typeof humidifierCapability>;
|
|
@@ -40,6 +40,7 @@ import type { fanControlCapability } from '../capabilities/fan-control.cap.js';
|
|
|
40
40
|
import type { featureProbeCapability } from '../capabilities/feature-probe.cap.js';
|
|
41
41
|
import type { floodCapability } from '../capabilities/flood.cap.js';
|
|
42
42
|
import type { gasCapability } from '../capabilities/gas.cap.js';
|
|
43
|
+
import type { groupCommandsCapability } from '../capabilities/group-commands.cap.js';
|
|
43
44
|
import type { groupStatusCapability } from '../capabilities/group-status.cap.js';
|
|
44
45
|
import type { heatingValveCapability } from '../capabilities/heating-valve.cap.js';
|
|
45
46
|
import type { humidifierCapability } from '../capabilities/humidifier.cap.js';
|
|
@@ -146,6 +147,7 @@ export interface DeviceProxyState {
|
|
|
146
147
|
readonly featureProbe: SliceHandle<InferRuntimeState<typeof featureProbeCapability>>;
|
|
147
148
|
readonly flood: SliceHandle<InferRuntimeState<typeof floodCapability>>;
|
|
148
149
|
readonly gas: SliceHandle<InferRuntimeState<typeof gasCapability>>;
|
|
150
|
+
readonly groupCommands: SliceHandle<InferRuntimeState<typeof groupCommandsCapability>>;
|
|
149
151
|
readonly groupStatus: SliceHandle<InferRuntimeState<typeof groupStatusCapability>>;
|
|
150
152
|
readonly heatingValve: SliceHandle<InferRuntimeState<typeof heatingValveCapability>>;
|
|
151
153
|
readonly humidifier: SliceHandle<InferRuntimeState<typeof humidifierCapability>>;
|
|
@@ -248,6 +250,7 @@ export interface DeviceProxy {
|
|
|
248
250
|
readonly featureProbe?: InferDeviceProxyCap<typeof featureProbeCapability>;
|
|
249
251
|
readonly flood?: InferDeviceProxyCap<typeof floodCapability>;
|
|
250
252
|
readonly gas?: InferDeviceProxyCap<typeof gasCapability>;
|
|
253
|
+
readonly groupCommands?: InferDeviceProxyCap<typeof groupCommandsCapability>;
|
|
251
254
|
readonly groupStatus?: InferDeviceProxyCap<typeof groupStatusCapability>;
|
|
252
255
|
readonly heatingValve?: InferDeviceProxyCap<typeof heatingValveCapability>;
|
|
253
256
|
readonly humidifier?: InferDeviceProxyCap<typeof humidifierCapability>;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* can answer "may a rule actuate this?" without importing the schema barrel
|
|
6
6
|
* (~144MB RSS per runner, D28).
|
|
7
7
|
*
|
|
8
|
-
* Coverage:
|
|
8
|
+
* Coverage: 93 device-scoped capabilities.
|
|
9
9
|
*/
|
|
10
10
|
export declare const DEVICE_SCOPED_CAPS: ReadonlySet<string>;
|
|
11
11
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { CapabilityHistoryField, CapabilityHistoryItems } from '../capabilities/capability-definition.js';
|
|
2
2
|
/**
|
|
3
3
|
* Cap history catalog, projected from every `*.cap.ts` `history` block.
|
|
4
|
-
* 41 caps with series (75 series),
|
|
4
|
+
* 41 caps with series (75 series), 32 caps answered `'none'`.
|
|
5
5
|
* Field keys are `runtimeState` paths (`a.b` into fixed objects only).
|
|
6
6
|
*/
|
|
7
7
|
export declare const HISTORY_CATALOG: Readonly<Record<string, Readonly<Record<string, CapabilityHistoryField>>>>;
|
|
@@ -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:
|
|
9
|
+
* Coverage: 1385 method paths across 183 capabilities.
|
|
10
10
|
*/
|
|
11
11
|
import type { MethodRole } from '../auth/viewer-access.js';
|
|
12
12
|
import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* system-scope cap that takes a deviceId was previously never device-filtered
|
|
7
7
|
* — see the generator header).
|
|
8
8
|
*
|
|
9
|
-
* Coverage:
|
|
9
|
+
* Coverage: 548 methods carry a device reference, of which
|
|
10
10
|
* 174 are on SYSTEM-scope caps.
|
|
11
11
|
*
|
|
12
12
|
* Top-level fields, number arrays, and one-level arrays of objects carrying
|
|
@@ -11,7 +11,7 @@ export interface RuntimeStatePolicy {
|
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
13
|
* Per-cap runtime-state policy, projected from every `*.cap.ts` that declares
|
|
14
|
-
* `runtimeState`.
|
|
14
|
+
* `runtimeState`. 74 caps: 38 `restored`, 36 `session`.
|
|
15
15
|
*
|
|
16
16
|
* A cap absent from this map has no runtime-state slice at all. A cap PRESENT
|
|
17
17
|
* with `durability: 'session'` has one and has decided not to keep it.
|
|
@@ -64,7 +64,7 @@ import type { userManagementCapability } from '../capabilities/user-management.c
|
|
|
64
64
|
*/
|
|
65
65
|
export interface SystemProxy {
|
|
66
66
|
readonly addonPages: Pick<InferProvider<typeof addonPagesCapability>, 'listPages'>;
|
|
67
|
-
readonly addons: Pick<InferProvider<typeof addonsCapability>, 'list' | 'getLogs' | 'listPackages' | 'installPackage' | 'installFromWorkspace' | 'isWorkspaceAvailable' | 'listWorkspacePackages' | 'uninstallPackage' | 'listInstallations' | 'reloadPackages' | 'searchAvailable' | 'listUpdates' | 'updatePackage' | 'rollbackPackage' | 'forceRefresh' | 'restartServer' | 'getLastRestart' | 'listFrameworkPackages' | 'listCapabilityProviders' | 'setCapabilityProviderEnabled' | 'getVersions' | 'restartAddon' | 'retryLoad' | 'getAutoUpdateSettings' | 'setAutoUpdateSettings' | 'getAddonAutoUpdate' | 'setAddonAutoUpdate' | 'applyAutoUpdateToAll' | 'custom' | 'startJob' | 'getJob' | 'listJobs' | 'cancelJob' | 'onAddonLogs'>;
|
|
67
|
+
readonly addons: Pick<InferProvider<typeof addonsCapability>, 'list' | 'getLogs' | 'listPackages' | 'installPackage' | 'installFromWorkspace' | 'isWorkspaceAvailable' | 'listWorkspacePackages' | 'uninstallPackage' | 'listInstallations' | 'reloadPackages' | 'searchAvailable' | 'listUpdates' | 'updatePackage' | 'rollbackPackage' | 'forceRefresh' | 'restartServer' | 'getLastRestart' | 'listFrameworkPackages' | 'listCapabilityProviders' | 'setCapabilityProviderEnabled' | 'getVersions' | 'getPackageDocs' | 'restartAddon' | 'retryLoad' | 'getAutoUpdateSettings' | 'setAutoUpdateSettings' | 'getAddonAutoUpdate' | 'setAddonAutoUpdate' | 'applyAutoUpdateToAll' | 'custom' | 'startJob' | 'getJob' | 'listJobs' | 'cancelJob' | 'onAddonLogs'>;
|
|
68
68
|
readonly addonSettings: Pick<InferProvider<typeof addonSettingsCapability>, 'getGlobalSettings' | 'updateGlobalSettings' | 'getIntegrationSettings'>;
|
|
69
69
|
readonly addonWidgets: Pick<InferProvider<typeof addonWidgetsCapability>, 'listWidgets'>;
|
|
70
70
|
readonly alerts: Pick<InferProvider<typeof alertsCapability>, 'emit' | 'update' | 'list' | 'getUnreadCount' | 'markRead' | 'markAllRead' | 'dismiss'>;
|