@camstack/types 1.2.417 → 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/capability-definition.d.ts +5 -0
- package/dist/capabilities/color.cap.d.ts +1 -0
- package/dist/capabilities/composer.cap.d.ts +201 -0
- package/dist/capabilities/core-blocks.cap.d.ts +1441 -0
- package/dist/capabilities/group-commands.cap.d.ts +49 -0
- package/dist/capabilities/group-status.cap.d.ts +46 -0
- package/dist/capabilities/index.d.ts +6 -2
- package/dist/capabilities/motion.cap.d.ts +12 -4
- package/dist/capabilities/notification-rules.cap.d.ts +46 -0
- package/dist/capabilities/osd-manager.cap.d.ts +12 -0
- package/dist/client.js +37 -5
- package/dist/client.mjs +37 -5
- package/dist/composition/composition-report.d.ts +72 -0
- package/dist/composition/composition.d.ts +286 -5
- package/dist/composition/helpers/actuator.d.ts +58 -0
- package/dist/composition/helpers/aggregate.d.ts +41 -0
- package/dist/composition/helpers/catalog.d.ts +47 -0
- package/dist/composition/helpers/compile.d.ts +22 -0
- package/dist/composition/helpers/index.d.ts +7 -0
- package/dist/composition/helpers/save.d.ts +18 -0
- package/dist/composition/helpers/source-pick.d.ts +40 -0
- package/dist/composition/helpers/spec.d.ts +43 -0
- package/dist/composition/index.d.ts +1 -0
- package/dist/composition/source-ref.d.ts +11 -0
- package/dist/composition/validate-composition.d.ts +5 -0
- package/dist/{composition-kEl9mevu.mjs → composition-OhpuespA.mjs} +121 -8
- package/dist/{composition-DsmkwP9-.js → composition-re1aezX9.js} +198 -7
- 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 +35 -0
- package/dist/generated/addon-cap-facts.d.ts +1 -1
- package/dist/generated/cap-status-types.d.ts +5 -1
- package/dist/generated/capability-router-map.d.ts +8 -2
- package/dist/generated/device-local-state.d.ts +6 -0
- package/dist/generated/device-proxy.d.ts +6 -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 +1040 -24
- package/dist/index.mjs +1006 -25
- package/dist/interfaces/event-bus.d.ts +15 -0
- package/dist/node.js +1 -1
- package/dist/node.mjs +1 -1
- package/dist/{sleep-gtskVoMw.js → sleep-YJ6FVsUu.js} +26 -2
- package/dist/{sleep-CARd6wZF.mjs → sleep-bykKrTgu.mjs} +26 -2
- package/package.json +1 -1
|
@@ -2160,6 +2160,85 @@ function evaluateExpressionSource(expr, bindingValues, now, opts) {
|
|
|
2160
2160
|
}
|
|
2161
2161
|
}
|
|
2162
2162
|
//#endregion
|
|
2163
|
+
//#region src/composition/source-ref.ts
|
|
2164
|
+
/**
|
|
2165
|
+
* A composition source identity: `(addonId, stableId)`, never a numeric device
|
|
2166
|
+
* id. Split out so helper schemas can name it without a cycle through
|
|
2167
|
+
* `composition.ts` (D659).
|
|
2168
|
+
*/
|
|
2169
|
+
var CompositionSourceRefSchema = zod.z.object({
|
|
2170
|
+
/** The owning addon; `stableId` is unique only within it. */
|
|
2171
|
+
addonId: zod.z.string().min(1),
|
|
2172
|
+
stableId: zod.z.string().min(1)
|
|
2173
|
+
});
|
|
2174
|
+
//#endregion
|
|
2175
|
+
//#region src/composition/helpers/spec.ts
|
|
2176
|
+
/**
|
|
2177
|
+
* A helper spec is what the editor stores and reads back (D944). The compiled
|
|
2178
|
+
* features are a projection; the editor never edits the expression.
|
|
2179
|
+
*/
|
|
2180
|
+
/** A group may name more members than an expression call (the 16-arg cap). */
|
|
2181
|
+
var MAX_HELPER_MEMBERS = 64;
|
|
2182
|
+
var GROUP_TEMPLATE_IDS = [
|
|
2183
|
+
"temperature",
|
|
2184
|
+
"humidity",
|
|
2185
|
+
"pressure",
|
|
2186
|
+
"illuminance",
|
|
2187
|
+
"power",
|
|
2188
|
+
"energy",
|
|
2189
|
+
"battery",
|
|
2190
|
+
"numeric",
|
|
2191
|
+
"motion",
|
|
2192
|
+
"contact",
|
|
2193
|
+
"leak",
|
|
2194
|
+
"smoke",
|
|
2195
|
+
"occupancy",
|
|
2196
|
+
"binary",
|
|
2197
|
+
"switch",
|
|
2198
|
+
"light"
|
|
2199
|
+
];
|
|
2200
|
+
var NUMERIC_AGGREGATES = [
|
|
2201
|
+
"mean",
|
|
2202
|
+
"median",
|
|
2203
|
+
"min",
|
|
2204
|
+
"max",
|
|
2205
|
+
"sum"
|
|
2206
|
+
];
|
|
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"];
|
|
2210
|
+
var AGGREGATE_REDUCERS = [
|
|
2211
|
+
"mean",
|
|
2212
|
+
"median",
|
|
2213
|
+
"min",
|
|
2214
|
+
"max",
|
|
2215
|
+
"sum",
|
|
2216
|
+
"any",
|
|
2217
|
+
"all"
|
|
2218
|
+
];
|
|
2219
|
+
var GroupTemplateIdSchema = zod.z.enum(GROUP_TEMPLATE_IDS);
|
|
2220
|
+
var AggregateReducerSchema = zod.z.enum(AGGREGATE_REDUCERS);
|
|
2221
|
+
var ActiveCriterionSchema = zod.z.enum(ACTIVE_CRITERIA);
|
|
2222
|
+
/** One member. The field is stored so occupancy can name motion or binary. */
|
|
2223
|
+
var HelperMemberSchema = zod.z.object({
|
|
2224
|
+
source: CompositionSourceRefSchema,
|
|
2225
|
+
cap: zod.z.string().min(1),
|
|
2226
|
+
fieldPath: zod.z.string().min(1)
|
|
2227
|
+
});
|
|
2228
|
+
/**
|
|
2229
|
+
* Phase 1a is groups only. Math, integral and statistics stay off this union
|
|
2230
|
+
* until the composer can run them — a control must not save a spec it cannot.
|
|
2231
|
+
*/
|
|
2232
|
+
var GroupHelperSpecSchema = zod.z.object({
|
|
2233
|
+
kind: zod.z.literal("group"),
|
|
2234
|
+
templateId: GroupTemplateIdSchema,
|
|
2235
|
+
aggregate: AggregateReducerSchema,
|
|
2236
|
+
members: zod.z.array(HelperMemberSchema).min(1).max(64),
|
|
2237
|
+
/** Actuator groups only. Readings leave this unset. */
|
|
2238
|
+
active: ActiveCriterionSchema.optional()
|
|
2239
|
+
});
|
|
2240
|
+
var HelperSpecSchema = zod.z.discriminatedUnion("kind", [GroupHelperSpecSchema]);
|
|
2241
|
+
//#endregion
|
|
2163
2242
|
//#region src/composition/composition.ts
|
|
2164
2243
|
/**
|
|
2165
2244
|
* A COMPOSITION: a device assembled from other devices' state (D659).
|
|
@@ -2195,11 +2274,6 @@ var MAX_COMPOSITION_FEATURES = 16;
|
|
|
2195
2274
|
var MAX_COMPOSITION_FIELDS_PER_FEATURE = 32;
|
|
2196
2275
|
/** Longest snippet a `code` source may carry (slice 4). */
|
|
2197
2276
|
var MAX_COMPOSITION_CODE_LENGTH = 2e4;
|
|
2198
|
-
var CompositionSourceRefSchema = zod.z.object({
|
|
2199
|
-
/** The owning addon; `stableId` is unique only within it. */
|
|
2200
|
-
addonId: zod.z.string().min(1),
|
|
2201
|
-
stableId: zod.z.string().min(1)
|
|
2202
|
-
});
|
|
2203
2277
|
/** One field of one capability of one source device. */
|
|
2204
2278
|
var CompositionFieldReadSchema = zod.z.object({
|
|
2205
2279
|
source: CompositionSourceRefSchema,
|
|
@@ -2242,10 +2316,42 @@ var CompositionCodeSourceSchema = zod.z.object({
|
|
|
2242
2316
|
kind: zod.z.literal("code"),
|
|
2243
2317
|
code: zod.z.string().min(1).max(MAX_COMPOSITION_CODE_LENGTH)
|
|
2244
2318
|
});
|
|
2319
|
+
/**
|
|
2320
|
+
* `aggregate`: a group reducer. Offline and unknown reads are excluded, not
|
|
2321
|
+
* folded in as 0 or false (D944). Free expressions stay `expression` so a
|
|
2322
|
+
* stale member is still included there.
|
|
2323
|
+
*/
|
|
2324
|
+
var CompositionAggregateSourceSchema = zod.z.object({
|
|
2325
|
+
kind: zod.z.literal("aggregate"),
|
|
2326
|
+
reducer: zod.z.enum([
|
|
2327
|
+
"mean",
|
|
2328
|
+
"median",
|
|
2329
|
+
"min",
|
|
2330
|
+
"max",
|
|
2331
|
+
"sum",
|
|
2332
|
+
"any",
|
|
2333
|
+
"all"
|
|
2334
|
+
]),
|
|
2335
|
+
reads: zod.z.array(CompositionFieldReadSchema).min(1).max(64),
|
|
2336
|
+
/** `value` is the reading; the others are the member counts. */
|
|
2337
|
+
publish: zod.z.enum([
|
|
2338
|
+
"value",
|
|
2339
|
+
"included",
|
|
2340
|
+
"excluded",
|
|
2341
|
+
"total"
|
|
2342
|
+
]),
|
|
2343
|
+
/** What a `value` publish does when nobody is included. Counts ignore this. */
|
|
2344
|
+
empty: zod.z.enum([
|
|
2345
|
+
"null",
|
|
2346
|
+
"omit",
|
|
2347
|
+
"offline"
|
|
2348
|
+
])
|
|
2349
|
+
});
|
|
2245
2350
|
var CompositionFieldSourceSchema = zod.z.discriminatedUnion("kind", [
|
|
2246
2351
|
CompositionFromSourceSchema,
|
|
2247
2352
|
CompositionExpressionSourceSchema,
|
|
2248
|
-
CompositionCodeSourceSchema
|
|
2353
|
+
CompositionCodeSourceSchema,
|
|
2354
|
+
CompositionAggregateSourceSchema
|
|
2249
2355
|
]);
|
|
2250
2356
|
/** `forward`: RESERVED for slice 3. Argument mapping arrives there as an additive optional `args`. */
|
|
2251
2357
|
var CompositionForwardCommandSchema = zod.z.object({
|
|
@@ -2311,7 +2417,13 @@ var CompositionExistingTargetSchema = zod.z.object({
|
|
|
2311
2417
|
var CompositionTargetSchema = zod.z.discriminatedUnion("kind", [CompositionNewTargetSchema, CompositionExistingTargetSchema]);
|
|
2312
2418
|
var CompositionSchema = zod.z.object({
|
|
2313
2419
|
target: CompositionTargetSchema,
|
|
2314
|
-
features: zod.z.array(CompositionFeatureSchema).min(1).max(16)
|
|
2420
|
+
features: zod.z.array(CompositionFeatureSchema).min(1).max(16),
|
|
2421
|
+
/**
|
|
2422
|
+
* Present when the block is a helper template. Absent on a free
|
|
2423
|
+
* composition (the room example, device 4603). The editor reads this,
|
|
2424
|
+
* never the compiled features.
|
|
2425
|
+
*/
|
|
2426
|
+
helper: HelperSpecSchema.optional()
|
|
2315
2427
|
}).superRefine((composition, ctx) => {
|
|
2316
2428
|
const seen = /* @__PURE__ */ new Set();
|
|
2317
2429
|
composition.features.forEach((feature, index) => {
|
|
@@ -2358,6 +2470,7 @@ function fieldReads(source) {
|
|
|
2358
2470
|
cap: binding.cap,
|
|
2359
2471
|
fieldPath: binding.fieldPath
|
|
2360
2472
|
}] : []);
|
|
2473
|
+
case "aggregate": return source.reads;
|
|
2361
2474
|
case "code": return [];
|
|
2362
2475
|
}
|
|
2363
2476
|
}
|
|
@@ -2384,12 +2497,42 @@ function featureSources(feature) {
|
|
|
2384
2497
|
return featureFieldEntries(feature).map((e) => e.source);
|
|
2385
2498
|
}
|
|
2386
2499
|
//#endregion
|
|
2500
|
+
Object.defineProperty(exports, "ACTIVE_CRITERIA", {
|
|
2501
|
+
enumerable: true,
|
|
2502
|
+
get: function() {
|
|
2503
|
+
return ACTIVE_CRITERIA;
|
|
2504
|
+
}
|
|
2505
|
+
});
|
|
2506
|
+
Object.defineProperty(exports, "AGGREGATE_REDUCERS", {
|
|
2507
|
+
enumerable: true,
|
|
2508
|
+
get: function() {
|
|
2509
|
+
return AGGREGATE_REDUCERS;
|
|
2510
|
+
}
|
|
2511
|
+
});
|
|
2387
2512
|
Object.defineProperty(exports, "AUDIO_PRESETS", {
|
|
2388
2513
|
enumerable: true,
|
|
2389
2514
|
get: function() {
|
|
2390
2515
|
return AUDIO_PRESETS;
|
|
2391
2516
|
}
|
|
2392
2517
|
});
|
|
2518
|
+
Object.defineProperty(exports, "ActiveCriterionSchema", {
|
|
2519
|
+
enumerable: true,
|
|
2520
|
+
get: function() {
|
|
2521
|
+
return ActiveCriterionSchema;
|
|
2522
|
+
}
|
|
2523
|
+
});
|
|
2524
|
+
Object.defineProperty(exports, "AggregateReducerSchema", {
|
|
2525
|
+
enumerable: true,
|
|
2526
|
+
get: function() {
|
|
2527
|
+
return AggregateReducerSchema;
|
|
2528
|
+
}
|
|
2529
|
+
});
|
|
2530
|
+
Object.defineProperty(exports, "BINARY_AGGREGATES", {
|
|
2531
|
+
enumerable: true,
|
|
2532
|
+
get: function() {
|
|
2533
|
+
return BINARY_AGGREGATES;
|
|
2534
|
+
}
|
|
2535
|
+
});
|
|
2393
2536
|
Object.defineProperty(exports, "COMPOSED_DEVICE_STABLE_ID_PREFIX", {
|
|
2394
2537
|
enumerable: true,
|
|
2395
2538
|
get: function() {
|
|
@@ -2420,6 +2563,12 @@ Object.defineProperty(exports, "CUSTOMIZATION_BLOCK_NAME_PREFIX", {
|
|
|
2420
2563
|
return CUSTOMIZATION_BLOCK_NAME_PREFIX;
|
|
2421
2564
|
}
|
|
2422
2565
|
});
|
|
2566
|
+
Object.defineProperty(exports, "CompositionAggregateSourceSchema", {
|
|
2567
|
+
enumerable: true,
|
|
2568
|
+
get: function() {
|
|
2569
|
+
return CompositionAggregateSourceSchema;
|
|
2570
|
+
}
|
|
2571
|
+
});
|
|
2423
2572
|
Object.defineProperty(exports, "CompositionBindingSchema", {
|
|
2424
2573
|
enumerable: true,
|
|
2425
2574
|
get: function() {
|
|
@@ -2594,6 +2743,36 @@ Object.defineProperty(exports, "Fmp4BoxSplitter", {
|
|
|
2594
2743
|
return Fmp4BoxSplitter;
|
|
2595
2744
|
}
|
|
2596
2745
|
});
|
|
2746
|
+
Object.defineProperty(exports, "GROUP_TEMPLATE_IDS", {
|
|
2747
|
+
enumerable: true,
|
|
2748
|
+
get: function() {
|
|
2749
|
+
return GROUP_TEMPLATE_IDS;
|
|
2750
|
+
}
|
|
2751
|
+
});
|
|
2752
|
+
Object.defineProperty(exports, "GroupHelperSpecSchema", {
|
|
2753
|
+
enumerable: true,
|
|
2754
|
+
get: function() {
|
|
2755
|
+
return GroupHelperSpecSchema;
|
|
2756
|
+
}
|
|
2757
|
+
});
|
|
2758
|
+
Object.defineProperty(exports, "GroupTemplateIdSchema", {
|
|
2759
|
+
enumerable: true,
|
|
2760
|
+
get: function() {
|
|
2761
|
+
return GroupTemplateIdSchema;
|
|
2762
|
+
}
|
|
2763
|
+
});
|
|
2764
|
+
Object.defineProperty(exports, "HelperMemberSchema", {
|
|
2765
|
+
enumerable: true,
|
|
2766
|
+
get: function() {
|
|
2767
|
+
return HelperMemberSchema;
|
|
2768
|
+
}
|
|
2769
|
+
});
|
|
2770
|
+
Object.defineProperty(exports, "HelperSpecSchema", {
|
|
2771
|
+
enumerable: true,
|
|
2772
|
+
get: function() {
|
|
2773
|
+
return HelperSpecSchema;
|
|
2774
|
+
}
|
|
2775
|
+
});
|
|
2597
2776
|
Object.defineProperty(exports, "MAX_COMPOSITION_CODE_LENGTH", {
|
|
2598
2777
|
enumerable: true,
|
|
2599
2778
|
get: function() {
|
|
@@ -2648,6 +2827,18 @@ Object.defineProperty(exports, "MAX_EXPRESSION_SOURCE_LENGTH", {
|
|
|
2648
2827
|
return MAX_EXPRESSION_SOURCE_LENGTH;
|
|
2649
2828
|
}
|
|
2650
2829
|
});
|
|
2830
|
+
Object.defineProperty(exports, "MAX_HELPER_MEMBERS", {
|
|
2831
|
+
enumerable: true,
|
|
2832
|
+
get: function() {
|
|
2833
|
+
return MAX_HELPER_MEMBERS;
|
|
2834
|
+
}
|
|
2835
|
+
});
|
|
2836
|
+
Object.defineProperty(exports, "NUMERIC_AGGREGATES", {
|
|
2837
|
+
enumerable: true,
|
|
2838
|
+
get: function() {
|
|
2839
|
+
return NUMERIC_AGGREGATES;
|
|
2840
|
+
}
|
|
2841
|
+
});
|
|
2651
2842
|
Object.defineProperty(exports, "RESERVED_BINDING_NAMES", {
|
|
2652
2843
|
enumerable: true,
|
|
2653
2844
|
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' | '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,34 @@ 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
|
+
}>>;
|
|
3867
|
+
groupStatus: TRPCBuiltRouter<{
|
|
3868
|
+
ctx: TrpcContext;
|
|
3869
|
+
meta: object;
|
|
3870
|
+
errorShape: AugmentedErrorShape;
|
|
3871
|
+
transformer: true;
|
|
3872
|
+
}, TRPCDecorateCreateRouterOptions<{
|
|
3873
|
+
getStatus: TRPCQueryProcedure<{
|
|
3874
|
+
input: {
|
|
3875
|
+
[x: string]: unknown;
|
|
3876
|
+
} & z.input<typeof DEVICE_STATUS_METHOD.getStatus.input>;
|
|
3877
|
+
output: z.infer<typeof DEVICE_STATUS_METHOD.getStatus.output>;
|
|
3878
|
+
meta: object;
|
|
3879
|
+
}>;
|
|
3880
|
+
}>>;
|
|
3846
3881
|
heatingValve: TRPCBuiltRouter<{
|
|
3847
3882
|
ctx: TrpcContext;
|
|
3848
3883
|
meta: object;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* `ALL_CAPABILITY_DEFINITIONS` (the whole Zod schema graph, ~+100 MB heap per
|
|
6
6
|
* runner). See docs/decisions/adr-0028.md.
|
|
7
7
|
*
|
|
8
|
-
* Coverage: 1 advance-derived caps,
|
|
8
|
+
* Coverage: 1 advance-derived caps, 75 caps with 351 state leaves.
|
|
9
9
|
*/
|
|
10
10
|
/** A bindable scalar in a capability's runtime state. */
|
|
11
11
|
export interface CapStateLeaf {
|
|
@@ -30,6 +30,8 @@ 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';
|
|
34
|
+
import type { groupStatusCapability } from '../capabilities/group-status.cap.js';
|
|
33
35
|
import type { HeatingValveStatusSchema } from '../capabilities/heating-valve.cap.js';
|
|
34
36
|
import type { HumidifierStatusSchema } from '../capabilities/humidifier.cap.js';
|
|
35
37
|
import type { HumiditySensorStatusSchema } from '../capabilities/humidity-sensor.cap.js';
|
|
@@ -111,6 +113,8 @@ export type CapStatusTypeMap = {
|
|
|
111
113
|
readonly 'feature-probe': z.infer<typeof FeatureProbeStatusSchema>;
|
|
112
114
|
readonly 'flood': z.infer<typeof FloodStatusSchema>;
|
|
113
115
|
readonly 'gas': z.infer<typeof GasStatusSchema>;
|
|
116
|
+
readonly 'group-commands': z.infer<(typeof groupCommandsCapability)['status']['schema']>;
|
|
117
|
+
readonly 'group-status': z.infer<(typeof groupStatusCapability)['status']['schema']>;
|
|
114
118
|
readonly 'heating-valve': z.infer<typeof HeatingValveStatusSchema>;
|
|
115
119
|
readonly 'humidifier': z.infer<typeof HumidifierStatusSchema>;
|
|
116
120
|
readonly 'humidity-sensor': z.infer<typeof HumiditySensorStatusSchema>;
|
|
@@ -163,4 +167,4 @@ export type CapNameWithStatus = keyof CapStatusTypeMap;
|
|
|
163
167
|
* aggregator to enumerate caps whose `status` should be polled +
|
|
164
168
|
* streamed via `subscribeDeviceStatusAggregate`.
|
|
165
169
|
*/
|
|
166
|
-
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", "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,8 @@ 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';
|
|
76
|
+
export { groupStatusCapability } from '../capabilities/group-status.cap.js';
|
|
75
77
|
export { heatingValveCapability } from '../capabilities/heating-valve.cap.js';
|
|
76
78
|
export { humidifierCapability } from '../capabilities/humidifier.cap.js';
|
|
77
79
|
export { humiditySensorCapability } from '../capabilities/humidity-sensor.cap.js';
|
|
@@ -254,6 +256,8 @@ export declare const CAPABILITY_NAMES: {
|
|
|
254
256
|
readonly filesystemBrowse: 'filesystem-browse';
|
|
255
257
|
readonly flood: 'flood';
|
|
256
258
|
readonly gas: 'gas';
|
|
259
|
+
readonly groupCommands: 'group-commands';
|
|
260
|
+
readonly groupStatus: 'group-status';
|
|
257
261
|
readonly heatingValve: 'heating-valve';
|
|
258
262
|
readonly humidifier: 'humidifier';
|
|
259
263
|
readonly humiditySensor: 'humidity-sensor';
|
|
@@ -449,6 +453,8 @@ export interface CapabilityRouterMap<TRouter = unknown> {
|
|
|
449
453
|
readonly filesystemBrowse: TRouter;
|
|
450
454
|
readonly flood: TRouter;
|
|
451
455
|
readonly gas: TRouter;
|
|
456
|
+
readonly groupCommands: TRouter;
|
|
457
|
+
readonly groupStatus: TRouter;
|
|
452
458
|
readonly heatingValve: TRouter;
|
|
453
459
|
readonly humidifier: TRouter;
|
|
454
460
|
readonly humiditySensor: TRouter;
|
|
@@ -557,8 +563,8 @@ export interface CapabilityRouterMap<TRouter = unknown> {
|
|
|
557
563
|
readonly zoneRules: TRouter;
|
|
558
564
|
readonly zones: TRouter;
|
|
559
565
|
}
|
|
560
|
-
/** Capability names whose mode is `singleton` (
|
|
561
|
-
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', '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'];
|
|
562
568
|
/** Union of singleton capability names (literal string union). */
|
|
563
569
|
export type SingletonCapabilityName = typeof SINGLETON_CAPABILITY_NAMES[number];
|
|
564
570
|
/** Capability names whose mode is `collection` (35 caps). */
|
|
@@ -27,6 +27,8 @@ 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';
|
|
31
|
+
import { groupStatusCapability } from '../capabilities/group-status.cap.js';
|
|
30
32
|
import { heatingValveCapability } from '../capabilities/heating-valve.cap.js';
|
|
31
33
|
import { humidifierCapability } from '../capabilities/humidifier.cap.js';
|
|
32
34
|
import { humiditySensorCapability } from '../capabilities/humidity-sensor.cap.js';
|
|
@@ -111,6 +113,8 @@ export interface DeviceLocalState {
|
|
|
111
113
|
featureProbe: InferRuntimeState<typeof featureProbeCapability>;
|
|
112
114
|
flood: InferRuntimeState<typeof floodCapability>;
|
|
113
115
|
gas: InferRuntimeState<typeof gasCapability>;
|
|
116
|
+
groupCommands: InferRuntimeState<typeof groupCommandsCapability>;
|
|
117
|
+
groupStatus: InferRuntimeState<typeof groupStatusCapability>;
|
|
114
118
|
heatingValve: InferRuntimeState<typeof heatingValveCapability>;
|
|
115
119
|
humidifier: InferRuntimeState<typeof humidifierCapability>;
|
|
116
120
|
humiditySensor: InferRuntimeState<typeof humiditySensorCapability>;
|
|
@@ -205,6 +209,8 @@ export interface CapNameToRuntimeStateMap {
|
|
|
205
209
|
'feature-probe': InferRuntimeState<typeof featureProbeCapability>;
|
|
206
210
|
'flood': InferRuntimeState<typeof floodCapability>;
|
|
207
211
|
'gas': InferRuntimeState<typeof gasCapability>;
|
|
212
|
+
'group-commands': InferRuntimeState<typeof groupCommandsCapability>;
|
|
213
|
+
'group-status': InferRuntimeState<typeof groupStatusCapability>;
|
|
208
214
|
'heating-valve': InferRuntimeState<typeof heatingValveCapability>;
|
|
209
215
|
'humidifier': InferRuntimeState<typeof humidifierCapability>;
|
|
210
216
|
'humidity-sensor': InferRuntimeState<typeof humiditySensorCapability>;
|
|
@@ -40,6 +40,8 @@ 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';
|
|
44
|
+
import type { groupStatusCapability } from '../capabilities/group-status.cap.js';
|
|
43
45
|
import type { heatingValveCapability } from '../capabilities/heating-valve.cap.js';
|
|
44
46
|
import type { humidifierCapability } from '../capabilities/humidifier.cap.js';
|
|
45
47
|
import type { humiditySensorCapability } from '../capabilities/humidity-sensor.cap.js';
|
|
@@ -145,6 +147,8 @@ export interface DeviceProxyState {
|
|
|
145
147
|
readonly featureProbe: SliceHandle<InferRuntimeState<typeof featureProbeCapability>>;
|
|
146
148
|
readonly flood: SliceHandle<InferRuntimeState<typeof floodCapability>>;
|
|
147
149
|
readonly gas: SliceHandle<InferRuntimeState<typeof gasCapability>>;
|
|
150
|
+
readonly groupCommands: SliceHandle<InferRuntimeState<typeof groupCommandsCapability>>;
|
|
151
|
+
readonly groupStatus: SliceHandle<InferRuntimeState<typeof groupStatusCapability>>;
|
|
148
152
|
readonly heatingValve: SliceHandle<InferRuntimeState<typeof heatingValveCapability>>;
|
|
149
153
|
readonly humidifier: SliceHandle<InferRuntimeState<typeof humidifierCapability>>;
|
|
150
154
|
readonly humiditySensor: SliceHandle<InferRuntimeState<typeof humiditySensorCapability>>;
|
|
@@ -246,6 +250,8 @@ export interface DeviceProxy {
|
|
|
246
250
|
readonly featureProbe?: InferDeviceProxyCap<typeof featureProbeCapability>;
|
|
247
251
|
readonly flood?: InferDeviceProxyCap<typeof floodCapability>;
|
|
248
252
|
readonly gas?: InferDeviceProxyCap<typeof gasCapability>;
|
|
253
|
+
readonly groupCommands?: InferDeviceProxyCap<typeof groupCommandsCapability>;
|
|
254
|
+
readonly groupStatus?: InferDeviceProxyCap<typeof groupStatusCapability>;
|
|
249
255
|
readonly heatingValve?: InferDeviceProxyCap<typeof heatingValveCapability>;
|
|
250
256
|
readonly humidifier?: InferDeviceProxyCap<typeof humidifierCapability>;
|
|
251
257
|
readonly humiditySensor?: InferDeviceProxyCap<typeof humiditySensorCapability>;
|
|
@@ -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'>;
|