@camstack/addon-cloudflare 1.0.4 → 1.0.5
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/{dist-BaLJK4dE.js → dist-Bj5XzuE6.js} +193 -3
- package/dist/{dist-COIj-4Zk.mjs → dist-D4obfhYq.mjs} +193 -3
- package/dist/tunnel/cloudflare-tunnel.addon.js +1 -1
- package/dist/tunnel/cloudflare-tunnel.addon.mjs +1 -1
- package/dist/turn/cloudflare-turn.addon.js +1 -1
- package/dist/turn/cloudflare-turn.addon.mjs +1 -1
- package/package.json +1 -1
|
@@ -4981,6 +4981,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
4981
4981
|
*/
|
|
4982
4982
|
EventCategory["PipelineEngineMetricsSnapshot"] = "pipeline.engine-metrics-snapshot";
|
|
4983
4983
|
/**
|
|
4984
|
+
* Per-node detection-engine runtime-provisioning transition. Emitted by
|
|
4985
|
+
* the detection-pipeline provider on every state change of its lazy
|
|
4986
|
+
* engine-provisioning machine (idle → installing → verifying → ready,
|
|
4987
|
+
* or → failed with a `nextRetryAt`). Payload is the
|
|
4988
|
+
* `EngineProvisioningState` snapshot; `event.source.nodeId` carries the
|
|
4989
|
+
* node. The Pipeline page subscribes to drive a live "installing
|
|
4990
|
+
* OpenVINO… / ready" indicator per node without polling
|
|
4991
|
+
* `pipelineExecutor.getEngineProvisioning`. Telemetry-grade (D8): the UI
|
|
4992
|
+
* also reads the cap snapshot on mount / reconnect. Phase 2.
|
|
4993
|
+
*/
|
|
4994
|
+
EventCategory["PipelineEngineProvisioning"] = "pipeline.engine-provisioning";
|
|
4995
|
+
/**
|
|
4984
4996
|
* Cluster topology snapshot. Carries the same payload returned by
|
|
4985
4997
|
* `nodes.topology` (every reachable node + addons + processes).
|
|
4986
4998
|
* Emitted by the hub on any agent / addon lifecycle change
|
|
@@ -9145,6 +9157,24 @@ var DetectorOutputSchema = object({
|
|
|
9145
9157
|
inferenceMs: number(),
|
|
9146
9158
|
modelId: string()
|
|
9147
9159
|
});
|
|
9160
|
+
var EngineProvisioningSchema = object({
|
|
9161
|
+
runtimeId: _enum([
|
|
9162
|
+
"onnx",
|
|
9163
|
+
"openvino",
|
|
9164
|
+
"coreml"
|
|
9165
|
+
]).nullable(),
|
|
9166
|
+
device: string().nullable(),
|
|
9167
|
+
state: _enum([
|
|
9168
|
+
"idle",
|
|
9169
|
+
"installing",
|
|
9170
|
+
"verifying",
|
|
9171
|
+
"ready",
|
|
9172
|
+
"failed"
|
|
9173
|
+
]),
|
|
9174
|
+
progress: number().optional(),
|
|
9175
|
+
error: string().optional(),
|
|
9176
|
+
nextRetryAt: number().optional()
|
|
9177
|
+
});
|
|
9148
9178
|
var PipelineStepInputSchema = lazy(() => object({
|
|
9149
9179
|
addonId: string(),
|
|
9150
9180
|
modelId: string(),
|
|
@@ -9213,7 +9243,7 @@ var PipelineRunResultBridge = custom();
|
|
|
9213
9243
|
method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngineChoiceSchema), method(PipelineEngineChoiceSchema, array(PipelineDefaultStepSchema)), method(_void(), PipelineEngineChoiceSchema, {
|
|
9214
9244
|
kind: "mutation",
|
|
9215
9245
|
auth: "admin"
|
|
9216
|
-
}), method(_void(), record(string(), object({
|
|
9246
|
+
}), method(object({ nodeId: string() }), EngineProvisioningSchema), method(_void(), record(string(), object({
|
|
9217
9247
|
modelId: string(),
|
|
9218
9248
|
settings: record(string(), unknown()).readonly()
|
|
9219
9249
|
}))), method(object({ steps: record(string(), object({
|
|
@@ -12821,7 +12851,10 @@ var AgentAddonConfigSchema = object({
|
|
|
12821
12851
|
modelId: string(),
|
|
12822
12852
|
settings: record(string(), unknown()).readonly()
|
|
12823
12853
|
});
|
|
12824
|
-
var AgentPipelineSettingsSchema = object({
|
|
12854
|
+
var AgentPipelineSettingsSchema = object({
|
|
12855
|
+
addonDefaults: record(string(), AgentAddonConfigSchema).readonly(),
|
|
12856
|
+
maxCameras: number().int().nonnegative().nullable().default(null)
|
|
12857
|
+
});
|
|
12825
12858
|
var CameraPipelineForAgentSchema = object({
|
|
12826
12859
|
steps: array(PipelineStepInputSchema).readonly(),
|
|
12827
12860
|
audio: object({
|
|
@@ -12923,6 +12956,133 @@ var GlobalMetricsSchema = object({
|
|
|
12923
12956
|
* capability providers.
|
|
12924
12957
|
*/
|
|
12925
12958
|
var CapabilityBindingsSchema = record(string(), string());
|
|
12959
|
+
/** Source block — always present; derives from the stream catalog. */
|
|
12960
|
+
var CameraSourceStatusSchema = object({ streams: array(object({
|
|
12961
|
+
camStreamId: string(),
|
|
12962
|
+
codec: string(),
|
|
12963
|
+
width: number(),
|
|
12964
|
+
height: number(),
|
|
12965
|
+
fps: number(),
|
|
12966
|
+
kind: string()
|
|
12967
|
+
})).readonly() });
|
|
12968
|
+
/** Assignment block — always present (orchestrator-local, no remote call). */
|
|
12969
|
+
var CameraAssignmentStatusSchema = object({
|
|
12970
|
+
detectionNodeId: string().nullable(),
|
|
12971
|
+
decoderNodeId: string().nullable(),
|
|
12972
|
+
audioNodeId: string().nullable(),
|
|
12973
|
+
pinned: object({
|
|
12974
|
+
detection: boolean(),
|
|
12975
|
+
decoder: boolean(),
|
|
12976
|
+
audio: boolean()
|
|
12977
|
+
}),
|
|
12978
|
+
reasons: object({
|
|
12979
|
+
detection: string().optional(),
|
|
12980
|
+
decoder: string().optional(),
|
|
12981
|
+
audio: string().optional()
|
|
12982
|
+
})
|
|
12983
|
+
});
|
|
12984
|
+
/** Broker block — null when the broker stage is unreachable or inactive. */
|
|
12985
|
+
var CameraBrokerStatusSchema = object({
|
|
12986
|
+
profiles: array(object({
|
|
12987
|
+
profile: string(),
|
|
12988
|
+
status: string(),
|
|
12989
|
+
codec: string(),
|
|
12990
|
+
width: number(),
|
|
12991
|
+
height: number(),
|
|
12992
|
+
subscribers: number(),
|
|
12993
|
+
inFps: number(),
|
|
12994
|
+
outFps: number()
|
|
12995
|
+
})).readonly(),
|
|
12996
|
+
webrtcSessions: number(),
|
|
12997
|
+
rtspRestream: boolean()
|
|
12998
|
+
});
|
|
12999
|
+
/** Shared-memory ring statistics within the decoder block. */
|
|
13000
|
+
var CameraDecoderShmSchema = object({
|
|
13001
|
+
framesWritten: number(),
|
|
13002
|
+
getFrameHits: number(),
|
|
13003
|
+
getFrameMisses: number(),
|
|
13004
|
+
budgetMb: number()
|
|
13005
|
+
});
|
|
13006
|
+
/** Decoder block — null when the decoder stage is unreachable or inactive. */
|
|
13007
|
+
var CameraDecoderStatusSchema = object({
|
|
13008
|
+
nodeId: string(),
|
|
13009
|
+
formats: array(string()).readonly(),
|
|
13010
|
+
sessionCount: number(),
|
|
13011
|
+
shm: CameraDecoderShmSchema
|
|
13012
|
+
});
|
|
13013
|
+
/** Motion block — null when motion detection is not active for this device. */
|
|
13014
|
+
var CameraMotionStatusSchema = object({
|
|
13015
|
+
enabled: boolean(),
|
|
13016
|
+
fps: number()
|
|
13017
|
+
});
|
|
13018
|
+
/** Detection provisioning sub-block. */
|
|
13019
|
+
var CameraDetectionProvisioningSchema = object({
|
|
13020
|
+
state: _enum([
|
|
13021
|
+
"idle",
|
|
13022
|
+
"installing",
|
|
13023
|
+
"verifying",
|
|
13024
|
+
"ready",
|
|
13025
|
+
"failed"
|
|
13026
|
+
]),
|
|
13027
|
+
error: string().optional()
|
|
13028
|
+
});
|
|
13029
|
+
/** Detection phase — derived from the runner's engine phase. */
|
|
13030
|
+
var CameraDetectionPhaseSchema = _enum([
|
|
13031
|
+
"idle",
|
|
13032
|
+
"watching",
|
|
13033
|
+
"active"
|
|
13034
|
+
]);
|
|
13035
|
+
/** Detection block — null when no detection node is assigned or reachable. */
|
|
13036
|
+
var CameraDetectionStatusSchema = object({
|
|
13037
|
+
nodeId: string(),
|
|
13038
|
+
engine: object({
|
|
13039
|
+
backend: string(),
|
|
13040
|
+
device: string()
|
|
13041
|
+
}),
|
|
13042
|
+
phase: CameraDetectionPhaseSchema,
|
|
13043
|
+
configuredFps: number(),
|
|
13044
|
+
actualFps: number(),
|
|
13045
|
+
queueDepth: number(),
|
|
13046
|
+
avgInferenceMs: number(),
|
|
13047
|
+
provisioning: CameraDetectionProvisioningSchema
|
|
13048
|
+
});
|
|
13049
|
+
/** Audio block — null when no audio node is assigned or reachable. */
|
|
13050
|
+
var CameraAudioStatusSchema = object({
|
|
13051
|
+
nodeId: string(),
|
|
13052
|
+
enabled: boolean()
|
|
13053
|
+
});
|
|
13054
|
+
/** Recording block — null when no recording cap is active for this device. */
|
|
13055
|
+
var CameraRecordingStatusSchema = object({
|
|
13056
|
+
mode: _enum([
|
|
13057
|
+
"off",
|
|
13058
|
+
"continuous",
|
|
13059
|
+
"events"
|
|
13060
|
+
]),
|
|
13061
|
+
active: boolean(),
|
|
13062
|
+
storageBytes: number()
|
|
13063
|
+
});
|
|
13064
|
+
/**
|
|
13065
|
+
* Aggregated per-camera pipeline status — server-composed, single call.
|
|
13066
|
+
*
|
|
13067
|
+
* The `assignment` and `source` blocks are always present.
|
|
13068
|
+
* Every other block is `null` when the stage is inactive or unreachable
|
|
13069
|
+
* during the bounded parallel fan-out in the orchestrator implementation.
|
|
13070
|
+
*
|
|
13071
|
+
* See spec: `docs/superpowers/specs/2026-06-24-camera-status-aggregator-cap.md`
|
|
13072
|
+
*/
|
|
13073
|
+
var CameraStatusSchema = object({
|
|
13074
|
+
deviceId: number(),
|
|
13075
|
+
assignment: CameraAssignmentStatusSchema,
|
|
13076
|
+
source: CameraSourceStatusSchema,
|
|
13077
|
+
broker: CameraBrokerStatusSchema.nullable(),
|
|
13078
|
+
decoder: CameraDecoderStatusSchema.nullable(),
|
|
13079
|
+
motion: CameraMotionStatusSchema.nullable(),
|
|
13080
|
+
detection: CameraDetectionStatusSchema.nullable(),
|
|
13081
|
+
audio: CameraAudioStatusSchema.nullable(),
|
|
13082
|
+
recording: CameraRecordingStatusSchema.nullable(),
|
|
13083
|
+
/** Unix timestamp (ms) when this snapshot was composed server-side. */
|
|
13084
|
+
fetchedAt: number()
|
|
13085
|
+
});
|
|
12926
13086
|
method(object({
|
|
12927
13087
|
deviceId: number(),
|
|
12928
13088
|
agentNodeId: string()
|
|
@@ -12990,6 +13150,12 @@ method(object({
|
|
|
12990
13150
|
}), {
|
|
12991
13151
|
kind: "mutation",
|
|
12992
13152
|
auth: "admin"
|
|
13153
|
+
}), method(object({
|
|
13154
|
+
agentNodeId: string(),
|
|
13155
|
+
maxCameras: number().int().nonnegative().nullable()
|
|
13156
|
+
}), object({ success: literal(true) }), {
|
|
13157
|
+
kind: "mutation",
|
|
13158
|
+
auth: "admin"
|
|
12993
13159
|
}), method(object({ deviceId: number() }), CameraPipelineSettingsSchema.nullable()), method(object({
|
|
12994
13160
|
deviceId: number(),
|
|
12995
13161
|
addonId: string(),
|
|
@@ -13015,7 +13181,7 @@ method(object({
|
|
|
13015
13181
|
}), method(object({
|
|
13016
13182
|
deviceId: number(),
|
|
13017
13183
|
agentNodeId: string().optional()
|
|
13018
|
-
}), CameraPipelineConfigSchema), method(_void(), array(PipelineTemplateSchema).readonly()), method(object({
|
|
13184
|
+
}), CameraPipelineConfigSchema), method(object({ deviceId: number() }), CameraStatusSchema), method(object({ deviceIds: array(number()).optional() }), array(CameraStatusSchema).readonly()), method(_void(), array(PipelineTemplateSchema).readonly()), method(object({
|
|
13019
13185
|
name: string(),
|
|
13020
13186
|
description: string().optional(),
|
|
13021
13187
|
config: CameraPipelineConfigSchema
|
|
@@ -18847,6 +19013,12 @@ Object.freeze({
|
|
|
18847
19013
|
addonId: null,
|
|
18848
19014
|
access: "view"
|
|
18849
19015
|
},
|
|
19016
|
+
"pipelineExecutor.getEngineProvisioning": {
|
|
19017
|
+
capName: "pipeline-executor",
|
|
19018
|
+
capScope: "system",
|
|
19019
|
+
addonId: null,
|
|
19020
|
+
access: "view"
|
|
19021
|
+
},
|
|
18850
19022
|
"pipelineExecutor.getGlobalPipelineConfig": {
|
|
18851
19023
|
capName: "pipeline-executor",
|
|
18852
19024
|
capScope: "system",
|
|
@@ -19051,6 +19223,18 @@ Object.freeze({
|
|
|
19051
19223
|
addonId: null,
|
|
19052
19224
|
access: "view"
|
|
19053
19225
|
},
|
|
19226
|
+
"pipelineOrchestrator.getCameraStatus": {
|
|
19227
|
+
capName: "pipeline-orchestrator",
|
|
19228
|
+
capScope: "system",
|
|
19229
|
+
addonId: null,
|
|
19230
|
+
access: "view"
|
|
19231
|
+
},
|
|
19232
|
+
"pipelineOrchestrator.getCameraStatuses": {
|
|
19233
|
+
capName: "pipeline-orchestrator",
|
|
19234
|
+
capScope: "system",
|
|
19235
|
+
addonId: null,
|
|
19236
|
+
access: "view"
|
|
19237
|
+
},
|
|
19054
19238
|
"pipelineOrchestrator.getCameraStepOverrides": {
|
|
19055
19239
|
capName: "pipeline-orchestrator",
|
|
19056
19240
|
capScope: "system",
|
|
@@ -19135,6 +19319,12 @@ Object.freeze({
|
|
|
19135
19319
|
addonId: null,
|
|
19136
19320
|
access: "create"
|
|
19137
19321
|
},
|
|
19322
|
+
"pipelineOrchestrator.setAgentMaxCameras": {
|
|
19323
|
+
capName: "pipeline-orchestrator",
|
|
19324
|
+
capScope: "system",
|
|
19325
|
+
addonId: null,
|
|
19326
|
+
access: "create"
|
|
19327
|
+
},
|
|
19138
19328
|
"pipelineOrchestrator.setCameraPipelineForAgent": {
|
|
19139
19329
|
capName: "pipeline-orchestrator",
|
|
19140
19330
|
capScope: "system",
|
|
@@ -4981,6 +4981,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
4981
4981
|
*/
|
|
4982
4982
|
EventCategory["PipelineEngineMetricsSnapshot"] = "pipeline.engine-metrics-snapshot";
|
|
4983
4983
|
/**
|
|
4984
|
+
* Per-node detection-engine runtime-provisioning transition. Emitted by
|
|
4985
|
+
* the detection-pipeline provider on every state change of its lazy
|
|
4986
|
+
* engine-provisioning machine (idle → installing → verifying → ready,
|
|
4987
|
+
* or → failed with a `nextRetryAt`). Payload is the
|
|
4988
|
+
* `EngineProvisioningState` snapshot; `event.source.nodeId` carries the
|
|
4989
|
+
* node. The Pipeline page subscribes to drive a live "installing
|
|
4990
|
+
* OpenVINO… / ready" indicator per node without polling
|
|
4991
|
+
* `pipelineExecutor.getEngineProvisioning`. Telemetry-grade (D8): the UI
|
|
4992
|
+
* also reads the cap snapshot on mount / reconnect. Phase 2.
|
|
4993
|
+
*/
|
|
4994
|
+
EventCategory["PipelineEngineProvisioning"] = "pipeline.engine-provisioning";
|
|
4995
|
+
/**
|
|
4984
4996
|
* Cluster topology snapshot. Carries the same payload returned by
|
|
4985
4997
|
* `nodes.topology` (every reachable node + addons + processes).
|
|
4986
4998
|
* Emitted by the hub on any agent / addon lifecycle change
|
|
@@ -9145,6 +9157,24 @@ var DetectorOutputSchema = object({
|
|
|
9145
9157
|
inferenceMs: number(),
|
|
9146
9158
|
modelId: string()
|
|
9147
9159
|
});
|
|
9160
|
+
var EngineProvisioningSchema = object({
|
|
9161
|
+
runtimeId: _enum([
|
|
9162
|
+
"onnx",
|
|
9163
|
+
"openvino",
|
|
9164
|
+
"coreml"
|
|
9165
|
+
]).nullable(),
|
|
9166
|
+
device: string().nullable(),
|
|
9167
|
+
state: _enum([
|
|
9168
|
+
"idle",
|
|
9169
|
+
"installing",
|
|
9170
|
+
"verifying",
|
|
9171
|
+
"ready",
|
|
9172
|
+
"failed"
|
|
9173
|
+
]),
|
|
9174
|
+
progress: number().optional(),
|
|
9175
|
+
error: string().optional(),
|
|
9176
|
+
nextRetryAt: number().optional()
|
|
9177
|
+
});
|
|
9148
9178
|
var PipelineStepInputSchema = lazy(() => object({
|
|
9149
9179
|
addonId: string(),
|
|
9150
9180
|
modelId: string(),
|
|
@@ -9213,7 +9243,7 @@ var PipelineRunResultBridge = custom();
|
|
|
9213
9243
|
method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngineChoiceSchema), method(PipelineEngineChoiceSchema, array(PipelineDefaultStepSchema)), method(_void(), PipelineEngineChoiceSchema, {
|
|
9214
9244
|
kind: "mutation",
|
|
9215
9245
|
auth: "admin"
|
|
9216
|
-
}), method(_void(), record(string(), object({
|
|
9246
|
+
}), method(object({ nodeId: string() }), EngineProvisioningSchema), method(_void(), record(string(), object({
|
|
9217
9247
|
modelId: string(),
|
|
9218
9248
|
settings: record(string(), unknown()).readonly()
|
|
9219
9249
|
}))), method(object({ steps: record(string(), object({
|
|
@@ -12821,7 +12851,10 @@ var AgentAddonConfigSchema = object({
|
|
|
12821
12851
|
modelId: string(),
|
|
12822
12852
|
settings: record(string(), unknown()).readonly()
|
|
12823
12853
|
});
|
|
12824
|
-
var AgentPipelineSettingsSchema = object({
|
|
12854
|
+
var AgentPipelineSettingsSchema = object({
|
|
12855
|
+
addonDefaults: record(string(), AgentAddonConfigSchema).readonly(),
|
|
12856
|
+
maxCameras: number().int().nonnegative().nullable().default(null)
|
|
12857
|
+
});
|
|
12825
12858
|
var CameraPipelineForAgentSchema = object({
|
|
12826
12859
|
steps: array(PipelineStepInputSchema).readonly(),
|
|
12827
12860
|
audio: object({
|
|
@@ -12923,6 +12956,133 @@ var GlobalMetricsSchema = object({
|
|
|
12923
12956
|
* capability providers.
|
|
12924
12957
|
*/
|
|
12925
12958
|
var CapabilityBindingsSchema = record(string(), string());
|
|
12959
|
+
/** Source block — always present; derives from the stream catalog. */
|
|
12960
|
+
var CameraSourceStatusSchema = object({ streams: array(object({
|
|
12961
|
+
camStreamId: string(),
|
|
12962
|
+
codec: string(),
|
|
12963
|
+
width: number(),
|
|
12964
|
+
height: number(),
|
|
12965
|
+
fps: number(),
|
|
12966
|
+
kind: string()
|
|
12967
|
+
})).readonly() });
|
|
12968
|
+
/** Assignment block — always present (orchestrator-local, no remote call). */
|
|
12969
|
+
var CameraAssignmentStatusSchema = object({
|
|
12970
|
+
detectionNodeId: string().nullable(),
|
|
12971
|
+
decoderNodeId: string().nullable(),
|
|
12972
|
+
audioNodeId: string().nullable(),
|
|
12973
|
+
pinned: object({
|
|
12974
|
+
detection: boolean(),
|
|
12975
|
+
decoder: boolean(),
|
|
12976
|
+
audio: boolean()
|
|
12977
|
+
}),
|
|
12978
|
+
reasons: object({
|
|
12979
|
+
detection: string().optional(),
|
|
12980
|
+
decoder: string().optional(),
|
|
12981
|
+
audio: string().optional()
|
|
12982
|
+
})
|
|
12983
|
+
});
|
|
12984
|
+
/** Broker block — null when the broker stage is unreachable or inactive. */
|
|
12985
|
+
var CameraBrokerStatusSchema = object({
|
|
12986
|
+
profiles: array(object({
|
|
12987
|
+
profile: string(),
|
|
12988
|
+
status: string(),
|
|
12989
|
+
codec: string(),
|
|
12990
|
+
width: number(),
|
|
12991
|
+
height: number(),
|
|
12992
|
+
subscribers: number(),
|
|
12993
|
+
inFps: number(),
|
|
12994
|
+
outFps: number()
|
|
12995
|
+
})).readonly(),
|
|
12996
|
+
webrtcSessions: number(),
|
|
12997
|
+
rtspRestream: boolean()
|
|
12998
|
+
});
|
|
12999
|
+
/** Shared-memory ring statistics within the decoder block. */
|
|
13000
|
+
var CameraDecoderShmSchema = object({
|
|
13001
|
+
framesWritten: number(),
|
|
13002
|
+
getFrameHits: number(),
|
|
13003
|
+
getFrameMisses: number(),
|
|
13004
|
+
budgetMb: number()
|
|
13005
|
+
});
|
|
13006
|
+
/** Decoder block — null when the decoder stage is unreachable or inactive. */
|
|
13007
|
+
var CameraDecoderStatusSchema = object({
|
|
13008
|
+
nodeId: string(),
|
|
13009
|
+
formats: array(string()).readonly(),
|
|
13010
|
+
sessionCount: number(),
|
|
13011
|
+
shm: CameraDecoderShmSchema
|
|
13012
|
+
});
|
|
13013
|
+
/** Motion block — null when motion detection is not active for this device. */
|
|
13014
|
+
var CameraMotionStatusSchema = object({
|
|
13015
|
+
enabled: boolean(),
|
|
13016
|
+
fps: number()
|
|
13017
|
+
});
|
|
13018
|
+
/** Detection provisioning sub-block. */
|
|
13019
|
+
var CameraDetectionProvisioningSchema = object({
|
|
13020
|
+
state: _enum([
|
|
13021
|
+
"idle",
|
|
13022
|
+
"installing",
|
|
13023
|
+
"verifying",
|
|
13024
|
+
"ready",
|
|
13025
|
+
"failed"
|
|
13026
|
+
]),
|
|
13027
|
+
error: string().optional()
|
|
13028
|
+
});
|
|
13029
|
+
/** Detection phase — derived from the runner's engine phase. */
|
|
13030
|
+
var CameraDetectionPhaseSchema = _enum([
|
|
13031
|
+
"idle",
|
|
13032
|
+
"watching",
|
|
13033
|
+
"active"
|
|
13034
|
+
]);
|
|
13035
|
+
/** Detection block — null when no detection node is assigned or reachable. */
|
|
13036
|
+
var CameraDetectionStatusSchema = object({
|
|
13037
|
+
nodeId: string(),
|
|
13038
|
+
engine: object({
|
|
13039
|
+
backend: string(),
|
|
13040
|
+
device: string()
|
|
13041
|
+
}),
|
|
13042
|
+
phase: CameraDetectionPhaseSchema,
|
|
13043
|
+
configuredFps: number(),
|
|
13044
|
+
actualFps: number(),
|
|
13045
|
+
queueDepth: number(),
|
|
13046
|
+
avgInferenceMs: number(),
|
|
13047
|
+
provisioning: CameraDetectionProvisioningSchema
|
|
13048
|
+
});
|
|
13049
|
+
/** Audio block — null when no audio node is assigned or reachable. */
|
|
13050
|
+
var CameraAudioStatusSchema = object({
|
|
13051
|
+
nodeId: string(),
|
|
13052
|
+
enabled: boolean()
|
|
13053
|
+
});
|
|
13054
|
+
/** Recording block — null when no recording cap is active for this device. */
|
|
13055
|
+
var CameraRecordingStatusSchema = object({
|
|
13056
|
+
mode: _enum([
|
|
13057
|
+
"off",
|
|
13058
|
+
"continuous",
|
|
13059
|
+
"events"
|
|
13060
|
+
]),
|
|
13061
|
+
active: boolean(),
|
|
13062
|
+
storageBytes: number()
|
|
13063
|
+
});
|
|
13064
|
+
/**
|
|
13065
|
+
* Aggregated per-camera pipeline status — server-composed, single call.
|
|
13066
|
+
*
|
|
13067
|
+
* The `assignment` and `source` blocks are always present.
|
|
13068
|
+
* Every other block is `null` when the stage is inactive or unreachable
|
|
13069
|
+
* during the bounded parallel fan-out in the orchestrator implementation.
|
|
13070
|
+
*
|
|
13071
|
+
* See spec: `docs/superpowers/specs/2026-06-24-camera-status-aggregator-cap.md`
|
|
13072
|
+
*/
|
|
13073
|
+
var CameraStatusSchema = object({
|
|
13074
|
+
deviceId: number(),
|
|
13075
|
+
assignment: CameraAssignmentStatusSchema,
|
|
13076
|
+
source: CameraSourceStatusSchema,
|
|
13077
|
+
broker: CameraBrokerStatusSchema.nullable(),
|
|
13078
|
+
decoder: CameraDecoderStatusSchema.nullable(),
|
|
13079
|
+
motion: CameraMotionStatusSchema.nullable(),
|
|
13080
|
+
detection: CameraDetectionStatusSchema.nullable(),
|
|
13081
|
+
audio: CameraAudioStatusSchema.nullable(),
|
|
13082
|
+
recording: CameraRecordingStatusSchema.nullable(),
|
|
13083
|
+
/** Unix timestamp (ms) when this snapshot was composed server-side. */
|
|
13084
|
+
fetchedAt: number()
|
|
13085
|
+
});
|
|
12926
13086
|
method(object({
|
|
12927
13087
|
deviceId: number(),
|
|
12928
13088
|
agentNodeId: string()
|
|
@@ -12990,6 +13150,12 @@ method(object({
|
|
|
12990
13150
|
}), {
|
|
12991
13151
|
kind: "mutation",
|
|
12992
13152
|
auth: "admin"
|
|
13153
|
+
}), method(object({
|
|
13154
|
+
agentNodeId: string(),
|
|
13155
|
+
maxCameras: number().int().nonnegative().nullable()
|
|
13156
|
+
}), object({ success: literal(true) }), {
|
|
13157
|
+
kind: "mutation",
|
|
13158
|
+
auth: "admin"
|
|
12993
13159
|
}), method(object({ deviceId: number() }), CameraPipelineSettingsSchema.nullable()), method(object({
|
|
12994
13160
|
deviceId: number(),
|
|
12995
13161
|
addonId: string(),
|
|
@@ -13015,7 +13181,7 @@ method(object({
|
|
|
13015
13181
|
}), method(object({
|
|
13016
13182
|
deviceId: number(),
|
|
13017
13183
|
agentNodeId: string().optional()
|
|
13018
|
-
}), CameraPipelineConfigSchema), method(_void(), array(PipelineTemplateSchema).readonly()), method(object({
|
|
13184
|
+
}), CameraPipelineConfigSchema), method(object({ deviceId: number() }), CameraStatusSchema), method(object({ deviceIds: array(number()).optional() }), array(CameraStatusSchema).readonly()), method(_void(), array(PipelineTemplateSchema).readonly()), method(object({
|
|
13019
13185
|
name: string(),
|
|
13020
13186
|
description: string().optional(),
|
|
13021
13187
|
config: CameraPipelineConfigSchema
|
|
@@ -18847,6 +19013,12 @@ Object.freeze({
|
|
|
18847
19013
|
addonId: null,
|
|
18848
19014
|
access: "view"
|
|
18849
19015
|
},
|
|
19016
|
+
"pipelineExecutor.getEngineProvisioning": {
|
|
19017
|
+
capName: "pipeline-executor",
|
|
19018
|
+
capScope: "system",
|
|
19019
|
+
addonId: null,
|
|
19020
|
+
access: "view"
|
|
19021
|
+
},
|
|
18850
19022
|
"pipelineExecutor.getGlobalPipelineConfig": {
|
|
18851
19023
|
capName: "pipeline-executor",
|
|
18852
19024
|
capScope: "system",
|
|
@@ -19051,6 +19223,18 @@ Object.freeze({
|
|
|
19051
19223
|
addonId: null,
|
|
19052
19224
|
access: "view"
|
|
19053
19225
|
},
|
|
19226
|
+
"pipelineOrchestrator.getCameraStatus": {
|
|
19227
|
+
capName: "pipeline-orchestrator",
|
|
19228
|
+
capScope: "system",
|
|
19229
|
+
addonId: null,
|
|
19230
|
+
access: "view"
|
|
19231
|
+
},
|
|
19232
|
+
"pipelineOrchestrator.getCameraStatuses": {
|
|
19233
|
+
capName: "pipeline-orchestrator",
|
|
19234
|
+
capScope: "system",
|
|
19235
|
+
addonId: null,
|
|
19236
|
+
access: "view"
|
|
19237
|
+
},
|
|
19054
19238
|
"pipelineOrchestrator.getCameraStepOverrides": {
|
|
19055
19239
|
capName: "pipeline-orchestrator",
|
|
19056
19240
|
capScope: "system",
|
|
@@ -19135,6 +19319,12 @@ Object.freeze({
|
|
|
19135
19319
|
addonId: null,
|
|
19136
19320
|
access: "create"
|
|
19137
19321
|
},
|
|
19322
|
+
"pipelineOrchestrator.setAgentMaxCameras": {
|
|
19323
|
+
capName: "pipeline-orchestrator",
|
|
19324
|
+
capScope: "system",
|
|
19325
|
+
addonId: null,
|
|
19326
|
+
access: "create"
|
|
19327
|
+
},
|
|
19138
19328
|
"pipelineOrchestrator.setCameraPipelineForAgent": {
|
|
19139
19329
|
capName: "pipeline-orchestrator",
|
|
19140
19330
|
capScope: "system",
|
|
@@ -21,7 +21,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
21
21
|
enumerable: true
|
|
22
22
|
}) : target, mod));
|
|
23
23
|
//#endregion
|
|
24
|
-
const require_dist = require("../dist-
|
|
24
|
+
const require_dist = require("../dist-Bj5XzuE6.js");
|
|
25
25
|
let node_path = require("node:path");
|
|
26
26
|
node_path = __toESM(node_path);
|
|
27
27
|
let node_crypto = require("node:crypto");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as networkAccessCapability, c as array, d as literal, f as number, i as defineCustomActions, l as boolean, m as string, n as EventCategory, p as object, r as customAction, s as _enum, t as BaseAddon } from "../dist-
|
|
1
|
+
import { a as networkAccessCapability, c as array, d as literal, f as number, i as defineCustomActions, l as boolean, m as string, n as EventCategory, p as object, r as customAction, s as _enum, t as BaseAddon } from "../dist-D4obfhYq.mjs";
|
|
2
2
|
import * as path from "node:path";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
import { spawn } from "node:child_process";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_dist = require("../dist-
|
|
2
|
+
const require_dist = require("../dist-Bj5XzuE6.js");
|
|
3
3
|
//#region src/turn/cloudflare-turn.ts
|
|
4
4
|
/**
|
|
5
5
|
* Cloudflare returns ICE servers in several flavours depending on which
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { d as literal, f as number, i as defineCustomActions, l as boolean, m as string, o as turnProviderCapability, p as object, r as customAction, t as BaseAddon, u as discriminatedUnion } from "../dist-
|
|
1
|
+
import { d as literal, f as number, i as defineCustomActions, l as boolean, m as string, o as turnProviderCapability, p as object, r as customAction, t as BaseAddon, u as discriminatedUnion } from "../dist-D4obfhYq.mjs";
|
|
2
2
|
//#region src/turn/cloudflare-turn.ts
|
|
3
3
|
/**
|
|
4
4
|
* Cloudflare returns ICE servers in several flavours depending on which
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-cloudflare",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "Cloudflare bundle — Tunnel (network-access) + TURN relay (turn-provider). Multi-entry npm package shipping 2 addons under a single bundle.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|