@camstack/types 1.2.440 → 1.2.442
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/CHANGELOG.md +18 -0
- package/dist/addon.js +9 -3
- package/dist/addon.mjs +9 -3
- package/dist/capabilities/customize-catalog.d.ts +3 -0
- package/dist/capabilities/customize-spec.d.ts +20 -2
- package/dist/capabilities/index.d.ts +6 -2
- package/dist/capabilities/media-player.cap.d.ts +50 -0
- package/dist/capabilities/pet-feeder.cap.d.ts +9 -0
- package/dist/capabilities/remote.cap.d.ts +264 -0
- package/dist/capabilities/template.cap.d.ts +161 -0
- package/dist/client.js +14 -0
- package/dist/client.mjs +14 -0
- package/dist/{composition-DCmtFE-X.js → composition-C0dlyG9U.js} +17 -0
- package/dist/{composition-DpFv_J6D.mjs → composition-bIBW5_13.mjs} +12 -1
- package/dist/ffmpeg/invocation.d.ts +9 -0
- package/dist/generated/addon-api.d.ts +86 -0
- package/dist/generated/addon-cap-facts.d.ts +1 -1
- package/dist/generated/cap-input-defaults.d.ts +1 -1
- package/dist/generated/capability-router-map.d.ts +10 -4
- package/dist/generated/collection-array-methods.d.ts +1 -1
- package/dist/generated/customize-catalog.d.ts +18 -1
- package/dist/generated/method-access-map.d.ts +1 -1
- package/dist/generated/method-device-selectors.d.ts +2 -2
- package/dist/generated/system-proxy.d.ts +4 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +863 -72
- package/dist/index.mjs +815 -73
- package/dist/interfaces/device-call-redirect.d.ts +42 -0
- package/dist/interfaces/kernel-abstractions.d.ts +12 -0
- package/dist/node.js +1 -1
- package/dist/node.mjs +1 -1
- package/dist/remote/remote-config.d.ts +116 -0
- package/dist/remote/remote-roles.d.ts +21 -0
- package/dist/remote/smartir-draft.d.ts +25 -0
- package/dist/{sleep-g6ZjBHBL.js → sleep-BpwNJ1Su.js} +19 -0
- package/dist/{sleep-BAvUCi_2.mjs → sleep-DJws6ho7.mjs} +19 -0
- package/dist/template/template-kinds.d.ts +26 -0
- package/package.json +1 -1
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type InferProvider } from './capability-definition.js';
|
|
3
|
+
/**
|
|
4
|
+
* template — the generic store of reusable, named operator data (D963). A
|
|
5
|
+
* record is `{ id, kind, name, payload }`; the kinds (today only `remote`, the
|
|
6
|
+
* button grid of a remote) and the schema each payload must satisfy are
|
|
7
|
+
* declared by the system in `template-kinds.ts`. Nothing here is specific to a
|
|
8
|
+
* kind: the engine validates a payload against its kind's schema and, on a
|
|
9
|
+
* delete, asks the kind's owner whether anything still points at the record.
|
|
10
|
+
*
|
|
11
|
+
* Every refusal is a typed result — a UI says "unknown kind" or names the
|
|
12
|
+
* devices that still use a template, without parsing text.
|
|
13
|
+
*/
|
|
14
|
+
export declare const TemplateRecordSchema: z.ZodObject<{
|
|
15
|
+
id: z.ZodString;
|
|
16
|
+
kind: z.ZodEnum<{
|
|
17
|
+
remote: "remote";
|
|
18
|
+
}>;
|
|
19
|
+
name: z.ZodString;
|
|
20
|
+
payload: z.ZodUnknown;
|
|
21
|
+
createdAt: z.ZodNumber;
|
|
22
|
+
updatedAt: z.ZodNumber;
|
|
23
|
+
}, z.core.$strip>;
|
|
24
|
+
export type TemplateRecord = z.infer<typeof TemplateRecordSchema>;
|
|
25
|
+
export declare const TEMPLATE_WRITE_REFUSALS: readonly ['invalid-payload', 'not-found'];
|
|
26
|
+
export declare const TemplateWriteResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
27
|
+
status: z.ZodLiteral<"saved">;
|
|
28
|
+
template: z.ZodObject<{
|
|
29
|
+
id: z.ZodString;
|
|
30
|
+
kind: z.ZodEnum<{
|
|
31
|
+
remote: "remote";
|
|
32
|
+
}>;
|
|
33
|
+
name: z.ZodString;
|
|
34
|
+
payload: z.ZodUnknown;
|
|
35
|
+
createdAt: z.ZodNumber;
|
|
36
|
+
updatedAt: z.ZodNumber;
|
|
37
|
+
}, z.core.$strip>;
|
|
38
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
39
|
+
status: z.ZodLiteral<"refused">;
|
|
40
|
+
reason: z.ZodEnum<{
|
|
41
|
+
"invalid-payload": "invalid-payload";
|
|
42
|
+
"not-found": "not-found";
|
|
43
|
+
}>;
|
|
44
|
+
detail: z.ZodString;
|
|
45
|
+
}, z.core.$strip>], "status">;
|
|
46
|
+
export type TemplateWriteResult = z.infer<typeof TemplateWriteResultSchema>;
|
|
47
|
+
/** A device still pointing at a template. */
|
|
48
|
+
export declare const TemplateUserSchema: z.ZodObject<{
|
|
49
|
+
deviceId: z.ZodNumber;
|
|
50
|
+
name: z.ZodString;
|
|
51
|
+
}, z.core.$strip>;
|
|
52
|
+
export type TemplateUser = z.infer<typeof TemplateUserSchema>;
|
|
53
|
+
export declare const TemplateDeleteResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
54
|
+
status: z.ZodLiteral<"deleted">;
|
|
55
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
56
|
+
status: z.ZodLiteral<"not-found">;
|
|
57
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
58
|
+
status: z.ZodLiteral<"in-use">;
|
|
59
|
+
devices: z.ZodArray<z.ZodObject<{
|
|
60
|
+
deviceId: z.ZodNumber;
|
|
61
|
+
name: z.ZodString;
|
|
62
|
+
}, z.core.$strip>>;
|
|
63
|
+
}, z.core.$strip>], "status">;
|
|
64
|
+
export type TemplateDeleteResult = z.infer<typeof TemplateDeleteResultSchema>;
|
|
65
|
+
export declare const templateCapability: {
|
|
66
|
+
readonly name: 'template';
|
|
67
|
+
readonly scope: 'system';
|
|
68
|
+
readonly mode: 'collection';
|
|
69
|
+
readonly methods: {
|
|
70
|
+
readonly list: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
71
|
+
kind: z.ZodOptional<z.ZodEnum<{
|
|
72
|
+
remote: "remote";
|
|
73
|
+
}>>;
|
|
74
|
+
}, z.core.$strip>, z.ZodArray<z.ZodObject<{
|
|
75
|
+
id: z.ZodString;
|
|
76
|
+
kind: z.ZodEnum<{
|
|
77
|
+
remote: "remote";
|
|
78
|
+
}>;
|
|
79
|
+
name: z.ZodString;
|
|
80
|
+
payload: z.ZodUnknown;
|
|
81
|
+
createdAt: z.ZodNumber;
|
|
82
|
+
updatedAt: z.ZodNumber;
|
|
83
|
+
}, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
84
|
+
readonly get: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
85
|
+
id: z.ZodString;
|
|
86
|
+
}, z.core.$strip>, z.ZodNullable<z.ZodObject<{
|
|
87
|
+
id: z.ZodString;
|
|
88
|
+
kind: z.ZodEnum<{
|
|
89
|
+
remote: "remote";
|
|
90
|
+
}>;
|
|
91
|
+
name: z.ZodString;
|
|
92
|
+
payload: z.ZodUnknown;
|
|
93
|
+
createdAt: z.ZodNumber;
|
|
94
|
+
updatedAt: z.ZodNumber;
|
|
95
|
+
}, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
96
|
+
readonly create: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
97
|
+
kind: z.ZodEnum<{
|
|
98
|
+
remote: "remote";
|
|
99
|
+
}>;
|
|
100
|
+
name: z.ZodString;
|
|
101
|
+
payload: z.ZodUnknown;
|
|
102
|
+
}, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
103
|
+
status: z.ZodLiteral<"saved">;
|
|
104
|
+
template: z.ZodObject<{
|
|
105
|
+
id: z.ZodString;
|
|
106
|
+
kind: z.ZodEnum<{
|
|
107
|
+
remote: "remote";
|
|
108
|
+
}>;
|
|
109
|
+
name: z.ZodString;
|
|
110
|
+
payload: z.ZodUnknown;
|
|
111
|
+
createdAt: z.ZodNumber;
|
|
112
|
+
updatedAt: z.ZodNumber;
|
|
113
|
+
}, z.core.$strip>;
|
|
114
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
115
|
+
status: z.ZodLiteral<"refused">;
|
|
116
|
+
reason: z.ZodEnum<{
|
|
117
|
+
"invalid-payload": "invalid-payload";
|
|
118
|
+
"not-found": "not-found";
|
|
119
|
+
}>;
|
|
120
|
+
detail: z.ZodString;
|
|
121
|
+
}, z.core.$strip>], "status">, "mutation">;
|
|
122
|
+
readonly update: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
123
|
+
id: z.ZodString;
|
|
124
|
+
name: z.ZodOptional<z.ZodString>;
|
|
125
|
+
payload: z.ZodOptional<z.ZodUnknown>;
|
|
126
|
+
}, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
127
|
+
status: z.ZodLiteral<"saved">;
|
|
128
|
+
template: z.ZodObject<{
|
|
129
|
+
id: z.ZodString;
|
|
130
|
+
kind: z.ZodEnum<{
|
|
131
|
+
remote: "remote";
|
|
132
|
+
}>;
|
|
133
|
+
name: z.ZodString;
|
|
134
|
+
payload: z.ZodUnknown;
|
|
135
|
+
createdAt: z.ZodNumber;
|
|
136
|
+
updatedAt: z.ZodNumber;
|
|
137
|
+
}, z.core.$strip>;
|
|
138
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
139
|
+
status: z.ZodLiteral<"refused">;
|
|
140
|
+
reason: z.ZodEnum<{
|
|
141
|
+
"invalid-payload": "invalid-payload";
|
|
142
|
+
"not-found": "not-found";
|
|
143
|
+
}>;
|
|
144
|
+
detail: z.ZodString;
|
|
145
|
+
}, z.core.$strip>], "status">, "mutation">;
|
|
146
|
+
readonly delete: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
147
|
+
id: z.ZodString;
|
|
148
|
+
}, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
149
|
+
status: z.ZodLiteral<"deleted">;
|
|
150
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
151
|
+
status: z.ZodLiteral<"not-found">;
|
|
152
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
153
|
+
status: z.ZodLiteral<"in-use">;
|
|
154
|
+
devices: z.ZodArray<z.ZodObject<{
|
|
155
|
+
deviceId: z.ZodNumber;
|
|
156
|
+
name: z.ZodString;
|
|
157
|
+
}, z.core.$strip>>;
|
|
158
|
+
}, z.core.$strip>], "status">, "mutation">;
|
|
159
|
+
};
|
|
160
|
+
};
|
|
161
|
+
export type ITemplateProvider = InferProvider<typeof templateCapability>;
|
package/dist/client.js
CHANGED
|
@@ -28939,6 +28939,13 @@ function createSystemProxy(api) {
|
|
|
28939
28939
|
getDownloadUrl: (input) => dispatch("recordingExport", "getDownloadUrl", "query", input),
|
|
28940
28940
|
readExportBytes: (input) => dispatch("recordingExport", "readExportBytes", "query", input)
|
|
28941
28941
|
},
|
|
28942
|
+
remote: {
|
|
28943
|
+
getConfig: (input) => dispatch("remote", "getConfig", "query", input),
|
|
28944
|
+
setConfig: (input) => dispatch("remote", "setConfig", "mutation", input),
|
|
28945
|
+
listCommands: (input) => dispatch("remote", "listCommands", "query", input),
|
|
28946
|
+
sendCommand: (input) => dispatch("remote", "sendCommand", "mutation", input),
|
|
28947
|
+
sendMediaCommand: (input) => dispatch("remote", "sendMediaCommand", "mutation", input)
|
|
28948
|
+
},
|
|
28942
28949
|
serverManagement: {
|
|
28943
28950
|
getServerPackageStatus: (input) => dispatch("serverManagement", "getServerPackageStatus", "query", input),
|
|
28944
28951
|
checkServerUpdate: (input) => dispatch("serverManagement", "checkServerUpdate", "mutation", input),
|
|
@@ -29046,6 +29053,13 @@ function createSystemProxy(api) {
|
|
|
29046
29053
|
getLoggingSettings: (input) => dispatch("system", "getLoggingSettings", "query", input),
|
|
29047
29054
|
setLoggingSettings: (input) => dispatch("system", "setLoggingSettings", "mutation", input)
|
|
29048
29055
|
},
|
|
29056
|
+
template: {
|
|
29057
|
+
list: (input) => dispatch("template", "list", "query", input),
|
|
29058
|
+
get: (input) => dispatch("template", "get", "query", input),
|
|
29059
|
+
create: (input) => dispatch("template", "create", "mutation", input),
|
|
29060
|
+
update: (input) => dispatch("template", "update", "mutation", input),
|
|
29061
|
+
delete: (input) => dispatch("template", "delete", "mutation", input)
|
|
29062
|
+
},
|
|
29049
29063
|
terminalSession: {
|
|
29050
29064
|
listProfiles: (input) => dispatch("terminalSession", "listProfiles", "query", input),
|
|
29051
29065
|
listInstances: (input) => dispatch("terminalSession", "listInstances", "query", input),
|
package/dist/client.mjs
CHANGED
|
@@ -28938,6 +28938,13 @@ function createSystemProxy(api) {
|
|
|
28938
28938
|
getDownloadUrl: (input) => dispatch("recordingExport", "getDownloadUrl", "query", input),
|
|
28939
28939
|
readExportBytes: (input) => dispatch("recordingExport", "readExportBytes", "query", input)
|
|
28940
28940
|
},
|
|
28941
|
+
remote: {
|
|
28942
|
+
getConfig: (input) => dispatch("remote", "getConfig", "query", input),
|
|
28943
|
+
setConfig: (input) => dispatch("remote", "setConfig", "mutation", input),
|
|
28944
|
+
listCommands: (input) => dispatch("remote", "listCommands", "query", input),
|
|
28945
|
+
sendCommand: (input) => dispatch("remote", "sendCommand", "mutation", input),
|
|
28946
|
+
sendMediaCommand: (input) => dispatch("remote", "sendMediaCommand", "mutation", input)
|
|
28947
|
+
},
|
|
28941
28948
|
serverManagement: {
|
|
28942
28949
|
getServerPackageStatus: (input) => dispatch("serverManagement", "getServerPackageStatus", "query", input),
|
|
28943
28950
|
checkServerUpdate: (input) => dispatch("serverManagement", "checkServerUpdate", "mutation", input),
|
|
@@ -29045,6 +29052,13 @@ function createSystemProxy(api) {
|
|
|
29045
29052
|
getLoggingSettings: (input) => dispatch("system", "getLoggingSettings", "query", input),
|
|
29046
29053
|
setLoggingSettings: (input) => dispatch("system", "setLoggingSettings", "mutation", input)
|
|
29047
29054
|
},
|
|
29055
|
+
template: {
|
|
29056
|
+
list: (input) => dispatch("template", "list", "query", input),
|
|
29057
|
+
get: (input) => dispatch("template", "get", "query", input),
|
|
29058
|
+
create: (input) => dispatch("template", "create", "mutation", input),
|
|
29059
|
+
update: (input) => dispatch("template", "update", "mutation", input),
|
|
29060
|
+
delete: (input) => dispatch("template", "delete", "mutation", input)
|
|
29061
|
+
},
|
|
29048
29062
|
terminalSession: {
|
|
29049
29063
|
listProfiles: (input) => dispatch("terminalSession", "listProfiles", "query", input),
|
|
29050
29064
|
listInstances: (input) => dispatch("terminalSession", "listInstances", "query", input),
|
|
@@ -459,6 +459,15 @@ function audioPlanFromEncodeProfile(audio) {
|
|
|
459
459
|
* plane. Width / height / fps / bitrate in the profile are a downstream BUDGET,
|
|
460
460
|
* not a forced rescale.
|
|
461
461
|
*/
|
|
462
|
+
/**
|
|
463
|
+
* Probe bound for an input that is one of OUR OWN RTSP restreams. Not zero: a
|
|
464
|
+
* zero-length probe makes ffmpeg trust the SDP completely, and a restream that
|
|
465
|
+
* announces a track it never sends would leave the mapping wrong unnoticed.
|
|
466
|
+
*/
|
|
467
|
+
var RESTREAM_INPUT_PROBE = {
|
|
468
|
+
analyzeDurationUs: 2e5,
|
|
469
|
+
probeSizeBytes: 64 * 1024
|
|
470
|
+
};
|
|
462
471
|
function invocationFromEncodeProfile(input) {
|
|
463
472
|
const v = input.profile.video;
|
|
464
473
|
const shouldCopy = v.codec === "copy" || input.forceReencode !== true && v.codec === input.sourceCodec;
|
|
@@ -496,6 +505,8 @@ function invocationFromEncodeProfile(input) {
|
|
|
496
505
|
url: input.sourceUrl,
|
|
497
506
|
rtspTransport: "tcp",
|
|
498
507
|
fflags: ["+discardcorrupt"],
|
|
508
|
+
analyzeDurationUs: RESTREAM_INPUT_PROBE.analyzeDurationUs,
|
|
509
|
+
probeSizeBytes: RESTREAM_INPUT_PROBE.probeSizeBytes,
|
|
499
510
|
...input.profile.inputArgs?.length ? { extraArgs: input.profile.inputArgs } : {}
|
|
500
511
|
},
|
|
501
512
|
video,
|
|
@@ -3837,6 +3848,12 @@ Object.defineProperty(exports, "RESET_PERIODS", {
|
|
|
3837
3848
|
return RESET_PERIODS;
|
|
3838
3849
|
}
|
|
3839
3850
|
});
|
|
3851
|
+
Object.defineProperty(exports, "RESTREAM_INPUT_PROBE", {
|
|
3852
|
+
enumerable: true,
|
|
3853
|
+
get: function() {
|
|
3854
|
+
return RESTREAM_INPUT_PROBE;
|
|
3855
|
+
}
|
|
3856
|
+
});
|
|
3840
3857
|
Object.defineProperty(exports, "ROLLING_SPANS", {
|
|
3841
3858
|
enumerable: true,
|
|
3842
3859
|
get: function() {
|
|
@@ -459,6 +459,15 @@ function audioPlanFromEncodeProfile(audio) {
|
|
|
459
459
|
* plane. Width / height / fps / bitrate in the profile are a downstream BUDGET,
|
|
460
460
|
* not a forced rescale.
|
|
461
461
|
*/
|
|
462
|
+
/**
|
|
463
|
+
* Probe bound for an input that is one of OUR OWN RTSP restreams. Not zero: a
|
|
464
|
+
* zero-length probe makes ffmpeg trust the SDP completely, and a restream that
|
|
465
|
+
* announces a track it never sends would leave the mapping wrong unnoticed.
|
|
466
|
+
*/
|
|
467
|
+
var RESTREAM_INPUT_PROBE = {
|
|
468
|
+
analyzeDurationUs: 2e5,
|
|
469
|
+
probeSizeBytes: 64 * 1024
|
|
470
|
+
};
|
|
462
471
|
function invocationFromEncodeProfile(input) {
|
|
463
472
|
const v = input.profile.video;
|
|
464
473
|
const shouldCopy = v.codec === "copy" || input.forceReencode !== true && v.codec === input.sourceCodec;
|
|
@@ -496,6 +505,8 @@ function invocationFromEncodeProfile(input) {
|
|
|
496
505
|
url: input.sourceUrl,
|
|
497
506
|
rtspTransport: "tcp",
|
|
498
507
|
fflags: ["+discardcorrupt"],
|
|
508
|
+
analyzeDurationUs: RESTREAM_INPUT_PROBE.analyzeDurationUs,
|
|
509
|
+
probeSizeBytes: RESTREAM_INPUT_PROBE.probeSizeBytes,
|
|
499
510
|
...input.profile.inputArgs?.length ? { extraArgs: input.profile.inputArgs } : {}
|
|
500
511
|
},
|
|
501
512
|
video,
|
|
@@ -3339,4 +3350,4 @@ function featureSources(feature) {
|
|
|
3339
3350
|
return featureFieldEntries(feature).map((e) => e.source);
|
|
3340
3351
|
}
|
|
3341
3352
|
//#endregion
|
|
3342
|
-
export { GroupTemplateIdSchema as $, validateExpressionSource as $t, composedDeviceStableId as A, sliceActiveValue as An, planResetTier as At, AGGREGATE_REDUCERS as B, AUDIO_PRESETS as Bn, wattMillisecondsToKwh as Bt, CompositionSeriesSourceSchema as C, SOURCE_CAPS as Cn, RollingWindowSchema as Ct, MAX_COMPOSITION_FIELDS_PER_FEATURE as D, evaluateSensorEdge as Dn, nextLocalMidnight as Dt, MAX_COMPOSITION_FEATURES as E, SOURCE_DEVICE_TYPES as En, maxDurationMs as Et, compositionSourceKey as F, FFMPEG_RELEASE as Fn, STATISTIC_STATS as Ft, ArithmeticHelperSpecSchema as G,
|
|
3353
|
+
export { GroupTemplateIdSchema as $, validateExpressionSource as $t, composedDeviceStableId as A, sliceActiveValue as An, planResetTier as At, AGGREGATE_REDUCERS as B, AUDIO_PRESETS as Bn, wattMillisecondsToKwh as Bt, CompositionSeriesSourceSchema as C, SOURCE_CAPS as Cn, RollingWindowSchema as Ct, MAX_COMPOSITION_FIELDS_PER_FEATURE as D, evaluateSensorEdge as Dn, nextLocalMidnight as Dt, MAX_COMPOSITION_FEATURES as E, SOURCE_DEVICE_TYPES as En, maxDurationMs as Et, compositionSourceKey as F, FFMPEG_RELEASE as Fn, STATISTIC_STATS as Ft, ArithmeticHelperSpecSchema as G, buildInputArgs as Gn, isApplianceKind as Gt, ActiveCriterionSchema as H, audioPlanFromEncodeProfile as Hn, APPLIANCE_KINDS as Ht, featureFieldEntries as I, getFfmpegArtifact as In, evaluateDerivative as It, DerivativeHelperSpecSchema as J, isSoftwareDecode as Jn, cloneStatefulExpressionMemory as Jt, BINARY_AGGREGATES as K, buildVideoArgs as Kn, sourcePickForAppliance as Kt, featureSources as L, getFfmpegDownloadUrl as Ln, evaluateStatistic as Lt, compositionItemFieldPath as M, FFMPEG_PATH_ENV as Mn, rollingDurationMs as Mt, compositionReadKey as N, chooseFfmpegBinary as Nn, statisticCadenceMs as Nt, MAX_COMPOSITION_ITEMS as O, evaluateSensorLevelEdge as On, openReset as Ot, compositionSliceKey as P, ffmpegBinaryName as Pn, SERIES_KINDS as Pt, GroupHelperSpecSchema as Q, toExpressionValue as Qt, fieldReads as R, canonicalHash as Rn, integrateReading as Rt, CompositionSchema as S, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as Sn, ROLLING_SPANS as St, MAX_COMPOSITION_CODE_LENGTH as T, SOURCE_CAP_CHANGED_AT_FIELD as Tn, integralCadenceMs as Tt, AggregateReducerSchema as U, buildAudioArgs as Un, APPLIANCE_TEMPLATE_ID as Ut, ARITHMETIC_OPS as V, RESTREAM_INPUT_PROBE as Vn, APPLIANCE_DEFAULTS as Vt, ApplianceHelperSpecSchema as W, buildFfmpegArgs as Wn, applianceDeviceType as Wt, ExpressionHelperSpecSchema as X, pickVideoEncoder as Xn, evaluateExpressionSource as Xt, EXPRESSION_OUTPUTS as Y, logBannerArgs as Yn, createStatefulExpressionMemory as Yt, GROUP_TEMPLATE_IDS as Z, resolveStreamMaps as Zn, evaluateStatefulExpressionCall as Zt, CompositionFromSourceSchema as _, evaluateCount as _n, HISTORY_TIERS as _t, CUSTOMIZATION_BLOCK_NAME_PREFIX as a, tokenize as an, NUMERIC_AGGREGATES as at, CompositionNewTargetSchema as b, ExpressionEvalError as bn, MIN_CUSTOM_MINUTES as bt, CompositionCodeSourceSchema as c, MAX_EXPRESSION_AST_NODES as cn, helperMembers as ct, CompositionExpressionSourceSchema as d, MAX_EXPRESSION_EVAL_STEPS as dn, CALENDAR_PERIODS as dt, createExpressionScope as en, HelperMemberSchema as et, CompositionFeatureSchema as f, MAX_EXPRESSION_SOURCE_LENGTH as fn, CalendarWindowSchema as ft, CompositionForwardCommandSchema as g, disarmRoseMemory as gn, HISTORY_SLOW_MS as gt, CompositionFieldsFeatureSchema as h, EXPRESSION_BUILTIN_NAMES as hn, HISTORY_FAST_MS as ht, COMPOSITION_ITEM_KEY_RE as i, parseExpression as in, MAX_HELPER_MEMBERS as it, compositionFeatureEnabled as j, sliceChangedAt as jn, planStatisticTier as jt, composedDeviceRef as k, isSourceCap as kn, openStatistic as kt, CompositionCommandTargetSchema as l, MAX_EXPRESSION_BINDINGS as ln, isHistoryHelper as lt, CompositionFieldSourceSchema as m, EXPRESSION_BUILTINS as mn, DEFAULT_HISTORY_RETENTION as mt, COMPOSER_ADDON_ID as n, compileExpression as nn, INTEGRAL_OUTPUTS as nt, CompositionAggregateSourceSchema as o, EXPRESSION_COMPILE_CACHE_CAPACITY as on, StatisticHelperSpecSchema as ot, CompositionFieldReadSchema as p, RESERVED_BINDING_NAMES as pn, DAY_MS as pt, DERIVATIVE_UNITS as q, invocationFromEncodeProfile as qn, EXPRESSION_INJECTED_NOW as qt, COMPOSITION_ITEM_ARRAY_PATH as r, compileExpressionSafe as rn, IntegralHelperSpecSchema as rt, CompositionBindingSchema as s, EXPRESSION_IDENTIFIER_RE as sn, ThresholdHelperSpecSchema as st, COMPOSED_DEVICE_STABLE_ID_PREFIX as t, evaluateAst as tn, HelperSpecSchema as tt, CompositionExistingTargetSchema as u, MAX_EXPRESSION_CALL_ARGS as un, CompositionSourceRefSchema as ut, CompositionItemEntrySchema as v, evaluateRose as vn, HOUR_MS as vt, CompositionTargetSchema as w, SOURCE_CAP_ACTIVE_FIELD as wn, StatisticWindowSchema as wt, CompositionPassthroughFeatureSchema as x, ExpressionParseError as xn, RESET_PERIODS as xt, CompositionLiteralBindingSchema as y, isStatefulBuiltin as yn, MINUTE_MS as yt, ACTIVE_CRITERIA as z, Fmp4BoxSplitter as zn, KWH_PER_WATT_MS as zt };
|
|
@@ -570,4 +570,13 @@ export interface EncodeProfileInvocationInput {
|
|
|
570
570
|
* plane. Width / height / fps / bitrate in the profile are a downstream BUDGET,
|
|
571
571
|
* not a forced rescale.
|
|
572
572
|
*/
|
|
573
|
+
/**
|
|
574
|
+
* Probe bound for an input that is one of OUR OWN RTSP restreams. Not zero: a
|
|
575
|
+
* zero-length probe makes ffmpeg trust the SDP completely, and a restream that
|
|
576
|
+
* announces a track it never sends would leave the mapping wrong unnoticed.
|
|
577
|
+
*/
|
|
578
|
+
export declare const RESTREAM_INPUT_PROBE: {
|
|
579
|
+
readonly analyzeDurationUs: 200000;
|
|
580
|
+
readonly probeSizeBytes: number;
|
|
581
|
+
};
|
|
573
582
|
export declare function invocationFromEncodeProfile(input: EncodeProfileInvocationInput): FfmpegInvocation;
|
|
@@ -117,6 +117,7 @@ import type { recordingOnboardCapability } from '../capabilities/recording-onboa
|
|
|
117
117
|
import type { recordingSignalCapability } from '../capabilities/recording-signal.cap.js';
|
|
118
118
|
import type { recordingCapability } from '../capabilities/recording.cap.js';
|
|
119
119
|
import type { recordsCapability } from '../capabilities/records.cap.js';
|
|
120
|
+
import type { remoteCapability } from '../capabilities/remote.cap.js';
|
|
120
121
|
import type { sceneMonitorCapability } from '../capabilities/scene-monitor.cap.js';
|
|
121
122
|
import type { scriptRunnerCapability } from '../capabilities/script-runner.cap.js';
|
|
122
123
|
import type { serverManagementCapability } from '../capabilities/server-management.cap.js';
|
|
@@ -136,6 +137,7 @@ import type { streamParamsCapability } from '../capabilities/stream-params.cap.j
|
|
|
136
137
|
import type { streamSignalsCapability } from '../capabilities/stream-signals.cap.js';
|
|
137
138
|
import type { switchCapability } from '../capabilities/switch.cap.js';
|
|
138
139
|
import type { systemCapability } from '../capabilities/system.cap.js';
|
|
140
|
+
import type { templateCapability } from '../capabilities/template.cap.js';
|
|
139
141
|
import type { terminalSessionCapability } from '../capabilities/terminal-session.cap.js';
|
|
140
142
|
import type { toastCapability } from '../capabilities/toast.cap.js';
|
|
141
143
|
import type { trainingProviderCapability } from '../capabilities/training-provider.cap.js';
|
|
@@ -8788,6 +8790,48 @@ export type AppRouter = TrpcCoreRouter<{
|
|
|
8788
8790
|
meta: object;
|
|
8789
8791
|
}>;
|
|
8790
8792
|
}>>;
|
|
8793
|
+
remote: TRPCBuiltRouter<{
|
|
8794
|
+
ctx: TrpcContext;
|
|
8795
|
+
meta: object;
|
|
8796
|
+
errorShape: AugmentedErrorShape;
|
|
8797
|
+
transformer: true;
|
|
8798
|
+
}, TRPCDecorateCreateRouterOptions<{
|
|
8799
|
+
getConfig: TRPCQueryProcedure<{
|
|
8800
|
+
input: {
|
|
8801
|
+
[x: string]: unknown;
|
|
8802
|
+
} & z.input<typeof remoteCapability.methods.getConfig.input>;
|
|
8803
|
+
output: z.infer<typeof remoteCapability.methods.getConfig.output>;
|
|
8804
|
+
meta: object;
|
|
8805
|
+
}>;
|
|
8806
|
+
setConfig: TRPCMutationProcedure<{
|
|
8807
|
+
input: {
|
|
8808
|
+
[x: string]: unknown;
|
|
8809
|
+
} & z.input<typeof remoteCapability.methods.setConfig.input>;
|
|
8810
|
+
output: z.infer<typeof remoteCapability.methods.setConfig.output>;
|
|
8811
|
+
meta: object;
|
|
8812
|
+
}>;
|
|
8813
|
+
listCommands: TRPCQueryProcedure<{
|
|
8814
|
+
input: {
|
|
8815
|
+
[x: string]: unknown;
|
|
8816
|
+
} & z.input<typeof remoteCapability.methods.listCommands.input>;
|
|
8817
|
+
output: z.infer<typeof remoteCapability.methods.listCommands.output>;
|
|
8818
|
+
meta: object;
|
|
8819
|
+
}>;
|
|
8820
|
+
sendCommand: TRPCMutationProcedure<{
|
|
8821
|
+
input: {
|
|
8822
|
+
[x: string]: unknown;
|
|
8823
|
+
} & z.input<typeof remoteCapability.methods.sendCommand.input>;
|
|
8824
|
+
output: z.infer<typeof remoteCapability.methods.sendCommand.output>;
|
|
8825
|
+
meta: object;
|
|
8826
|
+
}>;
|
|
8827
|
+
sendMediaCommand: TRPCMutationProcedure<{
|
|
8828
|
+
input: {
|
|
8829
|
+
[x: string]: unknown;
|
|
8830
|
+
} & z.input<typeof remoteCapability.methods.sendMediaCommand.input>;
|
|
8831
|
+
output: z.infer<typeof remoteCapability.methods.sendMediaCommand.output>;
|
|
8832
|
+
meta: object;
|
|
8833
|
+
}>;
|
|
8834
|
+
}>>;
|
|
8791
8835
|
runningState: TRPCBuiltRouter<{
|
|
8792
8836
|
ctx: TrpcContext;
|
|
8793
8837
|
meta: object;
|
|
@@ -10138,6 +10182,48 @@ export type AppRouter = TrpcCoreRouter<{
|
|
|
10138
10182
|
meta: object;
|
|
10139
10183
|
}>;
|
|
10140
10184
|
}>>;
|
|
10185
|
+
template: TRPCBuiltRouter<{
|
|
10186
|
+
ctx: TrpcContext;
|
|
10187
|
+
meta: object;
|
|
10188
|
+
errorShape: AugmentedErrorShape;
|
|
10189
|
+
transformer: true;
|
|
10190
|
+
}, TRPCDecorateCreateRouterOptions<{
|
|
10191
|
+
list: TRPCQueryProcedure<{
|
|
10192
|
+
input: {
|
|
10193
|
+
[x: string]: unknown;
|
|
10194
|
+
} & z.input<typeof templateCapability.methods.list.input>;
|
|
10195
|
+
output: z.infer<typeof templateCapability.methods.list.output>;
|
|
10196
|
+
meta: object;
|
|
10197
|
+
}>;
|
|
10198
|
+
get: TRPCQueryProcedure<{
|
|
10199
|
+
input: {
|
|
10200
|
+
[x: string]: unknown;
|
|
10201
|
+
} & z.input<typeof templateCapability.methods.get.input>;
|
|
10202
|
+
output: z.infer<typeof templateCapability.methods.get.output>;
|
|
10203
|
+
meta: object;
|
|
10204
|
+
}>;
|
|
10205
|
+
create: TRPCMutationProcedure<{
|
|
10206
|
+
input: {
|
|
10207
|
+
[x: string]: unknown;
|
|
10208
|
+
} & z.input<typeof templateCapability.methods.create.input>;
|
|
10209
|
+
output: z.infer<typeof templateCapability.methods.create.output>;
|
|
10210
|
+
meta: object;
|
|
10211
|
+
}>;
|
|
10212
|
+
update: TRPCMutationProcedure<{
|
|
10213
|
+
input: {
|
|
10214
|
+
[x: string]: unknown;
|
|
10215
|
+
} & z.input<typeof templateCapability.methods.update.input>;
|
|
10216
|
+
output: z.infer<typeof templateCapability.methods.update.output>;
|
|
10217
|
+
meta: object;
|
|
10218
|
+
}>;
|
|
10219
|
+
delete: TRPCMutationProcedure<{
|
|
10220
|
+
input: {
|
|
10221
|
+
[x: string]: unknown;
|
|
10222
|
+
} & z.input<typeof templateCapability.methods.delete.input>;
|
|
10223
|
+
output: z.infer<typeof templateCapability.methods.delete.output>;
|
|
10224
|
+
meta: object;
|
|
10225
|
+
}>;
|
|
10226
|
+
}>>;
|
|
10141
10227
|
terminalSession: TRPCBuiltRouter<{
|
|
10142
10228
|
ctx: TrpcContext;
|
|
10143
10229
|
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, 77 caps with
|
|
8
|
+
* Coverage: 1 advance-derived caps, 77 caps with 360 state leaves.
|
|
9
9
|
*/
|
|
10
10
|
/** A bindable scalar in a capability's runtime state. */
|
|
11
11
|
export interface CapStateLeaf {
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* Plain data, zero Zod: a forked runner must not import the schema barrel
|
|
12
12
|
* (~144MB RSS per runner — D28).
|
|
13
13
|
*
|
|
14
|
-
* Coverage:
|
|
14
|
+
* Coverage: 30 caps, 75 methods with defaults.
|
|
15
15
|
*/
|
|
16
16
|
export declare const CAP_INPUT_DEFAULTS: Readonly<Record<string, Readonly<Record<string, Readonly<Record<string, unknown>>>>>>;
|
|
17
17
|
/**
|
|
@@ -143,6 +143,7 @@ export { recordingExportCapability } from '../capabilities/recording-export.cap.
|
|
|
143
143
|
export { recordingOnboardCapability } from '../capabilities/recording-onboard.cap.js';
|
|
144
144
|
export { recordingSignalCapability } from '../capabilities/recording-signal.cap.js';
|
|
145
145
|
export { recordsCapability } from '../capabilities/records.cap.js';
|
|
146
|
+
export { remoteCapability } from '../capabilities/remote.cap.js';
|
|
146
147
|
export { runningStateCapability } from '../capabilities/running-state.cap.js';
|
|
147
148
|
export { sceneMonitorCapability } from '../capabilities/scene-monitor.cap.js';
|
|
148
149
|
export { scriptRunnerCapability } from '../capabilities/script-runner.cap.js';
|
|
@@ -166,6 +167,7 @@ export { switchCapability } from '../capabilities/switch.cap.js';
|
|
|
166
167
|
export { systemCapability } from '../capabilities/system.cap.js';
|
|
167
168
|
export { tamperCapability } from '../capabilities/tamper.cap.js';
|
|
168
169
|
export { temperatureSensorCapability } from '../capabilities/temperature-sensor.cap.js';
|
|
170
|
+
export { templateCapability } from '../capabilities/template.cap.js';
|
|
169
171
|
export { terminalSessionCapability } from '../capabilities/terminal-session.cap.js';
|
|
170
172
|
export { toastCapability } from '../capabilities/toast.cap.js';
|
|
171
173
|
export { trainingCapability } from '../capabilities/training.cap.js';
|
|
@@ -332,6 +334,7 @@ export declare const CAPABILITY_NAMES: {
|
|
|
332
334
|
readonly recordingOnboard: 'recording-onboard';
|
|
333
335
|
readonly recordingSignal: 'recording-signal';
|
|
334
336
|
readonly records: 'records';
|
|
337
|
+
readonly remote: 'remote';
|
|
335
338
|
readonly runningState: 'running-state';
|
|
336
339
|
readonly sceneMonitor: 'scene-monitor';
|
|
337
340
|
readonly scriptRunner: 'script-runner';
|
|
@@ -355,6 +358,7 @@ export declare const CAPABILITY_NAMES: {
|
|
|
355
358
|
readonly system: 'system';
|
|
356
359
|
readonly tamper: 'tamper';
|
|
357
360
|
readonly temperatureSensor: 'temperature-sensor';
|
|
361
|
+
readonly template: 'template';
|
|
358
362
|
readonly terminalSession: 'terminal-session';
|
|
359
363
|
readonly toast: 'toast';
|
|
360
364
|
readonly training: 'training';
|
|
@@ -534,6 +538,7 @@ export interface CapabilityRouterMap<TRouter = unknown> {
|
|
|
534
538
|
readonly recordingOnboard: TRouter;
|
|
535
539
|
readonly recordingSignal: TRouter;
|
|
536
540
|
readonly records: TRouter;
|
|
541
|
+
readonly remote: TRouter;
|
|
537
542
|
readonly runningState: TRouter;
|
|
538
543
|
readonly sceneMonitor: TRouter;
|
|
539
544
|
readonly scriptRunner: TRouter;
|
|
@@ -557,6 +562,7 @@ export interface CapabilityRouterMap<TRouter = unknown> {
|
|
|
557
562
|
readonly system: TRouter;
|
|
558
563
|
readonly tamper: TRouter;
|
|
559
564
|
readonly temperatureSensor: TRouter;
|
|
565
|
+
readonly template: TRouter;
|
|
560
566
|
readonly terminalSession: TRouter;
|
|
561
567
|
readonly toast: TRouter;
|
|
562
568
|
readonly training: TRouter;
|
|
@@ -578,12 +584,12 @@ export interface CapabilityRouterMap<TRouter = unknown> {
|
|
|
578
584
|
readonly zoneRules: TRouter;
|
|
579
585
|
readonly zones: TRouter;
|
|
580
586
|
}
|
|
581
|
-
/** Capability names whose mode is `singleton` (
|
|
582
|
-
export declare const SINGLETON_CAPABILITY_NAMES: readonly ['accessories', 'actions', '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-active', 'group-commands', 'group-status', 'heating-valve', 'humidifier', 'humidity-sensor', 'image', 'image-settings', 'integrations', 'intercom', 'ir-transmitter', 'keychain', 'keychain-admin', 'lawn-mower-control', 'llm-runtime', 'local-network', 'lock-control', 'media-player', 'meter', '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'];
|
|
587
|
+
/** Capability names whose mode is `singleton` (153 caps). */
|
|
588
|
+
export declare const SINGLETON_CAPABILITY_NAMES: readonly ['accessories', 'actions', '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-active', 'group-commands', 'group-status', 'heating-valve', 'humidifier', 'humidity-sensor', 'image', 'image-settings', 'integrations', 'intercom', 'ir-transmitter', 'keychain', 'keychain-admin', 'lawn-mower-control', 'llm-runtime', 'local-network', 'lock-control', 'media-player', 'meter', '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', 'remote', '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'];
|
|
583
589
|
/** Union of singleton capability names (literal string union). */
|
|
584
590
|
export type SingletonCapabilityName = typeof SINGLETON_CAPABILITY_NAMES[number];
|
|
585
|
-
/** Capability names whose mode is `collection` (
|
|
586
|
-
export declare const COLLECTION_CAPABILITY_NAMES: readonly ['action-source', 'addon-pages-source', 'addon-routes', 'addon-widgets-source', 'auth-provider', 'broker', 'calendar-source', 'connection-test', 'custom-model-registry', 'data-store-provider', 'device-adoption', 'device-export', 'device-extension', 'device-provider', 'device-removal-hook', 'embedding-encoder', 'failure-contribution', 'llm', 'load-contribution', 'log-channels', 'log-destination', 'login-method', 'mesh-network', 'mqtt-broker', 'network-access', 'notification-output', 'oauth-integration', 'recording', 'smtp-provider', 'storage-evictable', 'storage-occupancy', 'storage-provider', 'training-provider', 'turn-provider', 'user-passkeys', 'videoclips'];
|
|
591
|
+
/** Capability names whose mode is `collection` (37 caps). */
|
|
592
|
+
export declare const COLLECTION_CAPABILITY_NAMES: readonly ['action-source', 'addon-pages-source', 'addon-routes', 'addon-widgets-source', 'auth-provider', 'broker', 'calendar-source', 'connection-test', 'custom-model-registry', 'data-store-provider', 'device-adoption', 'device-export', 'device-extension', 'device-provider', 'device-removal-hook', 'embedding-encoder', 'failure-contribution', 'llm', 'load-contribution', 'log-channels', 'log-destination', 'login-method', 'mesh-network', 'mqtt-broker', 'network-access', 'notification-output', 'oauth-integration', 'recording', 'smtp-provider', 'storage-evictable', 'storage-occupancy', 'storage-provider', 'template', 'training-provider', 'turn-provider', 'user-passkeys', 'videoclips'];
|
|
587
593
|
/** Union of collection capability names (literal string union). */
|
|
588
594
|
export type CollectionCapabilityName = typeof COLLECTION_CAPABILITY_NAMES[number];
|
|
589
595
|
/** Capability mode lookup at runtime — mirrors the `.cap.ts` definitions. */
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* barrel (`ALL_CAPABILITY_DEFINITIONS`), which would cost ~144MB RSS per
|
|
9
9
|
* forked runner. See docs/decisions/adr-0028.md.
|
|
10
10
|
*
|
|
11
|
-
* Coverage:
|
|
11
|
+
* Coverage: 28 collection caps, 46 array methods.
|
|
12
12
|
*/
|
|
13
13
|
export declare const COLLECTION_ARRAY_METHODS: Readonly<Record<string, readonly string[]>>;
|
|
14
14
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DeviceType } from '../device/device-type.js';
|
|
2
2
|
/**
|
|
3
3
|
* Customize catalog, projected from every `*.cap.ts` `customize` block.
|
|
4
|
-
*
|
|
4
|
+
* 7 caps. Field keys are `runtimeState` paths. No Zod.
|
|
5
5
|
*/
|
|
6
6
|
export declare const CAP_CUSTOMIZE_CATALOG: {
|
|
7
7
|
readonly battery: {
|
|
@@ -318,6 +318,23 @@ export declare const CAP_CUSTOMIZE_CATALOG: {
|
|
|
318
318
|
}];
|
|
319
319
|
}];
|
|
320
320
|
};
|
|
321
|
+
readonly remote: {
|
|
322
|
+
readonly version: 1;
|
|
323
|
+
readonly targets: readonly [{
|
|
324
|
+
readonly id: 'remote';
|
|
325
|
+
readonly cardinality: 'config';
|
|
326
|
+
readonly deviceTypes: readonly [DeviceType.MediaPlayer];
|
|
327
|
+
readonly apply: 'add';
|
|
328
|
+
readonly readMethod: 'getConfig';
|
|
329
|
+
readonly writeMethod: 'setConfig';
|
|
330
|
+
readonly vocabularyCap: 'remote';
|
|
331
|
+
readonly sources: readonly [];
|
|
332
|
+
readonly sourceReport: {
|
|
333
|
+
readonly status: 'assignment-status';
|
|
334
|
+
};
|
|
335
|
+
readonly advancedExpression: false;
|
|
336
|
+
}];
|
|
337
|
+
};
|
|
321
338
|
readonly 'running-state': {
|
|
322
339
|
readonly version: 1;
|
|
323
340
|
readonly targets: readonly [{
|
|
@@ -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: 1416 method paths across 190 capabilities.
|
|
10
10
|
*/
|
|
11
11
|
import type { MethodRole } from '../auth/viewer-access.js';
|
|
12
12
|
import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
* system-scope cap that takes a deviceId was previously never device-filtered
|
|
7
7
|
* — see the generator header).
|
|
8
8
|
*
|
|
9
|
-
* Coverage:
|
|
10
|
-
*
|
|
9
|
+
* Coverage: 562 methods carry a device reference, of which
|
|
10
|
+
* 184 are on SYSTEM-scope caps.
|
|
11
11
|
*
|
|
12
12
|
* Top-level fields, number arrays, and one-level arrays of objects carrying
|
|
13
13
|
* a numeric device field (targets[].deviceId) are all mapped; the matcher
|
|
@@ -45,12 +45,14 @@ import type { plateGalleryCapability } from '../capabilities/plate-gallery.cap.j
|
|
|
45
45
|
import type { recordEntriesCapability } from '../capabilities/record-entries.cap.js';
|
|
46
46
|
import type { recordingArchiveCapability } from '../capabilities/recording-archive.cap.js';
|
|
47
47
|
import type { recordingExportCapability } from '../capabilities/recording-export.cap.js';
|
|
48
|
+
import type { remoteCapability } from '../capabilities/remote.cap.js';
|
|
48
49
|
import type { serverManagementCapability } from '../capabilities/server-management.cap.js';
|
|
49
50
|
import type { settingsStoreCapability } from '../capabilities/settings-store.cap.js';
|
|
50
51
|
import type { storageCapability } from '../capabilities/storage.cap.js';
|
|
51
52
|
import type { storageMigrationCapability } from '../capabilities/storage-migration.cap.js';
|
|
52
53
|
import type { streamBrokerCapability } from '../capabilities/stream-broker.cap.js';
|
|
53
54
|
import type { systemCapability } from '../capabilities/system.cap.js';
|
|
55
|
+
import type { templateCapability } from '../capabilities/template.cap.js';
|
|
54
56
|
import type { terminalSessionCapability } from '../capabilities/terminal-session.cap.js';
|
|
55
57
|
import type { toastCapability } from '../capabilities/toast.cap.js';
|
|
56
58
|
import type { trainingCapability } from '../capabilities/training.cap.js';
|
|
@@ -110,12 +112,14 @@ export interface SystemProxy {
|
|
|
110
112
|
readonly recordEntries: Pick<InferProvider<typeof recordEntriesCapability>, 'listEntryKinds' | 'listEntries' | 'putEntry' | 'deleteEntry'>;
|
|
111
113
|
readonly recordingArchive: Pick<InferProvider<typeof recordingArchiveCapability>, 'getAvailabilityBatch' | 'getDaysWithRecordingsBatch' | 'getStorageUsage' | 'listOpsLog' | 'pauseForStorageMigration' | 'resumeForStorageMigration' | 'refreshStorageLocationsForMigration' | 'startStorageMigrationMove' | 'getStorageMigrationMoveStatus' | 'cancelStorageMigrationMove' | 'relocateFootage' | 'listRelocateJobs' | 'getRelocateResidue' | 'reconcileLedgerAgainstDisk' | 'cancelRelocateJob' | 'planStorageRebalance' | 'startStorageRebalance' | 'getPlacement' | 'setDevicePlacement'>;
|
|
112
114
|
readonly recordingExport: Pick<InferProvider<typeof recordingExportCapability>, 'createExport' | 'getExport' | 'cancelExport' | 'deleteExport' | 'getDownloadUrl' | 'readExportBytes'>;
|
|
115
|
+
readonly remote: Pick<InferProvider<typeof remoteCapability>, 'getConfig' | 'setConfig' | 'listCommands' | 'sendCommand' | 'sendMediaCommand'>;
|
|
113
116
|
readonly serverManagement: Pick<InferProvider<typeof serverManagementCapability>, 'getServerPackageStatus' | 'checkServerUpdate' | 'applyServerUpdate' | 'rollbackServerUpdate' | 'restartServer'>;
|
|
114
117
|
readonly settingsStore: Pick<InferProvider<typeof settingsStoreCapability>, 'get' | 'set' | 'query' | 'upsert' | 'upsertMany' | 'insert' | 'insertMany' | 'transact' | 'update' | 'delete' | 'deleteWhere' | 'updateWhere' | 'count' | 'aggregate' | 'histogram' | 'isEmpty' | 'declareCollection'>;
|
|
115
118
|
readonly storage: Pick<InferProvider<typeof storageCapability>, 'resolve' | 'write' | 'read' | 'exists' | 'list' | 'delete' | 'getAvailableSpace' | 'beginUpload' | 'writeChunk' | 'finalizeUpload' | 'abortUpload' | 'beginDownload' | 'readChunk' | 'endDownload' | 'listLocations' | 'listLocationDeclarations' | 'upsertLocation' | 'deleteLocation' | 'listDrainProgress' | 'testLocation' | 'listProviders' | 'testConfig'>;
|
|
116
119
|
readonly storageMigration: Pick<InferProvider<typeof storageMigrationCapability>, 'plan' | 'start' | 'status' | 'cancel' | 'movers' | 'moverClearance' | 'residue' | 'drain' | 'cleanupStart' | 'cleanupStatus' | 'cleanupCancel' | 'history'>;
|
|
117
120
|
readonly streamBroker: Pick<InferProvider<typeof streamBrokerCapability>, 'fetchEventMedia' | 'listAllCameraStreams' | 'listAllProfileSlots' | 'getBrokerStats' | 'probeStream' | 'listClients' | 'getLiveViewerCounts' | 'killClient' | 'getStreamUrl' | 'getStreamWithCodec' | 'releaseStreamWithCodec' | 'acquireEgressTranscode' | 'releaseEgressTranscode' | 'subscribeAudioChunks' | 'pullAudioChunks' | 'unsubscribeAudioChunks' | 'setPreBufferDuration' | 'getPreBufferInfo' | 'getRtspPort' | 'getAllRtspEntries' | 'getRtspEntry' | 'regenerateRtspToken' | 'setRtspEnabled' | 'isRtspEnabled'>;
|
|
118
121
|
readonly system: Pick<InferProvider<typeof systemCapability>, 'info' | 'health' | 'featureFlags' | 'networkAddresses' | 'getRetentionConfig' | 'setRetentionConfig' | 'forceRetentionCleanup' | 'getSiteLocation' | 'setSiteLocation' | 'detectSiteLocation' | 'getRequestCensus' | 'getLoadContributions' | 'getFailureContributions' | 'getLoggingSettings' | 'setLoggingSettings'>;
|
|
122
|
+
readonly template: Pick<InferProvider<typeof templateCapability>, 'list' | 'get' | 'create' | 'update' | 'delete'>;
|
|
119
123
|
readonly terminalSession: Pick<InferProvider<typeof terminalSessionCapability>, 'listProfiles' | 'listInstances' | 'createInstance' | 'updateInstance' | 'deleteInstance' | 'setInstanceEnabled' | 'listLegacyCameras' | 'adoptLegacyMonitor' | 'listSessions' | 'openSession' | 'resize' | 'pullOutput' | 'writeInput' | 'close'>;
|
|
120
124
|
readonly toast: Pick<InferProvider<typeof toastCapability>, 'onToast'>;
|
|
121
125
|
readonly training: Pick<InferProvider<typeof trainingCapability>, 'listBaseModels' | 'planJob' | 'startJob' | 'startJobBatch' | 'listJobs' | 'getJob' | 'cancelJob' | 'getJobResult' | 'listCanaryTargets' | 'registerResult' | 'canaryResult' | 'rollbackCanary' | 'discardResult'>;
|