@camstack/types 1.1.39 → 1.1.41
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 +1 -1
- package/dist/addon.mjs +1 -1
- package/dist/capabilities/capability-definition.d.ts +26 -1
- package/dist/capabilities/pipeline-executor.cap.d.ts +4 -0
- package/dist/capabilities/snapshot.cap.d.ts +17 -0
- package/dist/generated/addon-api.d.ts +26 -0
- package/dist/generated/method-access-map.d.ts +1 -1
- package/dist/index.js +22 -2
- package/dist/index.mjs +22 -2
- package/dist/{sleep-BtS3xMHv.js → sleep-Dqd2OlRi.js} +19 -0
- package/dist/{sleep-DJaTV2D7.mjs → sleep-b4Jf2n33.mjs} +14 -1
- package/dist/types/pipeline-step.d.ts +16 -0
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_sleep = require("./sleep-
|
|
2
|
+
const require_sleep = require("./sleep-Dqd2OlRi.js");
|
|
3
3
|
const require_err_msg = require("./err-msg-COpsHMw2.js");
|
|
4
4
|
exports.BaseAddon = require_sleep.BaseAddon;
|
|
5
5
|
exports.DATAPLANE_SECRET_HEADER = require_sleep.DATAPLANE_SECRET_HEADER;
|
package/dist/addon.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { A as
|
|
1
|
+
import { A as parseJsonUnknown, D as asString, I as scopeKey, M as ReadinessRegistry, N as ReadinessTimeoutError, S as DeviceType, T as asJsonObject, a as viewerUiCapability, bt as EventCategory, ct as BaseAddon, ft as emitReadiness, i as deviceOpsCapability, j as DATAPLANE_SECRET_HEADER, lt as normalizeAddonInitResult, m as expandCapMethods, o as adminUiCapability, s as createDeviceProxy, t as sleep, xt as DisposerChain } from "./sleep-b4Jf2n33.mjs";
|
|
2
2
|
import { t as errMsg } from "./err-msg-IQTHeDzc.mjs";
|
|
3
3
|
export { BaseAddon, DATAPLANE_SECRET_HEADER, DeviceType, DisposerChain, EventCategory, ReadinessRegistry, ReadinessTimeoutError, adminUiCapability, asJsonObject, asString, createDeviceProxy, deviceOpsCapability, emitReadiness, errMsg, expandCapMethods, normalizeAddonInitResult, parseJsonUnknown, scopeKey, sleep, viewerUiCapability };
|
|
@@ -61,6 +61,14 @@ export interface CapabilityMethodSchema<TInput extends z.ZodType = z.ZodType, TO
|
|
|
61
61
|
readonly access?: CapabilityMethodAccess;
|
|
62
62
|
/** Moleculer action timeout override (ms). Overrides broker global requestTimeout for this action only. */
|
|
63
63
|
readonly timeoutMs?: number;
|
|
64
|
+
/**
|
|
65
|
+
* When true the method is served ONLY by the cap's system/wrapper provider —
|
|
66
|
+
* it is required on `InferProvider` but OPTIONAL on `InferNativeProvider`, so
|
|
67
|
+
* per-device driver natives (RtspCamera, OnvifCamera, …) don't stub out a
|
|
68
|
+
* wrapper-only concern (e.g. a cross-device cache-overview batch). Same
|
|
69
|
+
* rationale as the status-Partial on native providers.
|
|
70
|
+
*/
|
|
71
|
+
readonly systemOnly?: boolean;
|
|
64
72
|
}
|
|
65
73
|
/** Schema for a capability event (emitted to EventBus) */
|
|
66
74
|
export interface CapabilityEventSchema<TData extends z.ZodType = z.ZodType> {
|
|
@@ -659,8 +667,15 @@ export type InferProvider<T extends CapabilityDefinition> = {
|
|
|
659
667
|
* separate stops every device class (RtspCamera, OnvifCamera, …) from
|
|
660
668
|
* having to stub out three unused methods.
|
|
661
669
|
*/
|
|
670
|
+
type NativeMethodFn<M> = M extends CapabilityMethodSchema<infer TIn, infer TOut> ? M['kind'] extends 'subscription' ? (input: z.infer<TIn>, push: (value: z.infer<TOut>) => void) => (() => void) | void : (input: z.infer<TIn>) => Promise<z.infer<TOut>> : never;
|
|
662
671
|
export type InferNativeProvider<T extends CapabilityDefinition> = {
|
|
663
|
-
readonly [K in keyof T['methods']
|
|
672
|
+
readonly [K in keyof T['methods'] as T['methods'][K] extends {
|
|
673
|
+
systemOnly: true;
|
|
674
|
+
} ? never : K]: NativeMethodFn<T['methods'][K]>;
|
|
675
|
+
} & {
|
|
676
|
+
readonly [K in keyof T['methods'] as T['methods'][K] extends {
|
|
677
|
+
systemOnly: true;
|
|
678
|
+
} ? K : never]?: NativeMethodFn<T['methods'][K]>;
|
|
664
679
|
} & (T extends {
|
|
665
680
|
status: CapabilityStatusSchema;
|
|
666
681
|
} ? Partial<DeviceStatusContribution<InferStatus<T>>> : Record<never, never>);
|
|
@@ -736,9 +751,19 @@ export interface CapabilityMethodOptions<TKind extends CapabilityMethodKind = Ca
|
|
|
736
751
|
}
|
|
737
752
|
/** Shorthand to define a method schema */
|
|
738
753
|
export declare function method<TIn extends z.ZodType, TOut extends z.ZodType, TKind extends CapabilityMethodKind = 'query'>(input: TIn, output: TOut, options?: CapabilityMethodOptions<TKind>): CapabilityMethodSchema<TIn, TOut, TKind>;
|
|
754
|
+
/**
|
|
755
|
+
* A wrapper/system-only method: served exclusively by the cap's system-level
|
|
756
|
+
* provider (`InferProvider`), and OPTIONAL on `InferNativeProvider` so per-device
|
|
757
|
+
* driver natives don't stub out a wrapper concern (e.g. a cross-device cache
|
|
758
|
+
* overview). The `systemOnly: true` literal is what `InferNativeProvider` keys on.
|
|
759
|
+
*/
|
|
760
|
+
export declare function systemMethod<TIn extends z.ZodType, TOut extends z.ZodType, TKind extends CapabilityMethodKind = 'query'>(input: TIn, output: TOut, options?: CapabilityMethodOptions<TKind>): CapabilityMethodSchema<TIn, TOut, TKind> & {
|
|
761
|
+
readonly systemOnly: true;
|
|
762
|
+
};
|
|
739
763
|
/** Shorthand to define an event schema */
|
|
740
764
|
export declare function event<TData extends z.ZodType>(data: TData): CapabilityEventSchema<TData>;
|
|
741
765
|
/** Type guard: does this cap declare the D14 device-config archetype? */
|
|
742
766
|
export declare function isDeviceConfigCap(def: CapabilityDefinition | undefined): def is CapabilityDefinition & {
|
|
743
767
|
deviceConfig: DeviceConfigSpec;
|
|
744
768
|
};
|
|
769
|
+
export {};
|
|
@@ -156,6 +156,7 @@ declare const PipelineAddonSchemaSchema: z.ZodObject<{
|
|
|
156
156
|
defaultModelId: z.ZodString;
|
|
157
157
|
defaultModelIdByFormat: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
158
158
|
enabledByDefault: z.ZodOptional<z.ZodBoolean>;
|
|
159
|
+
backfillIntoExistingOverrides: z.ZodOptional<z.ZodBoolean>;
|
|
159
160
|
defaultConfidence: z.ZodNumber;
|
|
160
161
|
group: z.ZodOptional<z.ZodString>;
|
|
161
162
|
configSchema: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodCustom<ConfigField, ConfigField>>>>;
|
|
@@ -221,6 +222,7 @@ declare const PipelineSlotSchemaSchema: z.ZodObject<{
|
|
|
221
222
|
defaultModelId: z.ZodString;
|
|
222
223
|
defaultModelIdByFormat: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
223
224
|
enabledByDefault: z.ZodOptional<z.ZodBoolean>;
|
|
225
|
+
backfillIntoExistingOverrides: z.ZodOptional<z.ZodBoolean>;
|
|
224
226
|
defaultConfidence: z.ZodNumber;
|
|
225
227
|
group: z.ZodOptional<z.ZodString>;
|
|
226
228
|
configSchema: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodCustom<ConfigField, ConfigField>>>>;
|
|
@@ -326,6 +328,7 @@ declare const PipelineSchemaSchema: z.ZodObject<{
|
|
|
326
328
|
defaultModelId: z.ZodString;
|
|
327
329
|
defaultModelIdByFormat: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
328
330
|
enabledByDefault: z.ZodOptional<z.ZodBoolean>;
|
|
331
|
+
backfillIntoExistingOverrides: z.ZodOptional<z.ZodBoolean>;
|
|
329
332
|
defaultConfidence: z.ZodNumber;
|
|
330
333
|
group: z.ZodOptional<z.ZodString>;
|
|
331
334
|
configSchema: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodCustom<ConfigField, ConfigField>>>>;
|
|
@@ -644,6 +647,7 @@ export declare const pipelineExecutorCapability: {
|
|
|
644
647
|
defaultModelId: z.ZodString;
|
|
645
648
|
defaultModelIdByFormat: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
646
649
|
enabledByDefault: z.ZodOptional<z.ZodBoolean>;
|
|
650
|
+
backfillIntoExistingOverrides: z.ZodOptional<z.ZodBoolean>;
|
|
647
651
|
defaultConfidence: z.ZodNumber;
|
|
648
652
|
group: z.ZodOptional<z.ZodString>;
|
|
649
653
|
configSchema: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodCustom<ConfigField, ConfigField>>>>;
|
|
@@ -65,6 +65,23 @@ export declare const snapshotCapability: {
|
|
|
65
65
|
readonly invalidateCache: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
66
66
|
deviceId: z.ZodNumber;
|
|
67
67
|
}, z.core.$strip>, z.ZodVoid, "mutation">;
|
|
68
|
+
/**
|
|
69
|
+
* Cache-only batch overview — answers from the wrapper's in-memory cache in
|
|
70
|
+
* O(n) and NEVER triggers a capture. Lets a grid skip requesting images for
|
|
71
|
+
* devices that never produced a frame, and gives it an ETag per device for
|
|
72
|
+
* conditional (304-able) image fetches. `lastCapturedAt`/`cacheAgeMs`/`etag`
|
|
73
|
+
* are null for a device with no cached frame.
|
|
74
|
+
*/
|
|
75
|
+
readonly getSnapshotOverview: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
76
|
+
deviceIds: z.ZodArray<z.ZodNumber>;
|
|
77
|
+
}, z.core.$strip>, z.ZodArray<z.ZodObject<{
|
|
78
|
+
deviceId: z.ZodNumber;
|
|
79
|
+
lastCapturedAt: z.ZodNullable<z.ZodNumber>;
|
|
80
|
+
cacheAgeMs: z.ZodNullable<z.ZodNumber>;
|
|
81
|
+
etag: z.ZodNullable<z.ZodString>;
|
|
82
|
+
}, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind> & {
|
|
83
|
+
readonly systemOnly: true;
|
|
84
|
+
};
|
|
68
85
|
};
|
|
69
86
|
readonly status: {
|
|
70
87
|
readonly schema: z.ZodObject<{
|
|
@@ -12060,6 +12060,19 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
12060
12060
|
output: void;
|
|
12061
12061
|
meta: object;
|
|
12062
12062
|
}>;
|
|
12063
|
+
getSnapshotOverview: import("@trpc/server").TRPCQueryProcedure<{
|
|
12064
|
+
input: {
|
|
12065
|
+
[x: string]: unknown;
|
|
12066
|
+
deviceIds: number[];
|
|
12067
|
+
};
|
|
12068
|
+
output: {
|
|
12069
|
+
deviceId: number;
|
|
12070
|
+
lastCapturedAt: number | null;
|
|
12071
|
+
cacheAgeMs: number | null;
|
|
12072
|
+
etag: string | null;
|
|
12073
|
+
}[];
|
|
12074
|
+
meta: object;
|
|
12075
|
+
}>;
|
|
12063
12076
|
}>>;
|
|
12064
12077
|
ssoBridge: import("@trpc/server").TRPCBuiltRouter<{
|
|
12065
12078
|
ctx: TrpcContext;
|
|
@@ -26963,6 +26976,19 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
|
|
|
26963
26976
|
output: void;
|
|
26964
26977
|
meta: object;
|
|
26965
26978
|
}>;
|
|
26979
|
+
getSnapshotOverview: import("@trpc/server").TRPCQueryProcedure<{
|
|
26980
|
+
input: {
|
|
26981
|
+
[x: string]: unknown;
|
|
26982
|
+
deviceIds: number[];
|
|
26983
|
+
};
|
|
26984
|
+
output: {
|
|
26985
|
+
deviceId: number;
|
|
26986
|
+
lastCapturedAt: number | null;
|
|
26987
|
+
cacheAgeMs: number | null;
|
|
26988
|
+
etag: string | null;
|
|
26989
|
+
}[];
|
|
26990
|
+
meta: object;
|
|
26991
|
+
}>;
|
|
26966
26992
|
}>>;
|
|
26967
26993
|
ssoBridge: import("@trpc/server").TRPCBuiltRouter<{
|
|
26968
26994
|
ctx: TrpcContext;
|
|
@@ -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: 735 method paths across 112 capabilities.
|
|
10
10
|
*/
|
|
11
11
|
import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
|
|
12
12
|
export interface MethodAccessRecord {
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_sleep = require("./sleep-
|
|
2
|
+
const require_sleep = require("./sleep-Dqd2OlRi.js");
|
|
3
3
|
const require_err_msg = require("./err-msg-COpsHMw2.js");
|
|
4
4
|
let zod = require("zod");
|
|
5
5
|
//#region src/health/wiring-health.ts
|
|
@@ -7589,6 +7589,7 @@ var PipelineAddonSchemaSchema = zod.z.object({
|
|
|
7589
7589
|
defaultModelId: zod.z.string(),
|
|
7590
7590
|
defaultModelIdByFormat: zod.z.record(zod.z.string(), zod.z.string()).optional(),
|
|
7591
7591
|
enabledByDefault: zod.z.boolean().optional(),
|
|
7592
|
+
backfillIntoExistingOverrides: zod.z.boolean().optional(),
|
|
7592
7593
|
defaultConfidence: zod.z.number(),
|
|
7593
7594
|
group: zod.z.string().optional(),
|
|
7594
7595
|
configSchema: zod.z.array(ConfigFieldBridge).readonly().optional()
|
|
@@ -18751,7 +18752,20 @@ var snapshotCapability = {
|
|
|
18751
18752
|
invalidateCache: require_sleep.method(zod.z.object({ deviceId: zod.z.number() }), zod.z.void(), {
|
|
18752
18753
|
kind: "mutation",
|
|
18753
18754
|
auth: "admin"
|
|
18754
|
-
})
|
|
18755
|
+
}),
|
|
18756
|
+
/**
|
|
18757
|
+
* Cache-only batch overview — answers from the wrapper's in-memory cache in
|
|
18758
|
+
* O(n) and NEVER triggers a capture. Lets a grid skip requesting images for
|
|
18759
|
+
* devices that never produced a frame, and gives it an ETag per device for
|
|
18760
|
+
* conditional (304-able) image fetches. `lastCapturedAt`/`cacheAgeMs`/`etag`
|
|
18761
|
+
* are null for a device with no cached frame.
|
|
18762
|
+
*/
|
|
18763
|
+
getSnapshotOverview: require_sleep.systemMethod(zod.z.object({ deviceIds: zod.z.array(zod.z.number()).min(1).max(200) }), zod.z.array(zod.z.object({
|
|
18764
|
+
deviceId: zod.z.number(),
|
|
18765
|
+
lastCapturedAt: zod.z.number().nullable(),
|
|
18766
|
+
cacheAgeMs: zod.z.number().nullable(),
|
|
18767
|
+
etag: zod.z.string().nullable()
|
|
18768
|
+
})))
|
|
18755
18769
|
},
|
|
18756
18770
|
status: {
|
|
18757
18771
|
schema: SnapshotStatusSchema,
|
|
@@ -27258,6 +27272,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
27258
27272
|
addonId: null,
|
|
27259
27273
|
access: "view"
|
|
27260
27274
|
},
|
|
27275
|
+
"snapshot.getSnapshotOverview": {
|
|
27276
|
+
capName: "snapshot",
|
|
27277
|
+
capScope: "device",
|
|
27278
|
+
addonId: null,
|
|
27279
|
+
access: "view"
|
|
27280
|
+
},
|
|
27261
27281
|
"snapshot.invalidateCache": {
|
|
27262
27282
|
capName: "snapshot",
|
|
27263
27283
|
capScope: "device",
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as
|
|
1
|
+
import { $ as StreamSourceSchema, A as parseJsonUnknown, B as CamProfileSchema, C as asBoolean, D as asString, E as asNumber, F as readinessKey, G as DecodedFrameSchema, H as CamStreamResolutionSchema, I as scopeKey, J as FrameHandleSchema, K as EncodedPacketSchema, L as BrokerStatsSchema, M as ReadinessRegistry, N as ReadinessTimeoutError, O as parseJsonArray, P as emitDownForOwnedCaps, Q as StreamSourceEntrySchema, R as BrokerStatusSchema, S as DeviceType, T as asJsonObject, U as CameraStreamSchema, V as CamStreamKindSchema, W as DecodedAudioChunkSchema, X as ProfileSlotSchema, Y as ProfileRtspEntrySchema, Z as ProfileSlotStatusSchema, _ as resolveCapMount, _t as collectHydratedFieldValues, a as viewerUiCapability, at as makeSourceBrokerId, b as DeviceFeature, bt as EventCategory, c as createLazyTrpcSource, ct as BaseAddon, d as DEVICE_SETTINGS_CONTRIBUTION_METHODS, dt as createEvent, et as SubscribeAudioChunksInputSchema, f as DEVICE_STATUS_METHOD, ft as emitReadiness, g as method, gt as collectHydratedFieldEntries, h as isDeviceConfigCap, ht as WELL_KNOWN_TAB_MAP, i as deviceOpsCapability, it as makeProfileBrokerId, j as DATAPLANE_SECRET_HEADER, k as parseJsonObject, l as createMirrorSource, lt as normalizeAddonInitResult, m as expandCapMethods, mt as WELL_KNOWN_TABS, n as sleepCancellable, nt as SubscribeFramesInputSchema, o as adminUiCapability, ot as parseProfileBrokerId, p as event, pt as isEvent, q as FrameHandleFormatSchema, r as RawStateResultSchema, rt as SubscribeFramesResultSchema, s as createDeviceProxy, st as selectAssignedProfileSlots, t as sleep, tt as SubscribeAudioChunksResultSchema, u as createSliceHandle, ut as createDurableState, v as systemMethod, vt as hydrateSchema, w as asJsonArray, x as DeviceRole, xt as DisposerChain, y as ChargingStatus, yt as resolveHydratedFieldValue, z as CAM_PROFILE_ORDER } from "./sleep-b4Jf2n33.mjs";
|
|
2
2
|
import { t as errMsg } from "./err-msg-IQTHeDzc.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
//#region src/health/wiring-health.ts
|
|
@@ -7588,6 +7588,7 @@ var PipelineAddonSchemaSchema = z.object({
|
|
|
7588
7588
|
defaultModelId: z.string(),
|
|
7589
7589
|
defaultModelIdByFormat: z.record(z.string(), z.string()).optional(),
|
|
7590
7590
|
enabledByDefault: z.boolean().optional(),
|
|
7591
|
+
backfillIntoExistingOverrides: z.boolean().optional(),
|
|
7591
7592
|
defaultConfidence: z.number(),
|
|
7592
7593
|
group: z.string().optional(),
|
|
7593
7594
|
configSchema: z.array(ConfigFieldBridge).readonly().optional()
|
|
@@ -18750,7 +18751,20 @@ var snapshotCapability = {
|
|
|
18750
18751
|
invalidateCache: method(z.object({ deviceId: z.number() }), z.void(), {
|
|
18751
18752
|
kind: "mutation",
|
|
18752
18753
|
auth: "admin"
|
|
18753
|
-
})
|
|
18754
|
+
}),
|
|
18755
|
+
/**
|
|
18756
|
+
* Cache-only batch overview — answers from the wrapper's in-memory cache in
|
|
18757
|
+
* O(n) and NEVER triggers a capture. Lets a grid skip requesting images for
|
|
18758
|
+
* devices that never produced a frame, and gives it an ETag per device for
|
|
18759
|
+
* conditional (304-able) image fetches. `lastCapturedAt`/`cacheAgeMs`/`etag`
|
|
18760
|
+
* are null for a device with no cached frame.
|
|
18761
|
+
*/
|
|
18762
|
+
getSnapshotOverview: systemMethod(z.object({ deviceIds: z.array(z.number()).min(1).max(200) }), z.array(z.object({
|
|
18763
|
+
deviceId: z.number(),
|
|
18764
|
+
lastCapturedAt: z.number().nullable(),
|
|
18765
|
+
cacheAgeMs: z.number().nullable(),
|
|
18766
|
+
etag: z.string().nullable()
|
|
18767
|
+
})))
|
|
18754
18768
|
},
|
|
18755
18769
|
status: {
|
|
18756
18770
|
schema: SnapshotStatusSchema,
|
|
@@ -27257,6 +27271,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
27257
27271
|
addonId: null,
|
|
27258
27272
|
access: "view"
|
|
27259
27273
|
},
|
|
27274
|
+
"snapshot.getSnapshotOverview": {
|
|
27275
|
+
capName: "snapshot",
|
|
27276
|
+
capScope: "device",
|
|
27277
|
+
addonId: null,
|
|
27278
|
+
access: "view"
|
|
27279
|
+
},
|
|
27260
27280
|
"snapshot.invalidateCache": {
|
|
27261
27281
|
capName: "snapshot",
|
|
27262
27282
|
capScope: "device",
|
|
@@ -2853,6 +2853,18 @@ function method(input, output, options) {
|
|
|
2853
2853
|
timeoutMs: options?.timeoutMs
|
|
2854
2854
|
};
|
|
2855
2855
|
}
|
|
2856
|
+
/**
|
|
2857
|
+
* A wrapper/system-only method: served exclusively by the cap's system-level
|
|
2858
|
+
* provider (`InferProvider`), and OPTIONAL on `InferNativeProvider` so per-device
|
|
2859
|
+
* driver natives don't stub out a wrapper concern (e.g. a cross-device cache
|
|
2860
|
+
* overview). The `systemOnly: true` literal is what `InferNativeProvider` keys on.
|
|
2861
|
+
*/
|
|
2862
|
+
function systemMethod(input, output, options) {
|
|
2863
|
+
return {
|
|
2864
|
+
...method(input, output, options),
|
|
2865
|
+
systemOnly: true
|
|
2866
|
+
};
|
|
2867
|
+
}
|
|
2856
2868
|
/** Shorthand to define an event schema */
|
|
2857
2869
|
function event(data) {
|
|
2858
2870
|
return { data };
|
|
@@ -3443,6 +3455,7 @@ function createDeviceProxy(api, binding, opts) {
|
|
|
3443
3455
|
snapshot: {
|
|
3444
3456
|
getSnapshot: (input) => dispatch("snapshot", "snapshot", "getSnapshot", "query", input),
|
|
3445
3457
|
invalidateCache: (input) => dispatch("snapshot", "snapshot", "invalidateCache", "mutation", input),
|
|
3458
|
+
getSnapshotOverview: (input) => dispatch("snapshot", "snapshot", "getSnapshotOverview", "query", input),
|
|
3446
3459
|
getStatus: (input) => dispatch("snapshot", "snapshot", "getStatus", "query", input),
|
|
3447
3460
|
getDeviceSettingsContribution: (input) => dispatch("snapshot", "snapshot", "getDeviceSettingsContribution", "query", input),
|
|
3448
3461
|
getDeviceLiveContribution: (input) => dispatch("snapshot", "snapshot", "getDeviceLiveContribution", "query", input),
|
|
@@ -4290,6 +4303,12 @@ Object.defineProperty(exports, "sleepCancellable", {
|
|
|
4290
4303
|
return sleepCancellable;
|
|
4291
4304
|
}
|
|
4292
4305
|
});
|
|
4306
|
+
Object.defineProperty(exports, "systemMethod", {
|
|
4307
|
+
enumerable: true,
|
|
4308
|
+
get: function() {
|
|
4309
|
+
return systemMethod;
|
|
4310
|
+
}
|
|
4311
|
+
});
|
|
4293
4312
|
Object.defineProperty(exports, "viewerUiCapability", {
|
|
4294
4313
|
enumerable: true,
|
|
4295
4314
|
get: function() {
|
|
@@ -2853,6 +2853,18 @@ function method(input, output, options) {
|
|
|
2853
2853
|
timeoutMs: options?.timeoutMs
|
|
2854
2854
|
};
|
|
2855
2855
|
}
|
|
2856
|
+
/**
|
|
2857
|
+
* A wrapper/system-only method: served exclusively by the cap's system-level
|
|
2858
|
+
* provider (`InferProvider`), and OPTIONAL on `InferNativeProvider` so per-device
|
|
2859
|
+
* driver natives don't stub out a wrapper concern (e.g. a cross-device cache
|
|
2860
|
+
* overview). The `systemOnly: true` literal is what `InferNativeProvider` keys on.
|
|
2861
|
+
*/
|
|
2862
|
+
function systemMethod(input, output, options) {
|
|
2863
|
+
return {
|
|
2864
|
+
...method(input, output, options),
|
|
2865
|
+
systemOnly: true
|
|
2866
|
+
};
|
|
2867
|
+
}
|
|
2856
2868
|
/** Shorthand to define an event schema */
|
|
2857
2869
|
function event(data) {
|
|
2858
2870
|
return { data };
|
|
@@ -3443,6 +3455,7 @@ function createDeviceProxy(api, binding, opts) {
|
|
|
3443
3455
|
snapshot: {
|
|
3444
3456
|
getSnapshot: (input) => dispatch("snapshot", "snapshot", "getSnapshot", "query", input),
|
|
3445
3457
|
invalidateCache: (input) => dispatch("snapshot", "snapshot", "invalidateCache", "mutation", input),
|
|
3458
|
+
getSnapshotOverview: (input) => dispatch("snapshot", "snapshot", "getSnapshotOverview", "query", input),
|
|
3446
3459
|
getStatus: (input) => dispatch("snapshot", "snapshot", "getStatus", "query", input),
|
|
3447
3460
|
getDeviceSettingsContribution: (input) => dispatch("snapshot", "snapshot", "getDeviceSettingsContribution", "query", input),
|
|
3448
3461
|
getDeviceLiveContribution: (input) => dispatch("snapshot", "snapshot", "getDeviceLiveContribution", "query", input),
|
|
@@ -3852,4 +3865,4 @@ function sleepCancellable(ms, signal) {
|
|
|
3852
3865
|
});
|
|
3853
3866
|
}
|
|
3854
3867
|
//#endregion
|
|
3855
|
-
export {
|
|
3868
|
+
export { StreamSourceSchema as $, parseJsonUnknown as A, CamProfileSchema as B, asBoolean as C, asString as D, asNumber as E, readinessKey as F, DecodedFrameSchema as G, CamStreamResolutionSchema as H, scopeKey as I, FrameHandleSchema as J, EncodedPacketSchema as K, BrokerStatsSchema as L, ReadinessRegistry as M, ReadinessTimeoutError as N, parseJsonArray as O, emitDownForOwnedCaps as P, StreamSourceEntrySchema$1 as Q, BrokerStatusSchema as R, DeviceType as S, asJsonObject as T, CameraStreamSchema as U, CamStreamKindSchema as V, DecodedAudioChunkSchema as W, ProfileSlotSchema as X, ProfileRtspEntrySchema as Y, ProfileSlotStatusSchema as Z, resolveCapMount as _, collectHydratedFieldValues as _t, viewerUiCapability as a, makeSourceBrokerId as at, DeviceFeature as b, EventCategory as bt, createLazyTrpcSource as c, BaseAddon as ct, DEVICE_SETTINGS_CONTRIBUTION_METHODS as d, createEvent as dt, SubscribeAudioChunksInputSchema as et, DEVICE_STATUS_METHOD as f, emitReadiness as ft, method as g, collectHydratedFieldEntries as gt, isDeviceConfigCap as h, WELL_KNOWN_TAB_MAP as ht, deviceOpsCapability as i, makeProfileBrokerId as it, DATAPLANE_SECRET_HEADER as j, parseJsonObject as k, createMirrorSource as l, normalizeAddonInitResult as lt, expandCapMethods as m, WELL_KNOWN_TABS as mt, sleepCancellable as n, SubscribeFramesInputSchema as nt, adminUiCapability as o, parseProfileBrokerId as ot, event as p, isEvent as pt, FrameHandleFormatSchema as q, RawStateResultSchema as r, SubscribeFramesResultSchema as rt, createDeviceProxy as s, selectAssignedProfileSlots as st, sleep as t, SubscribeAudioChunksResultSchema as tt, createSliceHandle as u, createDurableState as ut, systemMethod as v, hydrateSchema as vt, asJsonArray as w, DeviceRole as x, DisposerChain as xt, ChargingStatus as y, resolveHydratedFieldValue as yt, CAM_PROFILE_ORDER as z };
|
|
@@ -48,6 +48,22 @@ export interface StepDefinition {
|
|
|
48
48
|
* rather than out).
|
|
49
49
|
*/
|
|
50
50
|
readonly enabledByDefault?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Opt-in: when `true`, this step is BACK-FILLED into a camera's stored
|
|
53
|
+
* wholesale pipeline override (`cameraSettings.pipelineByAgent`) at resolve
|
|
54
|
+
* time if it is absent from that snapshot — see
|
|
55
|
+
* `mergeEnabledByDefaultSteps`. Set this ONLY on a genuinely-NEW default
|
|
56
|
+
* step that shipped AFTER existing snapshots were captured and must reach
|
|
57
|
+
* them (e.g. `clip-embedding` for object semantic search).
|
|
58
|
+
*
|
|
59
|
+
* It exists because absence-from-a-snapshot is ambiguous: it can mean
|
|
60
|
+
* "predates this step" OR "operator deliberately pruned it". A broad
|
|
61
|
+
* "back-fill every default" would resurrect deliberate removals of
|
|
62
|
+
* long-existing steps (face-detection, etc.). This flag makes back-fill
|
|
63
|
+
* strictly opt-in so only a new step re-enters existing overrides; absent
|
|
64
|
+
* (the default) preserves operator intent verbatim. Absent = `false`.
|
|
65
|
+
*/
|
|
66
|
+
readonly backfillIntoExistingOverrides?: boolean;
|
|
51
67
|
/** Default confidence threshold */
|
|
52
68
|
readonly defaultConfidence: number;
|
|
53
69
|
/** Runtime label lookup (e.g., class name arrays for softmax, charset for CTC) */
|