@camstack/addon-remote-storage 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/s3.addon.js +1 -1
- package/dist/s3.addon.mjs +1 -1
- package/dist/sftp.addon.js +1 -1
- package/dist/sftp.addon.mjs +1 -1
- package/dist/{shared-uppUFqZL.js → shared-B6lKu5ns.js} +193 -3
- package/dist/{shared-uH6t_fje.mjs → shared-hviBSoIY.mjs} +193 -3
- package/dist/webdav.addon.js +1 -1
- package/dist/webdav.addon.mjs +1 -1
- package/package.json +1 -1
package/dist/s3.addon.js
CHANGED
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_shared = require("./shared-
|
|
5
|
+
const require_shared = require("./shared-B6lKu5ns.js");
|
|
6
6
|
let node_stream = require("node:stream");
|
|
7
7
|
let _aws_sdk_client_s3 = require("@aws-sdk/client-s3");
|
|
8
8
|
let _aws_sdk_lib_storage = require("@aws-sdk/lib-storage");
|
package/dist/s3.addon.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as storageProviderCapability, i as rearmIdleAbort, n as getOptionalBasePath, o as scheduleIdleAbort, s as BaseAddon, t as createSessionId } from "./shared-
|
|
1
|
+
import { c as storageProviderCapability, i as rearmIdleAbort, n as getOptionalBasePath, o as scheduleIdleAbort, s as BaseAddon, t as createSessionId } from "./shared-hviBSoIY.mjs";
|
|
2
2
|
import { PassThrough } from "node:stream";
|
|
3
3
|
import { DeleteObjectCommand, GetObjectCommand, HeadBucketCommand, HeadObjectCommand, ListObjectsV2Command, PutObjectCommand, S3Client } from "@aws-sdk/client-s3";
|
|
4
4
|
import { Upload } from "@aws-sdk/lib-storage";
|
package/dist/sftp.addon.js
CHANGED
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_shared = require("./shared-
|
|
5
|
+
const require_shared = require("./shared-B6lKu5ns.js");
|
|
6
6
|
let ssh2 = require("ssh2");
|
|
7
7
|
let node_path = require("node:path");
|
|
8
8
|
node_path = require_shared.__toESM(node_path);
|
package/dist/sftp.addon.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as safeJoinRemotePath, c as storageProviderCapability, i as rearmIdleAbort, o as scheduleIdleAbort, r as getRequiredBasePath, s as BaseAddon, t as createSessionId } from "./shared-
|
|
1
|
+
import { a as safeJoinRemotePath, c as storageProviderCapability, i as rearmIdleAbort, o as scheduleIdleAbort, r as getRequiredBasePath, s as BaseAddon, t as createSessionId } from "./shared-hviBSoIY.mjs";
|
|
2
2
|
import { Client } from "ssh2";
|
|
3
3
|
import * as path from "node:path";
|
|
4
4
|
//#region src/providers/sftp/sftp-config-schema.ts
|
|
@@ -5006,6 +5006,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
5006
5006
|
*/
|
|
5007
5007
|
EventCategory["PipelineEngineMetricsSnapshot"] = "pipeline.engine-metrics-snapshot";
|
|
5008
5008
|
/**
|
|
5009
|
+
* Per-node detection-engine runtime-provisioning transition. Emitted by
|
|
5010
|
+
* the detection-pipeline provider on every state change of its lazy
|
|
5011
|
+
* engine-provisioning machine (idle → installing → verifying → ready,
|
|
5012
|
+
* or → failed with a `nextRetryAt`). Payload is the
|
|
5013
|
+
* `EngineProvisioningState` snapshot; `event.source.nodeId` carries the
|
|
5014
|
+
* node. The Pipeline page subscribes to drive a live "installing
|
|
5015
|
+
* OpenVINO… / ready" indicator per node without polling
|
|
5016
|
+
* `pipelineExecutor.getEngineProvisioning`. Telemetry-grade (D8): the UI
|
|
5017
|
+
* also reads the cap snapshot on mount / reconnect. Phase 2.
|
|
5018
|
+
*/
|
|
5019
|
+
EventCategory["PipelineEngineProvisioning"] = "pipeline.engine-provisioning";
|
|
5020
|
+
/**
|
|
5009
5021
|
* Cluster topology snapshot. Carries the same payload returned by
|
|
5010
5022
|
* `nodes.topology` (every reachable node + addons + processes).
|
|
5011
5023
|
* Emitted by the hub on any agent / addon lifecycle change
|
|
@@ -9170,6 +9182,24 @@ var DetectorOutputSchema = object({
|
|
|
9170
9182
|
inferenceMs: number(),
|
|
9171
9183
|
modelId: string()
|
|
9172
9184
|
});
|
|
9185
|
+
var EngineProvisioningSchema = object({
|
|
9186
|
+
runtimeId: _enum([
|
|
9187
|
+
"onnx",
|
|
9188
|
+
"openvino",
|
|
9189
|
+
"coreml"
|
|
9190
|
+
]).nullable(),
|
|
9191
|
+
device: string().nullable(),
|
|
9192
|
+
state: _enum([
|
|
9193
|
+
"idle",
|
|
9194
|
+
"installing",
|
|
9195
|
+
"verifying",
|
|
9196
|
+
"ready",
|
|
9197
|
+
"failed"
|
|
9198
|
+
]),
|
|
9199
|
+
progress: number().optional(),
|
|
9200
|
+
error: string().optional(),
|
|
9201
|
+
nextRetryAt: number().optional()
|
|
9202
|
+
});
|
|
9173
9203
|
var PipelineStepInputSchema = lazy(() => object({
|
|
9174
9204
|
addonId: string(),
|
|
9175
9205
|
modelId: string(),
|
|
@@ -9238,7 +9268,7 @@ var PipelineRunResultBridge = custom();
|
|
|
9238
9268
|
method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngineChoiceSchema), method(PipelineEngineChoiceSchema, array(PipelineDefaultStepSchema)), method(_void(), PipelineEngineChoiceSchema, {
|
|
9239
9269
|
kind: "mutation",
|
|
9240
9270
|
auth: "admin"
|
|
9241
|
-
}), method(_void(), record(string(), object({
|
|
9271
|
+
}), method(object({ nodeId: string() }), EngineProvisioningSchema), method(_void(), record(string(), object({
|
|
9242
9272
|
modelId: string(),
|
|
9243
9273
|
settings: record(string(), unknown()).readonly()
|
|
9244
9274
|
}))), method(object({ steps: record(string(), object({
|
|
@@ -12870,7 +12900,10 @@ var AgentAddonConfigSchema = object({
|
|
|
12870
12900
|
modelId: string(),
|
|
12871
12901
|
settings: record(string(), unknown()).readonly()
|
|
12872
12902
|
});
|
|
12873
|
-
var AgentPipelineSettingsSchema = object({
|
|
12903
|
+
var AgentPipelineSettingsSchema = object({
|
|
12904
|
+
addonDefaults: record(string(), AgentAddonConfigSchema).readonly(),
|
|
12905
|
+
maxCameras: number().int().nonnegative().nullable().default(null)
|
|
12906
|
+
});
|
|
12874
12907
|
var CameraPipelineForAgentSchema = object({
|
|
12875
12908
|
steps: array(PipelineStepInputSchema).readonly(),
|
|
12876
12909
|
audio: object({
|
|
@@ -12972,6 +13005,133 @@ var GlobalMetricsSchema = object({
|
|
|
12972
13005
|
* capability providers.
|
|
12973
13006
|
*/
|
|
12974
13007
|
var CapabilityBindingsSchema = record(string(), string());
|
|
13008
|
+
/** Source block — always present; derives from the stream catalog. */
|
|
13009
|
+
var CameraSourceStatusSchema = object({ streams: array(object({
|
|
13010
|
+
camStreamId: string(),
|
|
13011
|
+
codec: string(),
|
|
13012
|
+
width: number(),
|
|
13013
|
+
height: number(),
|
|
13014
|
+
fps: number(),
|
|
13015
|
+
kind: string()
|
|
13016
|
+
})).readonly() });
|
|
13017
|
+
/** Assignment block — always present (orchestrator-local, no remote call). */
|
|
13018
|
+
var CameraAssignmentStatusSchema = object({
|
|
13019
|
+
detectionNodeId: string().nullable(),
|
|
13020
|
+
decoderNodeId: string().nullable(),
|
|
13021
|
+
audioNodeId: string().nullable(),
|
|
13022
|
+
pinned: object({
|
|
13023
|
+
detection: boolean(),
|
|
13024
|
+
decoder: boolean(),
|
|
13025
|
+
audio: boolean()
|
|
13026
|
+
}),
|
|
13027
|
+
reasons: object({
|
|
13028
|
+
detection: string().optional(),
|
|
13029
|
+
decoder: string().optional(),
|
|
13030
|
+
audio: string().optional()
|
|
13031
|
+
})
|
|
13032
|
+
});
|
|
13033
|
+
/** Broker block — null when the broker stage is unreachable or inactive. */
|
|
13034
|
+
var CameraBrokerStatusSchema = object({
|
|
13035
|
+
profiles: array(object({
|
|
13036
|
+
profile: string(),
|
|
13037
|
+
status: string(),
|
|
13038
|
+
codec: string(),
|
|
13039
|
+
width: number(),
|
|
13040
|
+
height: number(),
|
|
13041
|
+
subscribers: number(),
|
|
13042
|
+
inFps: number(),
|
|
13043
|
+
outFps: number()
|
|
13044
|
+
})).readonly(),
|
|
13045
|
+
webrtcSessions: number(),
|
|
13046
|
+
rtspRestream: boolean()
|
|
13047
|
+
});
|
|
13048
|
+
/** Shared-memory ring statistics within the decoder block. */
|
|
13049
|
+
var CameraDecoderShmSchema = object({
|
|
13050
|
+
framesWritten: number(),
|
|
13051
|
+
getFrameHits: number(),
|
|
13052
|
+
getFrameMisses: number(),
|
|
13053
|
+
budgetMb: number()
|
|
13054
|
+
});
|
|
13055
|
+
/** Decoder block — null when the decoder stage is unreachable or inactive. */
|
|
13056
|
+
var CameraDecoderStatusSchema = object({
|
|
13057
|
+
nodeId: string(),
|
|
13058
|
+
formats: array(string()).readonly(),
|
|
13059
|
+
sessionCount: number(),
|
|
13060
|
+
shm: CameraDecoderShmSchema
|
|
13061
|
+
});
|
|
13062
|
+
/** Motion block — null when motion detection is not active for this device. */
|
|
13063
|
+
var CameraMotionStatusSchema = object({
|
|
13064
|
+
enabled: boolean(),
|
|
13065
|
+
fps: number()
|
|
13066
|
+
});
|
|
13067
|
+
/** Detection provisioning sub-block. */
|
|
13068
|
+
var CameraDetectionProvisioningSchema = object({
|
|
13069
|
+
state: _enum([
|
|
13070
|
+
"idle",
|
|
13071
|
+
"installing",
|
|
13072
|
+
"verifying",
|
|
13073
|
+
"ready",
|
|
13074
|
+
"failed"
|
|
13075
|
+
]),
|
|
13076
|
+
error: string().optional()
|
|
13077
|
+
});
|
|
13078
|
+
/** Detection phase — derived from the runner's engine phase. */
|
|
13079
|
+
var CameraDetectionPhaseSchema = _enum([
|
|
13080
|
+
"idle",
|
|
13081
|
+
"watching",
|
|
13082
|
+
"active"
|
|
13083
|
+
]);
|
|
13084
|
+
/** Detection block — null when no detection node is assigned or reachable. */
|
|
13085
|
+
var CameraDetectionStatusSchema = object({
|
|
13086
|
+
nodeId: string(),
|
|
13087
|
+
engine: object({
|
|
13088
|
+
backend: string(),
|
|
13089
|
+
device: string()
|
|
13090
|
+
}),
|
|
13091
|
+
phase: CameraDetectionPhaseSchema,
|
|
13092
|
+
configuredFps: number(),
|
|
13093
|
+
actualFps: number(),
|
|
13094
|
+
queueDepth: number(),
|
|
13095
|
+
avgInferenceMs: number(),
|
|
13096
|
+
provisioning: CameraDetectionProvisioningSchema
|
|
13097
|
+
});
|
|
13098
|
+
/** Audio block — null when no audio node is assigned or reachable. */
|
|
13099
|
+
var CameraAudioStatusSchema = object({
|
|
13100
|
+
nodeId: string(),
|
|
13101
|
+
enabled: boolean()
|
|
13102
|
+
});
|
|
13103
|
+
/** Recording block — null when no recording cap is active for this device. */
|
|
13104
|
+
var CameraRecordingStatusSchema = object({
|
|
13105
|
+
mode: _enum([
|
|
13106
|
+
"off",
|
|
13107
|
+
"continuous",
|
|
13108
|
+
"events"
|
|
13109
|
+
]),
|
|
13110
|
+
active: boolean(),
|
|
13111
|
+
storageBytes: number()
|
|
13112
|
+
});
|
|
13113
|
+
/**
|
|
13114
|
+
* Aggregated per-camera pipeline status — server-composed, single call.
|
|
13115
|
+
*
|
|
13116
|
+
* The `assignment` and `source` blocks are always present.
|
|
13117
|
+
* Every other block is `null` when the stage is inactive or unreachable
|
|
13118
|
+
* during the bounded parallel fan-out in the orchestrator implementation.
|
|
13119
|
+
*
|
|
13120
|
+
* See spec: `docs/superpowers/specs/2026-06-24-camera-status-aggregator-cap.md`
|
|
13121
|
+
*/
|
|
13122
|
+
var CameraStatusSchema = object({
|
|
13123
|
+
deviceId: number(),
|
|
13124
|
+
assignment: CameraAssignmentStatusSchema,
|
|
13125
|
+
source: CameraSourceStatusSchema,
|
|
13126
|
+
broker: CameraBrokerStatusSchema.nullable(),
|
|
13127
|
+
decoder: CameraDecoderStatusSchema.nullable(),
|
|
13128
|
+
motion: CameraMotionStatusSchema.nullable(),
|
|
13129
|
+
detection: CameraDetectionStatusSchema.nullable(),
|
|
13130
|
+
audio: CameraAudioStatusSchema.nullable(),
|
|
13131
|
+
recording: CameraRecordingStatusSchema.nullable(),
|
|
13132
|
+
/** Unix timestamp (ms) when this snapshot was composed server-side. */
|
|
13133
|
+
fetchedAt: number()
|
|
13134
|
+
});
|
|
12975
13135
|
method(object({
|
|
12976
13136
|
deviceId: number(),
|
|
12977
13137
|
agentNodeId: string()
|
|
@@ -13039,6 +13199,12 @@ method(object({
|
|
|
13039
13199
|
}), {
|
|
13040
13200
|
kind: "mutation",
|
|
13041
13201
|
auth: "admin"
|
|
13202
|
+
}), method(object({
|
|
13203
|
+
agentNodeId: string(),
|
|
13204
|
+
maxCameras: number().int().nonnegative().nullable()
|
|
13205
|
+
}), object({ success: literal(true) }), {
|
|
13206
|
+
kind: "mutation",
|
|
13207
|
+
auth: "admin"
|
|
13042
13208
|
}), method(object({ deviceId: number() }), CameraPipelineSettingsSchema.nullable()), method(object({
|
|
13043
13209
|
deviceId: number(),
|
|
13044
13210
|
addonId: string(),
|
|
@@ -13064,7 +13230,7 @@ method(object({
|
|
|
13064
13230
|
}), method(object({
|
|
13065
13231
|
deviceId: number(),
|
|
13066
13232
|
agentNodeId: string().optional()
|
|
13067
|
-
}), CameraPipelineConfigSchema), method(_void(), array(PipelineTemplateSchema).readonly()), method(object({
|
|
13233
|
+
}), CameraPipelineConfigSchema), method(object({ deviceId: number() }), CameraStatusSchema), method(object({ deviceIds: array(number()).optional() }), array(CameraStatusSchema).readonly()), method(_void(), array(PipelineTemplateSchema).readonly()), method(object({
|
|
13068
13234
|
name: string(),
|
|
13069
13235
|
description: string().optional(),
|
|
13070
13236
|
config: CameraPipelineConfigSchema
|
|
@@ -18856,6 +19022,12 @@ Object.freeze({
|
|
|
18856
19022
|
addonId: null,
|
|
18857
19023
|
access: "view"
|
|
18858
19024
|
},
|
|
19025
|
+
"pipelineExecutor.getEngineProvisioning": {
|
|
19026
|
+
capName: "pipeline-executor",
|
|
19027
|
+
capScope: "system",
|
|
19028
|
+
addonId: null,
|
|
19029
|
+
access: "view"
|
|
19030
|
+
},
|
|
18859
19031
|
"pipelineExecutor.getGlobalPipelineConfig": {
|
|
18860
19032
|
capName: "pipeline-executor",
|
|
18861
19033
|
capScope: "system",
|
|
@@ -19060,6 +19232,18 @@ Object.freeze({
|
|
|
19060
19232
|
addonId: null,
|
|
19061
19233
|
access: "view"
|
|
19062
19234
|
},
|
|
19235
|
+
"pipelineOrchestrator.getCameraStatus": {
|
|
19236
|
+
capName: "pipeline-orchestrator",
|
|
19237
|
+
capScope: "system",
|
|
19238
|
+
addonId: null,
|
|
19239
|
+
access: "view"
|
|
19240
|
+
},
|
|
19241
|
+
"pipelineOrchestrator.getCameraStatuses": {
|
|
19242
|
+
capName: "pipeline-orchestrator",
|
|
19243
|
+
capScope: "system",
|
|
19244
|
+
addonId: null,
|
|
19245
|
+
access: "view"
|
|
19246
|
+
},
|
|
19063
19247
|
"pipelineOrchestrator.getCameraStepOverrides": {
|
|
19064
19248
|
capName: "pipeline-orchestrator",
|
|
19065
19249
|
capScope: "system",
|
|
@@ -19144,6 +19328,12 @@ Object.freeze({
|
|
|
19144
19328
|
addonId: null,
|
|
19145
19329
|
access: "create"
|
|
19146
19330
|
},
|
|
19331
|
+
"pipelineOrchestrator.setAgentMaxCameras": {
|
|
19332
|
+
capName: "pipeline-orchestrator",
|
|
19333
|
+
capScope: "system",
|
|
19334
|
+
addonId: null,
|
|
19335
|
+
access: "create"
|
|
19336
|
+
},
|
|
19147
19337
|
"pipelineOrchestrator.setCameraPipelineForAgent": {
|
|
19148
19338
|
capName: "pipeline-orchestrator",
|
|
19149
19339
|
capScope: "system",
|
|
@@ -4983,6 +4983,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
4983
4983
|
*/
|
|
4984
4984
|
EventCategory["PipelineEngineMetricsSnapshot"] = "pipeline.engine-metrics-snapshot";
|
|
4985
4985
|
/**
|
|
4986
|
+
* Per-node detection-engine runtime-provisioning transition. Emitted by
|
|
4987
|
+
* the detection-pipeline provider on every state change of its lazy
|
|
4988
|
+
* engine-provisioning machine (idle → installing → verifying → ready,
|
|
4989
|
+
* or → failed with a `nextRetryAt`). Payload is the
|
|
4990
|
+
* `EngineProvisioningState` snapshot; `event.source.nodeId` carries the
|
|
4991
|
+
* node. The Pipeline page subscribes to drive a live "installing
|
|
4992
|
+
* OpenVINO… / ready" indicator per node without polling
|
|
4993
|
+
* `pipelineExecutor.getEngineProvisioning`. Telemetry-grade (D8): the UI
|
|
4994
|
+
* also reads the cap snapshot on mount / reconnect. Phase 2.
|
|
4995
|
+
*/
|
|
4996
|
+
EventCategory["PipelineEngineProvisioning"] = "pipeline.engine-provisioning";
|
|
4997
|
+
/**
|
|
4986
4998
|
* Cluster topology snapshot. Carries the same payload returned by
|
|
4987
4999
|
* `nodes.topology` (every reachable node + addons + processes).
|
|
4988
5000
|
* Emitted by the hub on any agent / addon lifecycle change
|
|
@@ -9147,6 +9159,24 @@ var DetectorOutputSchema = object({
|
|
|
9147
9159
|
inferenceMs: number(),
|
|
9148
9160
|
modelId: string()
|
|
9149
9161
|
});
|
|
9162
|
+
var EngineProvisioningSchema = object({
|
|
9163
|
+
runtimeId: _enum([
|
|
9164
|
+
"onnx",
|
|
9165
|
+
"openvino",
|
|
9166
|
+
"coreml"
|
|
9167
|
+
]).nullable(),
|
|
9168
|
+
device: string().nullable(),
|
|
9169
|
+
state: _enum([
|
|
9170
|
+
"idle",
|
|
9171
|
+
"installing",
|
|
9172
|
+
"verifying",
|
|
9173
|
+
"ready",
|
|
9174
|
+
"failed"
|
|
9175
|
+
]),
|
|
9176
|
+
progress: number().optional(),
|
|
9177
|
+
error: string().optional(),
|
|
9178
|
+
nextRetryAt: number().optional()
|
|
9179
|
+
});
|
|
9150
9180
|
var PipelineStepInputSchema = lazy(() => object({
|
|
9151
9181
|
addonId: string(),
|
|
9152
9182
|
modelId: string(),
|
|
@@ -9215,7 +9245,7 @@ var PipelineRunResultBridge = custom();
|
|
|
9215
9245
|
method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngineChoiceSchema), method(PipelineEngineChoiceSchema, array(PipelineDefaultStepSchema)), method(_void(), PipelineEngineChoiceSchema, {
|
|
9216
9246
|
kind: "mutation",
|
|
9217
9247
|
auth: "admin"
|
|
9218
|
-
}), method(_void(), record(string(), object({
|
|
9248
|
+
}), method(object({ nodeId: string() }), EngineProvisioningSchema), method(_void(), record(string(), object({
|
|
9219
9249
|
modelId: string(),
|
|
9220
9250
|
settings: record(string(), unknown()).readonly()
|
|
9221
9251
|
}))), method(object({ steps: record(string(), object({
|
|
@@ -12847,7 +12877,10 @@ var AgentAddonConfigSchema = object({
|
|
|
12847
12877
|
modelId: string(),
|
|
12848
12878
|
settings: record(string(), unknown()).readonly()
|
|
12849
12879
|
});
|
|
12850
|
-
var AgentPipelineSettingsSchema = object({
|
|
12880
|
+
var AgentPipelineSettingsSchema = object({
|
|
12881
|
+
addonDefaults: record(string(), AgentAddonConfigSchema).readonly(),
|
|
12882
|
+
maxCameras: number().int().nonnegative().nullable().default(null)
|
|
12883
|
+
});
|
|
12851
12884
|
var CameraPipelineForAgentSchema = object({
|
|
12852
12885
|
steps: array(PipelineStepInputSchema).readonly(),
|
|
12853
12886
|
audio: object({
|
|
@@ -12949,6 +12982,133 @@ var GlobalMetricsSchema = object({
|
|
|
12949
12982
|
* capability providers.
|
|
12950
12983
|
*/
|
|
12951
12984
|
var CapabilityBindingsSchema = record(string(), string());
|
|
12985
|
+
/** Source block — always present; derives from the stream catalog. */
|
|
12986
|
+
var CameraSourceStatusSchema = object({ streams: array(object({
|
|
12987
|
+
camStreamId: string(),
|
|
12988
|
+
codec: string(),
|
|
12989
|
+
width: number(),
|
|
12990
|
+
height: number(),
|
|
12991
|
+
fps: number(),
|
|
12992
|
+
kind: string()
|
|
12993
|
+
})).readonly() });
|
|
12994
|
+
/** Assignment block — always present (orchestrator-local, no remote call). */
|
|
12995
|
+
var CameraAssignmentStatusSchema = object({
|
|
12996
|
+
detectionNodeId: string().nullable(),
|
|
12997
|
+
decoderNodeId: string().nullable(),
|
|
12998
|
+
audioNodeId: string().nullable(),
|
|
12999
|
+
pinned: object({
|
|
13000
|
+
detection: boolean(),
|
|
13001
|
+
decoder: boolean(),
|
|
13002
|
+
audio: boolean()
|
|
13003
|
+
}),
|
|
13004
|
+
reasons: object({
|
|
13005
|
+
detection: string().optional(),
|
|
13006
|
+
decoder: string().optional(),
|
|
13007
|
+
audio: string().optional()
|
|
13008
|
+
})
|
|
13009
|
+
});
|
|
13010
|
+
/** Broker block — null when the broker stage is unreachable or inactive. */
|
|
13011
|
+
var CameraBrokerStatusSchema = object({
|
|
13012
|
+
profiles: array(object({
|
|
13013
|
+
profile: string(),
|
|
13014
|
+
status: string(),
|
|
13015
|
+
codec: string(),
|
|
13016
|
+
width: number(),
|
|
13017
|
+
height: number(),
|
|
13018
|
+
subscribers: number(),
|
|
13019
|
+
inFps: number(),
|
|
13020
|
+
outFps: number()
|
|
13021
|
+
})).readonly(),
|
|
13022
|
+
webrtcSessions: number(),
|
|
13023
|
+
rtspRestream: boolean()
|
|
13024
|
+
});
|
|
13025
|
+
/** Shared-memory ring statistics within the decoder block. */
|
|
13026
|
+
var CameraDecoderShmSchema = object({
|
|
13027
|
+
framesWritten: number(),
|
|
13028
|
+
getFrameHits: number(),
|
|
13029
|
+
getFrameMisses: number(),
|
|
13030
|
+
budgetMb: number()
|
|
13031
|
+
});
|
|
13032
|
+
/** Decoder block — null when the decoder stage is unreachable or inactive. */
|
|
13033
|
+
var CameraDecoderStatusSchema = object({
|
|
13034
|
+
nodeId: string(),
|
|
13035
|
+
formats: array(string()).readonly(),
|
|
13036
|
+
sessionCount: number(),
|
|
13037
|
+
shm: CameraDecoderShmSchema
|
|
13038
|
+
});
|
|
13039
|
+
/** Motion block — null when motion detection is not active for this device. */
|
|
13040
|
+
var CameraMotionStatusSchema = object({
|
|
13041
|
+
enabled: boolean(),
|
|
13042
|
+
fps: number()
|
|
13043
|
+
});
|
|
13044
|
+
/** Detection provisioning sub-block. */
|
|
13045
|
+
var CameraDetectionProvisioningSchema = object({
|
|
13046
|
+
state: _enum([
|
|
13047
|
+
"idle",
|
|
13048
|
+
"installing",
|
|
13049
|
+
"verifying",
|
|
13050
|
+
"ready",
|
|
13051
|
+
"failed"
|
|
13052
|
+
]),
|
|
13053
|
+
error: string().optional()
|
|
13054
|
+
});
|
|
13055
|
+
/** Detection phase — derived from the runner's engine phase. */
|
|
13056
|
+
var CameraDetectionPhaseSchema = _enum([
|
|
13057
|
+
"idle",
|
|
13058
|
+
"watching",
|
|
13059
|
+
"active"
|
|
13060
|
+
]);
|
|
13061
|
+
/** Detection block — null when no detection node is assigned or reachable. */
|
|
13062
|
+
var CameraDetectionStatusSchema = object({
|
|
13063
|
+
nodeId: string(),
|
|
13064
|
+
engine: object({
|
|
13065
|
+
backend: string(),
|
|
13066
|
+
device: string()
|
|
13067
|
+
}),
|
|
13068
|
+
phase: CameraDetectionPhaseSchema,
|
|
13069
|
+
configuredFps: number(),
|
|
13070
|
+
actualFps: number(),
|
|
13071
|
+
queueDepth: number(),
|
|
13072
|
+
avgInferenceMs: number(),
|
|
13073
|
+
provisioning: CameraDetectionProvisioningSchema
|
|
13074
|
+
});
|
|
13075
|
+
/** Audio block — null when no audio node is assigned or reachable. */
|
|
13076
|
+
var CameraAudioStatusSchema = object({
|
|
13077
|
+
nodeId: string(),
|
|
13078
|
+
enabled: boolean()
|
|
13079
|
+
});
|
|
13080
|
+
/** Recording block — null when no recording cap is active for this device. */
|
|
13081
|
+
var CameraRecordingStatusSchema = object({
|
|
13082
|
+
mode: _enum([
|
|
13083
|
+
"off",
|
|
13084
|
+
"continuous",
|
|
13085
|
+
"events"
|
|
13086
|
+
]),
|
|
13087
|
+
active: boolean(),
|
|
13088
|
+
storageBytes: number()
|
|
13089
|
+
});
|
|
13090
|
+
/**
|
|
13091
|
+
* Aggregated per-camera pipeline status — server-composed, single call.
|
|
13092
|
+
*
|
|
13093
|
+
* The `assignment` and `source` blocks are always present.
|
|
13094
|
+
* Every other block is `null` when the stage is inactive or unreachable
|
|
13095
|
+
* during the bounded parallel fan-out in the orchestrator implementation.
|
|
13096
|
+
*
|
|
13097
|
+
* See spec: `docs/superpowers/specs/2026-06-24-camera-status-aggregator-cap.md`
|
|
13098
|
+
*/
|
|
13099
|
+
var CameraStatusSchema = object({
|
|
13100
|
+
deviceId: number(),
|
|
13101
|
+
assignment: CameraAssignmentStatusSchema,
|
|
13102
|
+
source: CameraSourceStatusSchema,
|
|
13103
|
+
broker: CameraBrokerStatusSchema.nullable(),
|
|
13104
|
+
decoder: CameraDecoderStatusSchema.nullable(),
|
|
13105
|
+
motion: CameraMotionStatusSchema.nullable(),
|
|
13106
|
+
detection: CameraDetectionStatusSchema.nullable(),
|
|
13107
|
+
audio: CameraAudioStatusSchema.nullable(),
|
|
13108
|
+
recording: CameraRecordingStatusSchema.nullable(),
|
|
13109
|
+
/** Unix timestamp (ms) when this snapshot was composed server-side. */
|
|
13110
|
+
fetchedAt: number()
|
|
13111
|
+
});
|
|
12952
13112
|
method(object({
|
|
12953
13113
|
deviceId: number(),
|
|
12954
13114
|
agentNodeId: string()
|
|
@@ -13016,6 +13176,12 @@ method(object({
|
|
|
13016
13176
|
}), {
|
|
13017
13177
|
kind: "mutation",
|
|
13018
13178
|
auth: "admin"
|
|
13179
|
+
}), method(object({
|
|
13180
|
+
agentNodeId: string(),
|
|
13181
|
+
maxCameras: number().int().nonnegative().nullable()
|
|
13182
|
+
}), object({ success: literal(true) }), {
|
|
13183
|
+
kind: "mutation",
|
|
13184
|
+
auth: "admin"
|
|
13019
13185
|
}), method(object({ deviceId: number() }), CameraPipelineSettingsSchema.nullable()), method(object({
|
|
13020
13186
|
deviceId: number(),
|
|
13021
13187
|
addonId: string(),
|
|
@@ -13041,7 +13207,7 @@ method(object({
|
|
|
13041
13207
|
}), method(object({
|
|
13042
13208
|
deviceId: number(),
|
|
13043
13209
|
agentNodeId: string().optional()
|
|
13044
|
-
}), CameraPipelineConfigSchema), method(_void(), array(PipelineTemplateSchema).readonly()), method(object({
|
|
13210
|
+
}), CameraPipelineConfigSchema), method(object({ deviceId: number() }), CameraStatusSchema), method(object({ deviceIds: array(number()).optional() }), array(CameraStatusSchema).readonly()), method(_void(), array(PipelineTemplateSchema).readonly()), method(object({
|
|
13045
13211
|
name: string(),
|
|
13046
13212
|
description: string().optional(),
|
|
13047
13213
|
config: CameraPipelineConfigSchema
|
|
@@ -18833,6 +18999,12 @@ Object.freeze({
|
|
|
18833
18999
|
addonId: null,
|
|
18834
19000
|
access: "view"
|
|
18835
19001
|
},
|
|
19002
|
+
"pipelineExecutor.getEngineProvisioning": {
|
|
19003
|
+
capName: "pipeline-executor",
|
|
19004
|
+
capScope: "system",
|
|
19005
|
+
addonId: null,
|
|
19006
|
+
access: "view"
|
|
19007
|
+
},
|
|
18836
19008
|
"pipelineExecutor.getGlobalPipelineConfig": {
|
|
18837
19009
|
capName: "pipeline-executor",
|
|
18838
19010
|
capScope: "system",
|
|
@@ -19037,6 +19209,18 @@ Object.freeze({
|
|
|
19037
19209
|
addonId: null,
|
|
19038
19210
|
access: "view"
|
|
19039
19211
|
},
|
|
19212
|
+
"pipelineOrchestrator.getCameraStatus": {
|
|
19213
|
+
capName: "pipeline-orchestrator",
|
|
19214
|
+
capScope: "system",
|
|
19215
|
+
addonId: null,
|
|
19216
|
+
access: "view"
|
|
19217
|
+
},
|
|
19218
|
+
"pipelineOrchestrator.getCameraStatuses": {
|
|
19219
|
+
capName: "pipeline-orchestrator",
|
|
19220
|
+
capScope: "system",
|
|
19221
|
+
addonId: null,
|
|
19222
|
+
access: "view"
|
|
19223
|
+
},
|
|
19040
19224
|
"pipelineOrchestrator.getCameraStepOverrides": {
|
|
19041
19225
|
capName: "pipeline-orchestrator",
|
|
19042
19226
|
capScope: "system",
|
|
@@ -19121,6 +19305,12 @@ Object.freeze({
|
|
|
19121
19305
|
addonId: null,
|
|
19122
19306
|
access: "create"
|
|
19123
19307
|
},
|
|
19308
|
+
"pipelineOrchestrator.setAgentMaxCameras": {
|
|
19309
|
+
capName: "pipeline-orchestrator",
|
|
19310
|
+
capScope: "system",
|
|
19311
|
+
addonId: null,
|
|
19312
|
+
access: "create"
|
|
19313
|
+
},
|
|
19124
19314
|
"pipelineOrchestrator.setCameraPipelineForAgent": {
|
|
19125
19315
|
capName: "pipeline-orchestrator",
|
|
19126
19316
|
capScope: "system",
|
package/dist/webdav.addon.js
CHANGED
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_shared = require("./shared-
|
|
5
|
+
const require_shared = require("./shared-B6lKu5ns.js");
|
|
6
6
|
let node_stream = require("node:stream");
|
|
7
7
|
let webdav = require("webdav");
|
|
8
8
|
//#region src/providers/webdav/webdav-config-schema.ts
|
package/dist/webdav.addon.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as safeJoinRemotePath, c as storageProviderCapability, i as rearmIdleAbort, o as scheduleIdleAbort, r as getRequiredBasePath, s as BaseAddon, t as createSessionId } from "./shared-
|
|
1
|
+
import { a as safeJoinRemotePath, c as storageProviderCapability, i as rearmIdleAbort, o as scheduleIdleAbort, r as getRequiredBasePath, s as BaseAddon, t as createSessionId } from "./shared-hviBSoIY.mjs";
|
|
2
2
|
import { PassThrough } from "node:stream";
|
|
3
3
|
import { AuthType, createClient } from "webdav";
|
|
4
4
|
//#region src/providers/webdav/webdav-config-schema.ts
|
package/package.json
CHANGED