@camstack/types 1.2.110 → 1.2.112
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/index.d.ts +1 -1
- package/dist/capabilities/notification-rules.cap.d.ts +20 -0
- package/dist/capabilities/pipeline-analytics.cap.d.ts +95 -0
- package/dist/capabilities/pipeline-executor.cap.d.ts +50 -0
- package/dist/capabilities/recording.cap.d.ts +48 -0
- package/dist/generated/addon-api.d.ts +35 -0
- package/dist/generated/device-proxy.d.ts +1 -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 +1 -1
- package/dist/index.js +2613 -2392
- package/dist/index.mjs +2613 -2393
- package/dist/{sleep-DnbNfEhn.js → sleep-CSodb2vQ.js} +3 -0
- package/dist/{sleep-swxwnJmL.mjs → sleep-CdbM8ge4.mjs} +3 -0
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_event_category = require("./event-category-EY0GNjV9.js");
|
|
3
|
-
const require_sleep = require("./sleep-
|
|
3
|
+
const require_sleep = require("./sleep-CSodb2vQ.js");
|
|
4
4
|
const require_err_msg = require("./err-msg-COpsHMw2.js");
|
|
5
5
|
//#region src/generated/cap-input-defaults.ts
|
|
6
6
|
/**
|
package/dist/addon.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as EventCategory } from "./event-category-CIa_iT6b.mjs";
|
|
2
|
-
import { B as ReadinessRegistry, E as adminUiCapability, L as nodePin, R as readNodePin, St as emitReadiness, T as DeviceType, V as ReadinessTimeoutError, W as scopeKey, _t as DisposerChain, a as asJsonObject, b as deviceOpsCapability, d as BOOT_RECOVERY_BACKOFF_MS, f as DEVICE_SCOPED_CAPS, gt as DATAPLANE_SECRET_HEADER, h as createEventBusSliceSource, j as expandCapMethods, m as createDeviceProxy, p as isDeviceScopedCap, s as asString, t as sleep, u as parseJsonUnknown, vt as BaseAddon, x as viewerUiCapability, yt as normalizeAddonInitResult } from "./sleep-
|
|
2
|
+
import { B as ReadinessRegistry, E as adminUiCapability, L as nodePin, R as readNodePin, St as emitReadiness, T as DeviceType, V as ReadinessTimeoutError, W as scopeKey, _t as DisposerChain, a as asJsonObject, b as deviceOpsCapability, d as BOOT_RECOVERY_BACKOFF_MS, f as DEVICE_SCOPED_CAPS, gt as DATAPLANE_SECRET_HEADER, h as createEventBusSliceSource, j as expandCapMethods, m as createDeviceProxy, p as isDeviceScopedCap, s as asString, t as sleep, u as parseJsonUnknown, vt as BaseAddon, x as viewerUiCapability, yt as normalizeAddonInitResult } from "./sleep-CdbM8ge4.mjs";
|
|
3
3
|
import { t as errMsg } from "./err-msg-IQTHeDzc.mjs";
|
|
4
4
|
//#region src/generated/cap-input-defaults.ts
|
|
5
5
|
/**
|
|
@@ -179,7 +179,7 @@ export { type IPrivacyMaskProvider, type PrivacyMaskOptions, PrivacyMaskOptionsS
|
|
|
179
179
|
export { type IPtzProvider, PtzMoveCommandSchema, type PtzOptions, PtzOptionsSchema, PtzPositionSchema, PtzPresetSchema, type PtzStatus, PtzStatusSchema, ptzCapability, } from './ptz.cap.js';
|
|
180
180
|
export { type IPtzAutotrackProvider, type PtzAutotrackRuntimeState, PtzAutotrackRuntimeStateSchema, type PtzAutotrackSettings, PtzAutotrackSettingsSchema, type PtzAutotrackStatus, PtzAutotrackStatusSchema, type PtzAutotrackTargetOption, PtzAutotrackTargetOptionSchema, ptzAutotrackCapability, } from './ptz-autotrack.cap.js';
|
|
181
181
|
export { type IRebootProvider, rebootCapability } from './reboot.cap.js';
|
|
182
|
-
export { type IRecordingProvider, type LocateSegmentResult, LocateSegmentResultSchema, type ReadGopBytesResult, ReadGopBytesResultSchema, type ReadSegmentBytesResult, ReadSegmentBytesResultSchema, type RecordingAvailability, RecordingAvailabilitySchema, type RecordingDays, RecordingDaysSchema, type RecordingDeviceUsage, RecordingDeviceUsageSchema, type RecordingLocationUsage, RecordingLocationUsageSchema, type RecordingManifest, RecordingManifestSchema, RecordingRangeSchema, type RecordingRebalanceInput, RecordingRebalanceInputSchema, type RecordingRebalanceMove, RecordingRebalanceMoveSchema, type RecordingRebalancePlan, RecordingRebalancePlanSchema, type RecordingRebalanceSkip, type RecordingRebalanceSkipReason, RecordingRebalanceSkipReasonSchema, RecordingRebalanceSkipSchema, type RecordingStatus, RecordingStatusSchema, type RecordingStorageUsage, RecordingStorageUsageSchema, recordingCapability, } from './recording.cap.js';
|
|
182
|
+
export { type IRecordingProvider, type LocateSegmentResult, LocateSegmentResultSchema, type ReadGopBytesResult, ReadGopBytesResultSchema, type ReadSegmentBytesResult, ReadSegmentBytesResultSchema, type ReadWindowBytesResult, ReadWindowBytesResultSchema, type RecordingAvailability, RecordingAvailabilitySchema, type RecordingDays, RecordingDaysSchema, type RecordingDeviceUsage, RecordingDeviceUsageSchema, type RecordingLocationUsage, RecordingLocationUsageSchema, type RecordingManifest, RecordingManifestSchema, RecordingRangeSchema, type RecordingRebalanceInput, RecordingRebalanceInputSchema, type RecordingRebalanceMove, RecordingRebalanceMoveSchema, type RecordingRebalancePlan, RecordingRebalancePlanSchema, type RecordingRebalanceSkip, type RecordingRebalanceSkipReason, RecordingRebalanceSkipReasonSchema, RecordingRebalanceSkipSchema, type RecordingStatus, RecordingStatusSchema, type RecordingStorageUsage, RecordingStorageUsageSchema, recordingCapability, } from './recording.cap.js';
|
|
183
183
|
export { EXPORT_DENSE_MAX_RANGES, type ExportBytes, ExportBytesSchema, type ExportDense, type ExportDenseRange, ExportDenseRangeSchema, ExportDenseSchema, type ExportDownload, ExportDownloadSchema, type ExportOptions, ExportOptionsSchema, type ExportRecord, ExportRecordSchema, ExportSpeedSchema, type ExportState, ExportStateSchema, ExportTimelapseSchema, type IRecordingExportProvider, RECORDING_EXPORT_MAX_READ_BYTES, recordingExportCapability, } from './recording-export.cap.js';
|
|
184
184
|
export { type ISceneMonitorProvider, SCENE_CONDITIONS, SCENE_CONFIRM_DEFAULT_MAX_IMAGE_PX, SCENE_CONFIRM_DEFAULT_TIMEOUT_MS, SCENE_DEFAULT_ANCHOR_THRESHOLD, SCENE_DEFAULT_CHECK_INTERVAL_SEC, SCENE_DEFAULT_OBSERVATION_SPACING_SEC, SCENE_DEFAULT_QUIET_SECONDS, SCENE_DEFAULT_UNCOVERED_POLICY, SCENE_DIVERGED, SCENE_RESET_RECAPTURES, type SceneCheck, SceneCheckSchema, type SceneCondition, SceneConditionSchema, type SceneConfirm, SceneConfirmSchema, type SceneMonitor, SceneMonitorSchema, type SceneMonitorState, SceneMonitorStateSchema, type SceneMonitorStatus, SceneMonitorStatusSchema, type SceneReference, SceneReferenceSchema, type SceneUnavailable, SceneUnavailableSchema, type SceneUncoveredPolicy, SceneUncoveredPolicySchema, type SceneVerdict, SceneVerdictSchema, sceneMonitorCapability, } from './scene-monitor.cap.js';
|
|
185
185
|
export { type ZoneRule, type ZoneRuleMode, ZoneRuleModeEnum, ZoneRuleSchema, type ZoneRules, ZoneRulesArraySchema, } from './schemas/zone-rule.js';
|
|
@@ -1812,6 +1812,7 @@ export declare const NcHistoryEntrySchema: z.ZodObject<{
|
|
|
1812
1812
|
data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
1813
1813
|
}, z.core.$strip>>;
|
|
1814
1814
|
}, z.core.$strip>;
|
|
1815
|
+
artifactIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1815
1816
|
}, z.core.$strip>;
|
|
1816
1817
|
export type NcHistoryEntry = z.infer<typeof NcHistoryEntrySchema>;
|
|
1817
1818
|
/** `getHistory` default page size + hard ceiling (bounded output). */
|
|
@@ -4047,8 +4048,27 @@ export declare const notificationRulesCapability: {
|
|
|
4047
4048
|
data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
4048
4049
|
}, z.core.$strip>>;
|
|
4049
4050
|
}, z.core.$strip>;
|
|
4051
|
+
artifactIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
4050
4052
|
}, z.core.$strip>>;
|
|
4051
4053
|
}, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
4054
|
+
/**
|
|
4055
|
+
* Mint a fresh, externally-reachable URL for one artefact a history row
|
|
4056
|
+
* named in {@link NcHistoryEntrySchema.shape.artifactIds} — the SAME
|
|
4057
|
+
* signed-link mechanism the dispatcher uses to attach media to an
|
|
4058
|
+
* outgoing notification (one derivation; this never re-implements it).
|
|
4059
|
+
*
|
|
4060
|
+
* `url: null` on THREE causes a caller must treat identically ("no image
|
|
4061
|
+
* right now", never a broken link): the id is unknown, its artefact has
|
|
4062
|
+
* expired past the retained shelf's own age bound, or this install has no
|
|
4063
|
+
* externally-reachable base URL. A caller that received a URL on a
|
|
4064
|
+
* previous call and now gets `null` must stop showing it — a link that
|
|
4065
|
+
* worked five minutes ago is not proof it works now.
|
|
4066
|
+
*/
|
|
4067
|
+
readonly resolveArtifactUrl: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
4068
|
+
artifactId: z.ZodString;
|
|
4069
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
4070
|
+
url: z.ZodNullable<z.ZodString>;
|
|
4071
|
+
}, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
4052
4072
|
/**
|
|
4053
4073
|
* Snooze windows currently in effect, plus any whose digest has not yet
|
|
4054
4074
|
* gone out. `caller: 'required'`: a user sees their OWN windows and the
|
|
@@ -1338,6 +1338,34 @@ declare const EventPruneCountsSchema: z.ZodObject<{
|
|
|
1338
1338
|
audio: z.ZodNumber;
|
|
1339
1339
|
}, z.core.$strip>;
|
|
1340
1340
|
export type EventPruneCounts = z.infer<typeof EventPruneCountsSchema>;
|
|
1341
|
+
declare const ReplayTrackSchema: z.ZodObject<{
|
|
1342
|
+
className: z.ZodString;
|
|
1343
|
+
firstSeenMs: z.ZodNumber;
|
|
1344
|
+
lastSeenMs: z.ZodNumber;
|
|
1345
|
+
bbox: z.ZodObject<{
|
|
1346
|
+
x: z.ZodNumber;
|
|
1347
|
+
y: z.ZodNumber;
|
|
1348
|
+
w: z.ZodNumber;
|
|
1349
|
+
h: z.ZodNumber;
|
|
1350
|
+
}, z.core.$strip>;
|
|
1351
|
+
framesMatched: z.ZodNumber;
|
|
1352
|
+
}, z.core.$strip>;
|
|
1353
|
+
declare const RunReplayFrameProcessorResultSchema: z.ZodObject<{
|
|
1354
|
+
tracks: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
1355
|
+
className: z.ZodString;
|
|
1356
|
+
firstSeenMs: z.ZodNumber;
|
|
1357
|
+
lastSeenMs: z.ZodNumber;
|
|
1358
|
+
bbox: z.ZodObject<{
|
|
1359
|
+
x: z.ZodNumber;
|
|
1360
|
+
y: z.ZodNumber;
|
|
1361
|
+
w: z.ZodNumber;
|
|
1362
|
+
h: z.ZodNumber;
|
|
1363
|
+
}, z.core.$strip>;
|
|
1364
|
+
framesMatched: z.ZodNumber;
|
|
1365
|
+
}, z.core.$strip>>>;
|
|
1366
|
+
}, z.core.$strip>;
|
|
1367
|
+
export type ReplayTrack = z.infer<typeof ReplayTrackSchema>;
|
|
1368
|
+
export type RunReplayFrameProcessorResult = z.infer<typeof RunReplayFrameProcessorResultSchema>;
|
|
1341
1369
|
export declare const pipelineAnalyticsCapability: {
|
|
1342
1370
|
readonly name: "pipeline-analytics";
|
|
1343
1371
|
readonly scope: "device";
|
|
@@ -2751,6 +2779,73 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
2751
2779
|
reason: z.ZodString;
|
|
2752
2780
|
detail: z.ZodOptional<z.ZodString>;
|
|
2753
2781
|
}, z.core.$strip>], "kind">, "mutation">;
|
|
2782
|
+
/**
|
|
2783
|
+
* The FrameProcessor pass of a replay run — see the `Replay` section
|
|
2784
|
+
* above this capability's definition for why this is not the
|
|
2785
|
+
* `processFrame` method this file's header says pipeline-analytics does
|
|
2786
|
+
* not have.
|
|
2787
|
+
*
|
|
2788
|
+
* Constructs a FRESH `FrameProcessor` for `(deviceId, source)`, feeds it
|
|
2789
|
+
* `frames` IN THE ORDER GIVEN (the caller is responsible for time
|
|
2790
|
+
* ordering — this method does not sort), and returns the tracks it
|
|
2791
|
+
* produced. Zero persistence: no `TrackStore`, no event bus, no media
|
|
2792
|
+
* capture. `zones` / `detectionRules` are the run's OWN zone set —
|
|
2793
|
+
* typically the camera's real zones plus an ephemeral overlay
|
|
2794
|
+
* (`addon-benchmark`'s `replay-plan.ts`), never read from or written to
|
|
2795
|
+
* the `zones` capability by this method itself.
|
|
2796
|
+
*/
|
|
2797
|
+
readonly runReplayFrameProcessor: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
2798
|
+
deviceId: z.ZodNumber;
|
|
2799
|
+
source: z.ZodEnum<{
|
|
2800
|
+
pipeline: "pipeline";
|
|
2801
|
+
onboard: "onboard";
|
|
2802
|
+
}>;
|
|
2803
|
+
zones: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
2804
|
+
id: z.ZodString;
|
|
2805
|
+
name: z.ZodString;
|
|
2806
|
+
kind: z.ZodDefault<z.ZodEnum<{
|
|
2807
|
+
polygon: "polygon";
|
|
2808
|
+
tripwire: "tripwire";
|
|
2809
|
+
}>>;
|
|
2810
|
+
polygon: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
2811
|
+
x: z.ZodNumber;
|
|
2812
|
+
y: z.ZodNumber;
|
|
2813
|
+
}, z.core.$strip>>>;
|
|
2814
|
+
color: z.ZodDefault<z.ZodString>;
|
|
2815
|
+
}, z.core.$strip>>>>;
|
|
2816
|
+
detectionRules: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
2817
|
+
id: z.ZodString;
|
|
2818
|
+
name: z.ZodOptional<z.ZodString>;
|
|
2819
|
+
zoneIds: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
2820
|
+
mode: z.ZodEnum<{
|
|
2821
|
+
include: "include";
|
|
2822
|
+
exclude: "exclude";
|
|
2823
|
+
}>;
|
|
2824
|
+
classFilter: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
|
|
2825
|
+
overlapThreshold: z.ZodOptional<z.ZodNumber>;
|
|
2826
|
+
bboxInclusionPct: z.ZodOptional<z.ZodNumber>;
|
|
2827
|
+
preferMask: z.ZodOptional<z.ZodBoolean>;
|
|
2828
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
2829
|
+
}, z.core.$strip>>>>;
|
|
2830
|
+
zoneMembershipMinOverlap: z.ZodOptional<z.ZodNumber>;
|
|
2831
|
+
frames: z.ZodArray<z.ZodObject<{
|
|
2832
|
+
timestamp: z.ZodNumber;
|
|
2833
|
+
frame: z.ZodCustom<import("../index.js").FrameResult, import("../index.js").FrameResult>;
|
|
2834
|
+
}, z.core.$strip>>;
|
|
2835
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
2836
|
+
tracks: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
2837
|
+
className: z.ZodString;
|
|
2838
|
+
firstSeenMs: z.ZodNumber;
|
|
2839
|
+
lastSeenMs: z.ZodNumber;
|
|
2840
|
+
bbox: z.ZodObject<{
|
|
2841
|
+
x: z.ZodNumber;
|
|
2842
|
+
y: z.ZodNumber;
|
|
2843
|
+
w: z.ZodNumber;
|
|
2844
|
+
h: z.ZodNumber;
|
|
2845
|
+
}, z.core.$strip>;
|
|
2846
|
+
framesMatched: z.ZodNumber;
|
|
2847
|
+
}, z.core.$strip>>>;
|
|
2848
|
+
}, z.core.$strip>, "mutation">;
|
|
2754
2849
|
/** Every annotation on a track, oldest first. */
|
|
2755
2850
|
readonly listRetrainAnnotations: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
2756
2851
|
trackId: z.ZodString;
|
|
@@ -638,6 +638,56 @@ export declare const pipelineExecutorCapability: {
|
|
|
638
638
|
success: z.ZodLiteral<true>;
|
|
639
639
|
clearedDevices: z.ZodNumber;
|
|
640
640
|
}, z.core.$strip>, "mutation">;
|
|
641
|
+
/**
|
|
642
|
+
* Which of THIS node's inference devices the executor currently refuses,
|
|
643
|
+
* and why. `nodeId` is the ROUTING key (stripped by the generated router).
|
|
644
|
+
*
|
|
645
|
+
* The channel that did not exist. Pool health was known only inside the
|
|
646
|
+
* detection addon and was an input to no routing decision anywhere: the
|
|
647
|
+
* per-dispatch capability gate is keyed on model FORMAT and so can never
|
|
648
|
+
* separate `openvino:gpu` from `openvino:npu`, and the orchestrator's live
|
|
649
|
+
* eligibility probe (`platformProbe.getCapabilities`) answers about
|
|
650
|
+
* HARDWARE — which was present throughout. So when the hub's `openvino:gpu`
|
|
651
|
+
* Python worker was SIGABRT'd by the Intel GPU plugin on 2026-08-25, the
|
|
652
|
+
* balancer went on handing that dead pool cameras by rotation for 31 hours:
|
|
653
|
+
* ~370 000 `PoolWorker[w0]: not initialized` lines, every frame lost.
|
|
654
|
+
*
|
|
655
|
+
* Read semantics the caller depends on, and which the provider guarantees:
|
|
656
|
+
* this is a synchronous read of in-memory state. It never probes hardware,
|
|
657
|
+
* never spawns a pool and never throws — an EMPTY `unhealthy` means "asked,
|
|
658
|
+
* nothing is refused", which is what re-admits a device. A read that FAILS
|
|
659
|
+
* (node offline, version skew) must therefore be distinguishable from an
|
|
660
|
+
* empty answer, and it is: it rejects.
|
|
661
|
+
*/
|
|
662
|
+
readonly getInferenceDeviceHealth: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
663
|
+
nodeId: z.ZodString;
|
|
664
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
665
|
+
unhealthy: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
666
|
+
deviceKey: z.ZodString;
|
|
667
|
+
state: z.ZodEnum<{
|
|
668
|
+
failed: "failed";
|
|
669
|
+
backoff: "backoff";
|
|
670
|
+
}>;
|
|
671
|
+
since: z.ZodNumber;
|
|
672
|
+
deaths: z.ZodNumber;
|
|
673
|
+
lastError: z.ZodString;
|
|
674
|
+
}, z.core.$strip>>>;
|
|
675
|
+
}, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
676
|
+
/**
|
|
677
|
+
* Re-arm a terminally `failed` inference device on `nodeId`: forget its
|
|
678
|
+
* restart budget so the next dispatch builds a fresh pool.
|
|
679
|
+
*
|
|
680
|
+
* The terminal state is deliberate (the abort it bounds is deterministic —
|
|
681
|
+
* an automatic probation would just respawn Python forever, more slowly),
|
|
682
|
+
* and a terminal state an operator cannot leave is a silent fault. This is
|
|
683
|
+
* the way out. `rearmed:false` means there was nothing to forget.
|
|
684
|
+
*/
|
|
685
|
+
readonly rearmInferenceDevice: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
686
|
+
nodeId: z.ZodString;
|
|
687
|
+
deviceKey: z.ZodString;
|
|
688
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
689
|
+
rearmed: z.ZodBoolean;
|
|
690
|
+
}, z.core.$strip>, "mutation">;
|
|
641
691
|
readonly getSchema: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodObject<{
|
|
642
692
|
availableEngines: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
643
693
|
engine: z.ZodObject<{
|
|
@@ -203,6 +203,33 @@ export declare const ReadGopBytesResultSchema: z.ZodObject<{
|
|
|
203
203
|
gopDurMs: z.ZodNumber;
|
|
204
204
|
}, z.core.$strip>;
|
|
205
205
|
export type ReadGopBytesResult = z.infer<typeof ReadGopBytesResultSchema>;
|
|
206
|
+
/**
|
|
207
|
+
* A time WINDOW of one finalized segment, cut by byte range — the multi-GOP
|
|
208
|
+
* twin of {@link ReadGopBytesResultSchema}'s single instant. Built for the
|
|
209
|
+
* replay clip's `recording` source (`docs/design/plans/2026-08-26-replay-clip-su-pipeline.md`):
|
|
210
|
+
* a replay needs several seconds of native pixels, not one frame.
|
|
211
|
+
*
|
|
212
|
+
* `ok.data` is standalone-demuxable, same as a GOP read. `ok.reachesRequestedEnd`
|
|
213
|
+
* is `false` when the returned bytes were cut short by the read's own safety
|
|
214
|
+
* byte cap before covering `[fromMs, toMs)` — a truncation, reported, not a
|
|
215
|
+
* silently shorter answer. `spans-multiple-segments` is a REFUSAL, not a
|
|
216
|
+
* degradation: a window whose end falls past the covering segment would need
|
|
217
|
+
* bytes stitched from a second segment file (its own `ftyp`+`moov`), which is
|
|
218
|
+
* not one standalone-demuxable stream — the caller's answer is to request a
|
|
219
|
+
* shorter window or one aligned to a single segment, not to receive spliced
|
|
220
|
+
* bytes nothing has proven decodable.
|
|
221
|
+
*/
|
|
222
|
+
export declare const ReadWindowBytesResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
223
|
+
kind: z.ZodLiteral<"ok">;
|
|
224
|
+
data: z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>;
|
|
225
|
+
gopStartMs: z.ZodNumber;
|
|
226
|
+
gopDurMs: z.ZodNumber;
|
|
227
|
+
reachesRequestedEnd: z.ZodBoolean;
|
|
228
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
229
|
+
kind: z.ZodLiteral<"spans-multiple-segments">;
|
|
230
|
+
segmentEndMs: z.ZodNumber;
|
|
231
|
+
}, z.core.$strip>], "kind">;
|
|
232
|
+
export type ReadWindowBytesResult = z.infer<typeof ReadWindowBytesResultSchema>;
|
|
206
233
|
export declare const recordingCapability: {
|
|
207
234
|
readonly name: "recording";
|
|
208
235
|
readonly scope: "system";
|
|
@@ -348,6 +375,27 @@ export declare const recordingCapability: {
|
|
|
348
375
|
gopStartMs: z.ZodNumber;
|
|
349
376
|
gopDurMs: z.ZodNumber;
|
|
350
377
|
}, z.core.$strip>, "query">;
|
|
378
|
+
/** Read a WINDOW `[fromMs, toMs)` of segment `startMs`, by mfra byte
|
|
379
|
+
* range — the multi-GOP twin of `readGopBytes`. Refuses (does not
|
|
380
|
+
* degrade) when the window runs past the covering segment. Used by the
|
|
381
|
+
* replay clip's `recording` source to fetch several seconds of native
|
|
382
|
+
* footage for its single ffmpeg decode pass. */
|
|
383
|
+
readonly readWindowBytes: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
384
|
+
deviceId: z.ZodNumber;
|
|
385
|
+
profile: z.ZodString;
|
|
386
|
+
startMs: z.ZodNumber;
|
|
387
|
+
fromMs: z.ZodNumber;
|
|
388
|
+
toMs: z.ZodNumber;
|
|
389
|
+
}, z.core.$strip>, z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
390
|
+
kind: z.ZodLiteral<"ok">;
|
|
391
|
+
data: z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>;
|
|
392
|
+
gopStartMs: z.ZodNumber;
|
|
393
|
+
gopDurMs: z.ZodNumber;
|
|
394
|
+
reachesRequestedEnd: z.ZodBoolean;
|
|
395
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
396
|
+
kind: z.ZodLiteral<"spans-multiple-segments">;
|
|
397
|
+
segmentEndMs: z.ZodNumber;
|
|
398
|
+
}, z.core.$strip>], "kind">, "query">;
|
|
351
399
|
readonly setDeviceConfig: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
352
400
|
deviceId: z.ZodNumber;
|
|
353
401
|
config: z.ZodObject<{
|
|
@@ -4526,6 +4526,13 @@ export type AppRouter = TrpcCoreRouter<{
|
|
|
4526
4526
|
output: z.infer<typeof notificationRulesCapability.methods.getHistory.output>;
|
|
4527
4527
|
meta: object;
|
|
4528
4528
|
}>;
|
|
4529
|
+
resolveArtifactUrl: TRPCQueryProcedure<{
|
|
4530
|
+
input: {
|
|
4531
|
+
[x: string]: unknown;
|
|
4532
|
+
} & z.input<typeof notificationRulesCapability.methods.resolveArtifactUrl.input>;
|
|
4533
|
+
output: z.infer<typeof notificationRulesCapability.methods.resolveArtifactUrl.output>;
|
|
4534
|
+
meta: object;
|
|
4535
|
+
}>;
|
|
4529
4536
|
listSnoozes: TRPCQueryProcedure<{
|
|
4530
4537
|
input: {
|
|
4531
4538
|
[x: string]: unknown;
|
|
@@ -5108,6 +5115,13 @@ export type AppRouter = TrpcCoreRouter<{
|
|
|
5108
5115
|
output: z.infer<typeof pipelineAnalyticsCapability.methods.proposeRetrainAnnotations.output>;
|
|
5109
5116
|
meta: object;
|
|
5110
5117
|
}>;
|
|
5118
|
+
runReplayFrameProcessor: TRPCMutationProcedure<{
|
|
5119
|
+
input: {
|
|
5120
|
+
[x: string]: unknown;
|
|
5121
|
+
} & z.input<typeof pipelineAnalyticsCapability.methods.runReplayFrameProcessor.input>;
|
|
5122
|
+
output: z.infer<typeof pipelineAnalyticsCapability.methods.runReplayFrameProcessor.output>;
|
|
5123
|
+
meta: object;
|
|
5124
|
+
}>;
|
|
5111
5125
|
listRetrainAnnotations: TRPCQueryProcedure<{
|
|
5112
5126
|
input: {
|
|
5113
5127
|
[x: string]: unknown;
|
|
@@ -5248,6 +5262,20 @@ export type AppRouter = TrpcCoreRouter<{
|
|
|
5248
5262
|
output: z.infer<typeof pipelineExecutorCapability.methods.clearDeviceOverrides.output>;
|
|
5249
5263
|
meta: object;
|
|
5250
5264
|
}>;
|
|
5265
|
+
getInferenceDeviceHealth: TRPCQueryProcedure<{
|
|
5266
|
+
input: {
|
|
5267
|
+
[x: string]: unknown;
|
|
5268
|
+
} & z.input<typeof pipelineExecutorCapability.methods.getInferenceDeviceHealth.input>;
|
|
5269
|
+
output: z.infer<typeof pipelineExecutorCapability.methods.getInferenceDeviceHealth.output>;
|
|
5270
|
+
meta: object;
|
|
5271
|
+
}>;
|
|
5272
|
+
rearmInferenceDevice: TRPCMutationProcedure<{
|
|
5273
|
+
input: {
|
|
5274
|
+
[x: string]: unknown;
|
|
5275
|
+
} & z.input<typeof pipelineExecutorCapability.methods.rearmInferenceDevice.input>;
|
|
5276
|
+
output: z.infer<typeof pipelineExecutorCapability.methods.rearmInferenceDevice.output>;
|
|
5277
|
+
meta: object;
|
|
5278
|
+
}>;
|
|
5251
5279
|
getSchema: TRPCQueryProcedure<{
|
|
5252
5280
|
input: {
|
|
5253
5281
|
nodeId?: string | undefined;
|
|
@@ -6348,6 +6376,13 @@ export type AppRouter = TrpcCoreRouter<{
|
|
|
6348
6376
|
output: z.infer<typeof recordingCapability.methods.readGopBytes.output>;
|
|
6349
6377
|
meta: object;
|
|
6350
6378
|
}>;
|
|
6379
|
+
readWindowBytes: TRPCQueryProcedure<{
|
|
6380
|
+
input: {
|
|
6381
|
+
[x: string]: unknown;
|
|
6382
|
+
} & z.input<typeof recordingCapability.methods.readWindowBytes.input>;
|
|
6383
|
+
output: z.infer<typeof recordingCapability.methods.readWindowBytes.output>;
|
|
6384
|
+
meta: object;
|
|
6385
|
+
}>;
|
|
6351
6386
|
setDeviceConfig: TRPCMutationProcedure<{
|
|
6352
6387
|
input: {
|
|
6353
6388
|
[x: string]: unknown;
|
|
@@ -280,7 +280,7 @@ export interface DeviceProxy {
|
|
|
280
280
|
readonly pipelineOrchestrator: Pick<InferDeviceProxyCap<typeof pipelineOrchestratorCapability>, 'assignPipeline' | 'unassignPipeline' | 'setPipelineDevicePin' | 'getPipelineDevicePin' | 'getPipelineAssignment' | 'getCameraMetrics' | 'assignAudio' | 'unassignAudio' | 'getAudioAssignment' | 'getAudioAssignments' | 'getCameraSettings' | 'setCameraStepToggle' | 'getCameraStepOverrides' | 'setCameraStepOverride' | 'setCameraPipelineForAgent' | 'resolvePipeline' | 'getCameraSwitches' | 'setCameraSwitch' | 'getCameraStatus' | 'getDeviceSettingsContribution' | 'getDeviceLiveContribution' | 'applyDeviceSettingsPatch'>;
|
|
281
281
|
readonly pipelineRunner: Pick<InferDeviceProxyCap<typeof pipelineRunnerCapability>, 'detachCamera' | 'getCameraMetrics' | 'runDetailSubtree'>;
|
|
282
282
|
readonly plateGallery: Pick<InferDeviceProxyCap<typeof plateGalleryCapability>, 'listPlates' | 'getPlateByTrack'>;
|
|
283
|
-
readonly recording: Pick<InferDeviceProxyCap<typeof recordingCapability>, 'getAvailability' | 'getDaysWithRecordings' | 'getPlaybackManifest' | 'getDeviceConfig' | 'locateSegment' | 'readSegmentBytes' | 'readGopBytes' | 'setDeviceConfig' | 'rescanStorage' | 'pruneFootage' | 'deleteFootprint' | 'renderGif' | 'renderClip' | 'getStatus' | 'getDeviceSettingsContribution' | 'getDeviceLiveContribution' | 'applyDeviceSettingsPatch'>;
|
|
283
|
+
readonly recording: Pick<InferDeviceProxyCap<typeof recordingCapability>, 'getAvailability' | 'getDaysWithRecordings' | 'getPlaybackManifest' | 'getDeviceConfig' | 'locateSegment' | 'readSegmentBytes' | 'readGopBytes' | 'readWindowBytes' | 'setDeviceConfig' | 'rescanStorage' | 'pruneFootage' | 'deleteFootprint' | 'renderGif' | 'renderClip' | 'getStatus' | 'getDeviceSettingsContribution' | 'getDeviceLiveContribution' | 'applyDeviceSettingsPatch'>;
|
|
284
284
|
readonly recordingExport: Pick<InferDeviceProxyCap<typeof recordingExportCapability>, 'listExports'>;
|
|
285
285
|
readonly streamBroker: Pick<InferDeviceProxyCap<typeof streamBrokerCapability>, 'publishCameraStream' | 'retractCameraStream' | 'assignProfile' | 'unassignProfile' | 'renderPreBufferClip' | 'produceEventMedia' | 'restartProfile' | 'getDeviceAudioMute' | 'setDeviceAudioMute' | 'getDeviceSettingsContribution' | 'getDeviceLiveContribution' | 'applyDeviceSettingsPatch'>;
|
|
286
286
|
}
|
|
@@ -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: 963 method paths across 123 capabilities.
|
|
10
10
|
*/
|
|
11
11
|
import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
|
|
12
12
|
export interface MethodAccessRecord {
|
|
@@ -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: 344 methods carry a device reference, of which
|
|
10
|
+
* 128 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
|
|
@@ -83,7 +83,7 @@ export interface SystemProxy {
|
|
|
83
83
|
readonly nodes: Pick<InferProvider<typeof nodesCapability>, 'topology' | 'deployAddon' | 'undeployAddon' | 'restartAddon' | 'restartProcess' | 'restartNode' | 'shutdownNode' | 'renameNode' | 'clusterAddonStatus' | 'getCapUsageGraph' | 'getNodeAddons' | 'setProcessLogLevel' | 'executeQuery'>;
|
|
84
84
|
readonly notificationOutput: Pick<InferProvider<typeof notificationOutputCapability>, 'listTargetKinds' | 'listTargets' | 'discoverTargets' | 'send' | 'testTarget' | 'upsertTarget' | 'deleteTarget' | 'setTargetEnabled'>;
|
|
85
85
|
readonly osdManager: Pick<InferProvider<typeof osdManagerCapability>, 'getConditionSupport' | 'copyDeviceConfiguration'>;
|
|
86
|
-
readonly pipelineExecutor: Pick<InferProvider<typeof pipelineExecutorCapability>, 'getAvailableEngines' | 'getSelectedEngine' | 'getDefaultSteps' | 'getEngineProvisioning' | 'getVideoPipelineSteps' | 'setVideoPipelineSteps' | 'clearDeviceOverrides' | 'getSchema' | 'getGlobalSteps' | 'getGlobalPipelineConfig' | 'getOrchestratorConfigSchema' | 'validatePipeline' | 'listTemplates' | 'saveTemplate' | 'updateTemplate' | 'deleteTemplate' | 'getCapabilities' | 'getAddonModels' | 'downloadModel' | 'deleteModel' | 'cacheFrameInPool' | 'inferCached' | 'uncacheFrame' | 'getEffectiveTuning' | 'listLoadedEngines' | 'spinEngine' | 'killEngine' | 'listReferenceImages' | 'getReferenceImage' | 'getReferenceAudioFiles' | 'getReferenceAudio' | 'getAudioCapabilities' | 'runAudioTest' | 'getDetectionConfigSchema'>;
|
|
86
|
+
readonly pipelineExecutor: Pick<InferProvider<typeof pipelineExecutorCapability>, 'getAvailableEngines' | 'getSelectedEngine' | 'getDefaultSteps' | 'getEngineProvisioning' | 'getVideoPipelineSteps' | 'setVideoPipelineSteps' | 'clearDeviceOverrides' | 'getInferenceDeviceHealth' | 'rearmInferenceDevice' | 'getSchema' | 'getGlobalSteps' | 'getGlobalPipelineConfig' | 'getOrchestratorConfigSchema' | 'validatePipeline' | 'listTemplates' | 'saveTemplate' | 'updateTemplate' | 'deleteTemplate' | 'getCapabilities' | 'getAddonModels' | 'downloadModel' | 'deleteModel' | 'cacheFrameInPool' | 'inferCached' | 'uncacheFrame' | 'getEffectiveTuning' | 'listLoadedEngines' | 'spinEngine' | 'killEngine' | 'listReferenceImages' | 'getReferenceImage' | 'getReferenceAudioFiles' | 'getReferenceAudio' | 'getAudioCapabilities' | 'runAudioTest' | 'getDetectionConfigSchema'>;
|
|
87
87
|
readonly pipelineOrchestrator: Pick<InferProvider<typeof pipelineOrchestratorCapability>, 'pauseForStorageMigration' | 'resumeForStorageMigration' | 'rebalance' | 'getPipelineAssignments' | 'getAgentLoad' | 'getGlobalMetrics' | 'getCapabilityBindings' | 'setCapabilityBinding' | 'getIngestOwner' | 'getAudioNodeLoad' | 'getAgentSettings' | 'listAgentSettings' | 'removeAgentSettings' | 'setAgentMaxCameras' | 'setAgentDetectWeight' | 'setAgentCapabilities' | 'setAgentReachableHost' | 'setAgentInferenceDevices' | 'getNodeInferenceDevices' | 'resetNodePipelineDefaults' | 'getCameraStatuses' | 'reconcileFromDisk' | 'getReconcileFromDiskStatus' | 'listTemplates' | 'saveTemplate' | 'updateTemplate' | 'deleteTemplate'>;
|
|
88
88
|
readonly pipelineRunner: Pick<InferProvider<typeof pipelineRunnerCapability>, 'attachCamera' | 'reportMotion' | 'getLocalLoad' | 'getLocalMetrics' | 'getAllCameraMetrics' | 'getLocalCameras' | 'getNativeCrop' | 'runStatelessStep'>;
|
|
89
89
|
readonly plateGallery: Pick<InferProvider<typeof plateGalleryCapability>, 'getPlateMedia' | 'searchPlates' | 'suggestPlateClusters' | 'correctPlateText' | 'deletePlate' | 'listVehicles' | 'createVehicle' | 'renameVehicle' | 'deleteVehicle' | 'listVehicleSamples' | 'removeVehicleSample' | 'assignPlate' | 'unassignPlate' | 'assignPlates' | 'unassignPlates'>;
|