@camstack/addon-pipeline-orchestrator 1.2.89 → 1.2.91
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/assets/viewer/.viewer-current-files.json +1 -1
- package/assets/viewer/.viewer-version +1 -1
- package/assets/viewer/_expo/static/js/web/{index-bdb01da2325ee3ceecde733506d5aba4.js → index-018017d560110c67f3afdbe9dd9a3ab0.js} +8 -8
- package/assets/viewer/index.html +1 -1
- package/dist/_stub.js +24 -24
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-CGGkgR5Q.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets--gAOotmS.mjs} +3 -3
- package/dist/_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BwZqYGZP.mjs +26 -0
- package/dist/{_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-7WxrFeM1.mjs → _virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-BiicNLbC.mjs} +2 -2
- package/dist/{hostInit-D3SScsvw.mjs → hostInit-JgsvOmUF.mjs} +3 -3
- package/dist/index.js +149 -12
- package/dist/index.mjs +149 -12
- package/dist/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/assets/viewer/_expo/static/js/web/index-2811e7e013c5867b998ec4ef972ec76d.js +0 -3576
- package/dist/_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BtVo8S7A.mjs +0 -26
package/dist/index.js
CHANGED
|
@@ -21113,6 +21113,9 @@ method(_void(), ProviderInfoSchema), method(object({ config: record(string(), un
|
|
|
21113
21113
|
location: StorageLocationSchema,
|
|
21114
21114
|
relativePath: string()
|
|
21115
21115
|
}), _void(), { kind: "mutation" }), method(object({ location: StorageLocationSchema }), number().nullable()), method(BeginUploadInputSchema, BeginUploadResultSchema, { kind: "mutation" }), method(WriteChunkInputSchema, _void(), { kind: "mutation" }), method(FinalizeUploadInputSchema, _void(), { kind: "mutation" }), method(AbortUploadInputSchema, _void(), { kind: "mutation" }), method(BeginDownloadInputSchema, BeginDownloadResultSchema, { kind: "mutation" }), method(ReadChunkInputSchema, _instanceof(Uint8Array)), method(EndDownloadInputSchema, _void(), { kind: "mutation" });
|
|
21116
|
+
/** Profile-exported FormBuilder schema. Shape is ConfigUISchema at the UI. */
|
|
21117
|
+
var ProfileSettingsSchemaBridge = unknown().nullable();
|
|
21118
|
+
var ProfileSettingsBagSchema = record(string(), unknown());
|
|
21116
21119
|
/**
|
|
21117
21120
|
* A live terminal session hosted by the provider addon. Output and input do
|
|
21118
21121
|
* NOT flow through the capability — they use the addon data plane
|
|
@@ -21142,7 +21145,14 @@ var TerminalSessionInfoSchema = object({
|
|
|
21142
21145
|
var TerminalProfileInfoSchema = object({
|
|
21143
21146
|
profileId: string(),
|
|
21144
21147
|
label: string(),
|
|
21145
|
-
description: string().optional()
|
|
21148
|
+
description: string().optional(),
|
|
21149
|
+
/** Spawn defaults the instance form copies on create. */
|
|
21150
|
+
executable: string().optional(),
|
|
21151
|
+
args: array(string()).readonly().optional(),
|
|
21152
|
+
cwd: string().optional(),
|
|
21153
|
+
environment: array(string()).readonly().optional(),
|
|
21154
|
+
/** ConfigUISchema for instance knobs, or null when the profile has none. */
|
|
21155
|
+
settingsSchema: ProfileSettingsSchemaBridge.optional()
|
|
21146
21156
|
});
|
|
21147
21157
|
/**
|
|
21148
21158
|
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
@@ -21155,7 +21165,12 @@ var TerminalInstanceInfoSchema = object({
|
|
|
21155
21165
|
profileId: string(),
|
|
21156
21166
|
profileLabel: string(),
|
|
21157
21167
|
name: string(),
|
|
21158
|
-
enabled: boolean()
|
|
21168
|
+
enabled: boolean(),
|
|
21169
|
+
executable: string(),
|
|
21170
|
+
args: array(string()).readonly(),
|
|
21171
|
+
cwd: string(),
|
|
21172
|
+
environment: array(string()).readonly(),
|
|
21173
|
+
profileSettings: ProfileSettingsBagSchema
|
|
21159
21174
|
});
|
|
21160
21175
|
var TerminalLegacyCameraSchema = object({
|
|
21161
21176
|
stableId: string(),
|
|
@@ -21185,7 +21200,23 @@ var TerminalOutputBatchSchema = object({
|
|
|
21185
21200
|
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
21186
21201
|
targetNodeId: string().min(1),
|
|
21187
21202
|
profileId: string().min(1),
|
|
21188
|
-
name: string().trim().min(1).max(160).optional()
|
|
21203
|
+
name: string().trim().min(1).max(160).optional(),
|
|
21204
|
+
executable: string().max(1024).optional(),
|
|
21205
|
+
args: array(string().max(2048)).max(64).optional(),
|
|
21206
|
+
cwd: string().max(1024).optional(),
|
|
21207
|
+
environment: array(string().max(4096)).max(64).optional(),
|
|
21208
|
+
profileSettings: ProfileSettingsBagSchema.optional()
|
|
21209
|
+
}), TerminalInstanceInfoSchema, {
|
|
21210
|
+
kind: "mutation",
|
|
21211
|
+
auth: "admin"
|
|
21212
|
+
}), method(object({
|
|
21213
|
+
instanceId: string().min(1),
|
|
21214
|
+
name: string().trim().min(1).max(160).optional(),
|
|
21215
|
+
executable: string().max(1024).optional(),
|
|
21216
|
+
args: array(string().max(2048)).max(64).optional(),
|
|
21217
|
+
cwd: string().max(1024).optional(),
|
|
21218
|
+
environment: array(string().max(4096)).max(64).optional(),
|
|
21219
|
+
profileSettings: ProfileSettingsBagSchema.optional()
|
|
21189
21220
|
}), TerminalInstanceInfoSchema, {
|
|
21190
21221
|
kind: "mutation",
|
|
21191
21222
|
auth: "admin"
|
|
@@ -21207,7 +21238,11 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
21207
21238
|
}), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
21208
21239
|
profileId: string(),
|
|
21209
21240
|
cols: number().int().positive(),
|
|
21210
|
-
rows: number().int().positive()
|
|
21241
|
+
rows: number().int().positive(),
|
|
21242
|
+
executable: string().max(1024).optional(),
|
|
21243
|
+
args: array(string().max(2048)).max(64).optional(),
|
|
21244
|
+
cwd: string().max(1024).optional(),
|
|
21245
|
+
environment: array(string().max(4096)).max(64).optional()
|
|
21211
21246
|
}), TerminalSessionInfoSchema, {
|
|
21212
21247
|
kind: "mutation",
|
|
21213
21248
|
auth: "admin"
|
|
@@ -23989,10 +24024,10 @@ DeviceType.LawnMower, method(object({ deviceId: number().int().nonnegative() }),
|
|
|
23989
24024
|
*
|
|
23990
24025
|
* • The SDK (mobile / web client) consumes `getConnectionEndpoints()`
|
|
23991
24026
|
* to receive an ordered list of candidate base URLs it should race
|
|
23992
|
-
* on connect — LAN IPv4 first (lowest latency
|
|
23993
|
-
* then public hostname (if a tunnel is
|
|
23994
|
-
* race them with short timeouts and stick with the
|
|
23995
|
-
* session.
|
|
24027
|
+
* on connect — LAN IPv4 and stable LAN IPv6 first (lowest latency
|
|
24028
|
+
* when on the same network), then public hostname (if a tunnel is
|
|
24029
|
+
* up). The SDK can race them with short timeouts and stick with the
|
|
24030
|
+
* winner for the session.
|
|
23996
24031
|
*
|
|
23997
24032
|
* Why hub-only: agents are not directly addressable by the operator's
|
|
23998
24033
|
* clients — they reverse-connect to the hub. Exposing their interfaces
|
|
@@ -24155,6 +24190,20 @@ var AllowedAddressesSchema = object({
|
|
|
24155
24190
|
* Network Addresses admin page and persisted by the addon.
|
|
24156
24191
|
*/
|
|
24157
24192
|
addresses: array(string()).readonly() });
|
|
24193
|
+
var TlsStatusSchema = object({
|
|
24194
|
+
mode: _enum([
|
|
24195
|
+
"generated",
|
|
24196
|
+
"uploaded",
|
|
24197
|
+
"disabled"
|
|
24198
|
+
]),
|
|
24199
|
+
leafFingerprintSha256: string().nullable(),
|
|
24200
|
+
caFingerprintSha256: string().nullable(),
|
|
24201
|
+
validTo: string().nullable(),
|
|
24202
|
+
sans: array(string()),
|
|
24203
|
+
caCertPem: string().nullable(),
|
|
24204
|
+
reissueError: string().nullable(),
|
|
24205
|
+
restartRequired: boolean()
|
|
24206
|
+
});
|
|
24158
24207
|
method(_void(), ListResultSchema), method(_void(), PreferredSchema), method(object({
|
|
24159
24208
|
/**
|
|
24160
24209
|
* LEGACY HINT — do not send from new code. Kept optional so clients
|
|
@@ -24174,7 +24223,20 @@ method(_void(), ListResultSchema), method(_void(), PreferredSchema), method(obje
|
|
|
24174
24223
|
* to avoid mixed-content blocks in the browser. The public
|
|
24175
24224
|
* tunnel always emits `https://` regardless. */
|
|
24176
24225
|
scheme: _enum(["http", "https"]).optional()
|
|
24177
|
-
}), GetConnectionEndpointsResultSchema), method(_void(), NotificationEndpointSchema), method(object({ baseUrl: string().nullable() }), NotificationEndpointSchema, { kind: "mutation" }), method(_void(), AllowedAddressesSchema), method(AllowedAddressesSchema, object({ success: literal(true) }), { kind: "mutation" }), method(_void(), AllowedAddressesSchema, { kind: "mutation" })
|
|
24226
|
+
}), GetConnectionEndpointsResultSchema), method(_void(), NotificationEndpointSchema), method(object({ baseUrl: string().nullable() }), NotificationEndpointSchema, { kind: "mutation" }), method(_void(), AllowedAddressesSchema), method(AllowedAddressesSchema, object({ success: literal(true) }), { kind: "mutation" }), method(_void(), AllowedAddressesSchema, { kind: "mutation" }), method(_void(), TlsStatusSchema), method(object({ reason: string().optional() }), TlsStatusSchema, {
|
|
24227
|
+
kind: "mutation",
|
|
24228
|
+
auth: "admin"
|
|
24229
|
+
}), method(object({
|
|
24230
|
+
certPem: string().min(1),
|
|
24231
|
+
keyPem: string().min(1),
|
|
24232
|
+
caPem: string().optional()
|
|
24233
|
+
}), TlsStatusSchema, {
|
|
24234
|
+
kind: "mutation",
|
|
24235
|
+
auth: "admin"
|
|
24236
|
+
}), method(_void(), object({ pem: string() })), method(_void(), TlsStatusSchema, {
|
|
24237
|
+
kind: "mutation",
|
|
24238
|
+
auth: "admin"
|
|
24239
|
+
});
|
|
24178
24240
|
object({
|
|
24179
24241
|
/** Lifecycle state of the lock. `jammed` means the motor reported
|
|
24180
24242
|
* failure to reach the target — operator intervention required. */
|
|
@@ -30021,6 +30083,12 @@ Object.freeze({
|
|
|
30021
30083
|
addonId: null,
|
|
30022
30084
|
access: "create"
|
|
30023
30085
|
},
|
|
30086
|
+
"localNetwork.downloadCa": {
|
|
30087
|
+
capName: "local-network",
|
|
30088
|
+
capScope: "system",
|
|
30089
|
+
addonId: null,
|
|
30090
|
+
access: "view"
|
|
30091
|
+
},
|
|
30024
30092
|
"localNetwork.getAllowedAddresses": {
|
|
30025
30093
|
capName: "local-network",
|
|
30026
30094
|
capScope: "system",
|
|
@@ -30045,18 +30113,36 @@ Object.freeze({
|
|
|
30045
30113
|
addonId: null,
|
|
30046
30114
|
access: "view"
|
|
30047
30115
|
},
|
|
30116
|
+
"localNetwork.getTlsStatus": {
|
|
30117
|
+
capName: "local-network",
|
|
30118
|
+
capScope: "system",
|
|
30119
|
+
addonId: null,
|
|
30120
|
+
access: "view"
|
|
30121
|
+
},
|
|
30048
30122
|
"localNetwork.list": {
|
|
30049
30123
|
capName: "local-network",
|
|
30050
30124
|
capScope: "system",
|
|
30051
30125
|
addonId: null,
|
|
30052
30126
|
access: "view"
|
|
30053
30127
|
},
|
|
30128
|
+
"localNetwork.regenerateCertificate": {
|
|
30129
|
+
capName: "local-network",
|
|
30130
|
+
capScope: "system",
|
|
30131
|
+
addonId: null,
|
|
30132
|
+
access: "create"
|
|
30133
|
+
},
|
|
30054
30134
|
"localNetwork.resetAllowlistToBestMatch": {
|
|
30055
30135
|
capName: "local-network",
|
|
30056
30136
|
capScope: "system",
|
|
30057
30137
|
addonId: null,
|
|
30058
30138
|
access: "delete"
|
|
30059
30139
|
},
|
|
30140
|
+
"localNetwork.revertToGeneratedCertificate": {
|
|
30141
|
+
capName: "local-network",
|
|
30142
|
+
capScope: "system",
|
|
30143
|
+
addonId: null,
|
|
30144
|
+
access: "create"
|
|
30145
|
+
},
|
|
30060
30146
|
"localNetwork.setAllowedAddresses": {
|
|
30061
30147
|
capName: "local-network",
|
|
30062
30148
|
capScope: "system",
|
|
@@ -30069,6 +30155,12 @@ Object.freeze({
|
|
|
30069
30155
|
addonId: null,
|
|
30070
30156
|
access: "create"
|
|
30071
30157
|
},
|
|
30158
|
+
"localNetwork.uploadCertificate": {
|
|
30159
|
+
capName: "local-network",
|
|
30160
|
+
capScope: "system",
|
|
30161
|
+
addonId: null,
|
|
30162
|
+
access: "create"
|
|
30163
|
+
},
|
|
30072
30164
|
"lockControl.lock": {
|
|
30073
30165
|
capName: "lock-control",
|
|
30074
30166
|
capScope: "device",
|
|
@@ -32949,6 +33041,12 @@ Object.freeze({
|
|
|
32949
33041
|
addonId: null,
|
|
32950
33042
|
access: "create"
|
|
32951
33043
|
},
|
|
33044
|
+
"terminalSession.updateInstance": {
|
|
33045
|
+
capName: "terminal-session",
|
|
33046
|
+
capScope: "system",
|
|
33047
|
+
addonId: null,
|
|
33048
|
+
access: "create"
|
|
33049
|
+
},
|
|
32952
33050
|
"terminalSession.writeInput": {
|
|
32953
33051
|
capName: "terminal-session",
|
|
32954
33052
|
capScope: "system",
|
|
@@ -35503,6 +35601,35 @@ function clusterModelSettingKey(stepId) {
|
|
|
35503
35601
|
}
|
|
35504
35602
|
Object.freeze(Object.fromEntries(CLUSTER_MODEL_SCOPED_STEPS.map((s) => [s.stepId, s.defaultModelId])));
|
|
35505
35603
|
string().min(1);
|
|
35604
|
+
var CLUSTER_STEP_SETTING_FIELDS = [{
|
|
35605
|
+
stepId: "face-embedding",
|
|
35606
|
+
key: "minLandmarkFaceSize",
|
|
35607
|
+
label: "Min face size for recognition (detection px)",
|
|
35608
|
+
description: "Refuse to embed a face smaller than this IN THE DETECTION FRAME. Applies to every node — the enrolled gallery is one index, and two admission floors would fill it from two policies. 0 disables the gate.",
|
|
35609
|
+
type: "slider",
|
|
35610
|
+
min: 0,
|
|
35611
|
+
max: 64,
|
|
35612
|
+
step: 2,
|
|
35613
|
+
default: 24
|
|
35614
|
+
}];
|
|
35615
|
+
function clusterStepSettingKey(stepId, fieldKey) {
|
|
35616
|
+
return `clusterStepSetting:${stepId}:${fieldKey}`;
|
|
35617
|
+
}
|
|
35618
|
+
var ClusterSettingNumberSchema = number().finite();
|
|
35619
|
+
function readClusterStepSettings(config) {
|
|
35620
|
+
const out = {};
|
|
35621
|
+
for (const field of CLUSTER_STEP_SETTING_FIELDS) {
|
|
35622
|
+
const parsed = ClusterSettingNumberSchema.safeParse(config[clusterStepSettingKey(field.stepId, field.key)]);
|
|
35623
|
+
const value = parsed.success ? parsed.data : field.default;
|
|
35624
|
+
const existing = out[field.stepId] ?? {};
|
|
35625
|
+
out[field.stepId] = {
|
|
35626
|
+
...existing,
|
|
35627
|
+
[field.key]: value
|
|
35628
|
+
};
|
|
35629
|
+
}
|
|
35630
|
+
return out;
|
|
35631
|
+
}
|
|
35632
|
+
readClusterStepSettings({});
|
|
35506
35633
|
/**
|
|
35507
35634
|
* THE detail-crop convention — the single derivation of the rectangle a
|
|
35508
35635
|
* detail/enrichment step (clip-embedding, face-detection, plate-detection…)
|
|
@@ -48055,8 +48182,8 @@ function buildGlobalSettingsSections(options) {
|
|
|
48055
48182
|
id: CLUSTER_MODEL_SECTION_ID,
|
|
48056
48183
|
title: "Enrichment models",
|
|
48057
48184
|
tab: "pipeline",
|
|
48058
|
-
description: "The encoders that turn a crop into a VECTOR. One value each for the whole cluster, because each writes into a single shared index
|
|
48059
|
-
fields: CLUSTER_MODEL_SCOPED_STEPS.map((step) => ({
|
|
48185
|
+
description: "The encoders that turn a crop into a VECTOR, and the admission knobs those encoders share. One value each for the whole cluster, because each writes into a single shared index. Changing a model does not corrupt what is already stored (every vector carries the model that produced it) but it does STRAND it until a re-embed pass has run. Step knobs such as the face-size floor apply to every node for the same reason.",
|
|
48186
|
+
fields: [...CLUSTER_MODEL_SCOPED_STEPS.map((step) => ({
|
|
48060
48187
|
key: clusterModelSettingKey(step.stepId),
|
|
48061
48188
|
type: "select",
|
|
48062
48189
|
label: step.label,
|
|
@@ -48066,7 +48193,17 @@ function buildGlobalSettingsSections(options) {
|
|
|
48066
48193
|
label: o.label
|
|
48067
48194
|
})),
|
|
48068
48195
|
default: step.defaultModelId
|
|
48069
|
-
}))
|
|
48196
|
+
})), ...CLUSTER_STEP_SETTING_FIELDS.map((field) => ({
|
|
48197
|
+
key: clusterStepSettingKey(field.stepId, field.key),
|
|
48198
|
+
type: "slider",
|
|
48199
|
+
label: field.label,
|
|
48200
|
+
description: field.description,
|
|
48201
|
+
min: field.min,
|
|
48202
|
+
max: field.max,
|
|
48203
|
+
step: field.step,
|
|
48204
|
+
default: field.default,
|
|
48205
|
+
showValue: true
|
|
48206
|
+
}))]
|
|
48070
48207
|
},
|
|
48071
48208
|
{
|
|
48072
48209
|
id: DETAIL_CROP_SECTION_ID,
|
package/dist/index.mjs
CHANGED
|
@@ -21085,6 +21085,9 @@ method(_void(), ProviderInfoSchema), method(object({ config: record(string(), un
|
|
|
21085
21085
|
location: StorageLocationSchema,
|
|
21086
21086
|
relativePath: string()
|
|
21087
21087
|
}), _void(), { kind: "mutation" }), method(object({ location: StorageLocationSchema }), number().nullable()), method(BeginUploadInputSchema, BeginUploadResultSchema, { kind: "mutation" }), method(WriteChunkInputSchema, _void(), { kind: "mutation" }), method(FinalizeUploadInputSchema, _void(), { kind: "mutation" }), method(AbortUploadInputSchema, _void(), { kind: "mutation" }), method(BeginDownloadInputSchema, BeginDownloadResultSchema, { kind: "mutation" }), method(ReadChunkInputSchema, _instanceof(Uint8Array)), method(EndDownloadInputSchema, _void(), { kind: "mutation" });
|
|
21088
|
+
/** Profile-exported FormBuilder schema. Shape is ConfigUISchema at the UI. */
|
|
21089
|
+
var ProfileSettingsSchemaBridge = unknown().nullable();
|
|
21090
|
+
var ProfileSettingsBagSchema = record(string(), unknown());
|
|
21088
21091
|
/**
|
|
21089
21092
|
* A live terminal session hosted by the provider addon. Output and input do
|
|
21090
21093
|
* NOT flow through the capability — they use the addon data plane
|
|
@@ -21114,7 +21117,14 @@ var TerminalSessionInfoSchema = object({
|
|
|
21114
21117
|
var TerminalProfileInfoSchema = object({
|
|
21115
21118
|
profileId: string(),
|
|
21116
21119
|
label: string(),
|
|
21117
|
-
description: string().optional()
|
|
21120
|
+
description: string().optional(),
|
|
21121
|
+
/** Spawn defaults the instance form copies on create. */
|
|
21122
|
+
executable: string().optional(),
|
|
21123
|
+
args: array(string()).readonly().optional(),
|
|
21124
|
+
cwd: string().optional(),
|
|
21125
|
+
environment: array(string()).readonly().optional(),
|
|
21126
|
+
/** ConfigUISchema for instance knobs, or null when the profile has none. */
|
|
21127
|
+
settingsSchema: ProfileSettingsSchemaBridge.optional()
|
|
21118
21128
|
});
|
|
21119
21129
|
/**
|
|
21120
21130
|
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
@@ -21127,7 +21137,12 @@ var TerminalInstanceInfoSchema = object({
|
|
|
21127
21137
|
profileId: string(),
|
|
21128
21138
|
profileLabel: string(),
|
|
21129
21139
|
name: string(),
|
|
21130
|
-
enabled: boolean()
|
|
21140
|
+
enabled: boolean(),
|
|
21141
|
+
executable: string(),
|
|
21142
|
+
args: array(string()).readonly(),
|
|
21143
|
+
cwd: string(),
|
|
21144
|
+
environment: array(string()).readonly(),
|
|
21145
|
+
profileSettings: ProfileSettingsBagSchema
|
|
21131
21146
|
});
|
|
21132
21147
|
var TerminalLegacyCameraSchema = object({
|
|
21133
21148
|
stableId: string(),
|
|
@@ -21157,7 +21172,23 @@ var TerminalOutputBatchSchema = object({
|
|
|
21157
21172
|
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
21158
21173
|
targetNodeId: string().min(1),
|
|
21159
21174
|
profileId: string().min(1),
|
|
21160
|
-
name: string().trim().min(1).max(160).optional()
|
|
21175
|
+
name: string().trim().min(1).max(160).optional(),
|
|
21176
|
+
executable: string().max(1024).optional(),
|
|
21177
|
+
args: array(string().max(2048)).max(64).optional(),
|
|
21178
|
+
cwd: string().max(1024).optional(),
|
|
21179
|
+
environment: array(string().max(4096)).max(64).optional(),
|
|
21180
|
+
profileSettings: ProfileSettingsBagSchema.optional()
|
|
21181
|
+
}), TerminalInstanceInfoSchema, {
|
|
21182
|
+
kind: "mutation",
|
|
21183
|
+
auth: "admin"
|
|
21184
|
+
}), method(object({
|
|
21185
|
+
instanceId: string().min(1),
|
|
21186
|
+
name: string().trim().min(1).max(160).optional(),
|
|
21187
|
+
executable: string().max(1024).optional(),
|
|
21188
|
+
args: array(string().max(2048)).max(64).optional(),
|
|
21189
|
+
cwd: string().max(1024).optional(),
|
|
21190
|
+
environment: array(string().max(4096)).max(64).optional(),
|
|
21191
|
+
profileSettings: ProfileSettingsBagSchema.optional()
|
|
21161
21192
|
}), TerminalInstanceInfoSchema, {
|
|
21162
21193
|
kind: "mutation",
|
|
21163
21194
|
auth: "admin"
|
|
@@ -21179,7 +21210,11 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
21179
21210
|
}), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
21180
21211
|
profileId: string(),
|
|
21181
21212
|
cols: number().int().positive(),
|
|
21182
|
-
rows: number().int().positive()
|
|
21213
|
+
rows: number().int().positive(),
|
|
21214
|
+
executable: string().max(1024).optional(),
|
|
21215
|
+
args: array(string().max(2048)).max(64).optional(),
|
|
21216
|
+
cwd: string().max(1024).optional(),
|
|
21217
|
+
environment: array(string().max(4096)).max(64).optional()
|
|
21183
21218
|
}), TerminalSessionInfoSchema, {
|
|
21184
21219
|
kind: "mutation",
|
|
21185
21220
|
auth: "admin"
|
|
@@ -23961,10 +23996,10 @@ DeviceType.LawnMower, method(object({ deviceId: number().int().nonnegative() }),
|
|
|
23961
23996
|
*
|
|
23962
23997
|
* • The SDK (mobile / web client) consumes `getConnectionEndpoints()`
|
|
23963
23998
|
* to receive an ordered list of candidate base URLs it should race
|
|
23964
|
-
* on connect — LAN IPv4 first (lowest latency
|
|
23965
|
-
* then public hostname (if a tunnel is
|
|
23966
|
-
* race them with short timeouts and stick with the
|
|
23967
|
-
* session.
|
|
23999
|
+
* on connect — LAN IPv4 and stable LAN IPv6 first (lowest latency
|
|
24000
|
+
* when on the same network), then public hostname (if a tunnel is
|
|
24001
|
+
* up). The SDK can race them with short timeouts and stick with the
|
|
24002
|
+
* winner for the session.
|
|
23968
24003
|
*
|
|
23969
24004
|
* Why hub-only: agents are not directly addressable by the operator's
|
|
23970
24005
|
* clients — they reverse-connect to the hub. Exposing their interfaces
|
|
@@ -24127,6 +24162,20 @@ var AllowedAddressesSchema = object({
|
|
|
24127
24162
|
* Network Addresses admin page and persisted by the addon.
|
|
24128
24163
|
*/
|
|
24129
24164
|
addresses: array(string()).readonly() });
|
|
24165
|
+
var TlsStatusSchema = object({
|
|
24166
|
+
mode: _enum([
|
|
24167
|
+
"generated",
|
|
24168
|
+
"uploaded",
|
|
24169
|
+
"disabled"
|
|
24170
|
+
]),
|
|
24171
|
+
leafFingerprintSha256: string().nullable(),
|
|
24172
|
+
caFingerprintSha256: string().nullable(),
|
|
24173
|
+
validTo: string().nullable(),
|
|
24174
|
+
sans: array(string()),
|
|
24175
|
+
caCertPem: string().nullable(),
|
|
24176
|
+
reissueError: string().nullable(),
|
|
24177
|
+
restartRequired: boolean()
|
|
24178
|
+
});
|
|
24130
24179
|
method(_void(), ListResultSchema), method(_void(), PreferredSchema), method(object({
|
|
24131
24180
|
/**
|
|
24132
24181
|
* LEGACY HINT — do not send from new code. Kept optional so clients
|
|
@@ -24146,7 +24195,20 @@ method(_void(), ListResultSchema), method(_void(), PreferredSchema), method(obje
|
|
|
24146
24195
|
* to avoid mixed-content blocks in the browser. The public
|
|
24147
24196
|
* tunnel always emits `https://` regardless. */
|
|
24148
24197
|
scheme: _enum(["http", "https"]).optional()
|
|
24149
|
-
}), GetConnectionEndpointsResultSchema), method(_void(), NotificationEndpointSchema), method(object({ baseUrl: string().nullable() }), NotificationEndpointSchema, { kind: "mutation" }), method(_void(), AllowedAddressesSchema), method(AllowedAddressesSchema, object({ success: literal(true) }), { kind: "mutation" }), method(_void(), AllowedAddressesSchema, { kind: "mutation" })
|
|
24198
|
+
}), GetConnectionEndpointsResultSchema), method(_void(), NotificationEndpointSchema), method(object({ baseUrl: string().nullable() }), NotificationEndpointSchema, { kind: "mutation" }), method(_void(), AllowedAddressesSchema), method(AllowedAddressesSchema, object({ success: literal(true) }), { kind: "mutation" }), method(_void(), AllowedAddressesSchema, { kind: "mutation" }), method(_void(), TlsStatusSchema), method(object({ reason: string().optional() }), TlsStatusSchema, {
|
|
24199
|
+
kind: "mutation",
|
|
24200
|
+
auth: "admin"
|
|
24201
|
+
}), method(object({
|
|
24202
|
+
certPem: string().min(1),
|
|
24203
|
+
keyPem: string().min(1),
|
|
24204
|
+
caPem: string().optional()
|
|
24205
|
+
}), TlsStatusSchema, {
|
|
24206
|
+
kind: "mutation",
|
|
24207
|
+
auth: "admin"
|
|
24208
|
+
}), method(_void(), object({ pem: string() })), method(_void(), TlsStatusSchema, {
|
|
24209
|
+
kind: "mutation",
|
|
24210
|
+
auth: "admin"
|
|
24211
|
+
});
|
|
24150
24212
|
object({
|
|
24151
24213
|
/** Lifecycle state of the lock. `jammed` means the motor reported
|
|
24152
24214
|
* failure to reach the target — operator intervention required. */
|
|
@@ -29993,6 +30055,12 @@ Object.freeze({
|
|
|
29993
30055
|
addonId: null,
|
|
29994
30056
|
access: "create"
|
|
29995
30057
|
},
|
|
30058
|
+
"localNetwork.downloadCa": {
|
|
30059
|
+
capName: "local-network",
|
|
30060
|
+
capScope: "system",
|
|
30061
|
+
addonId: null,
|
|
30062
|
+
access: "view"
|
|
30063
|
+
},
|
|
29996
30064
|
"localNetwork.getAllowedAddresses": {
|
|
29997
30065
|
capName: "local-network",
|
|
29998
30066
|
capScope: "system",
|
|
@@ -30017,18 +30085,36 @@ Object.freeze({
|
|
|
30017
30085
|
addonId: null,
|
|
30018
30086
|
access: "view"
|
|
30019
30087
|
},
|
|
30088
|
+
"localNetwork.getTlsStatus": {
|
|
30089
|
+
capName: "local-network",
|
|
30090
|
+
capScope: "system",
|
|
30091
|
+
addonId: null,
|
|
30092
|
+
access: "view"
|
|
30093
|
+
},
|
|
30020
30094
|
"localNetwork.list": {
|
|
30021
30095
|
capName: "local-network",
|
|
30022
30096
|
capScope: "system",
|
|
30023
30097
|
addonId: null,
|
|
30024
30098
|
access: "view"
|
|
30025
30099
|
},
|
|
30100
|
+
"localNetwork.regenerateCertificate": {
|
|
30101
|
+
capName: "local-network",
|
|
30102
|
+
capScope: "system",
|
|
30103
|
+
addonId: null,
|
|
30104
|
+
access: "create"
|
|
30105
|
+
},
|
|
30026
30106
|
"localNetwork.resetAllowlistToBestMatch": {
|
|
30027
30107
|
capName: "local-network",
|
|
30028
30108
|
capScope: "system",
|
|
30029
30109
|
addonId: null,
|
|
30030
30110
|
access: "delete"
|
|
30031
30111
|
},
|
|
30112
|
+
"localNetwork.revertToGeneratedCertificate": {
|
|
30113
|
+
capName: "local-network",
|
|
30114
|
+
capScope: "system",
|
|
30115
|
+
addonId: null,
|
|
30116
|
+
access: "create"
|
|
30117
|
+
},
|
|
30032
30118
|
"localNetwork.setAllowedAddresses": {
|
|
30033
30119
|
capName: "local-network",
|
|
30034
30120
|
capScope: "system",
|
|
@@ -30041,6 +30127,12 @@ Object.freeze({
|
|
|
30041
30127
|
addonId: null,
|
|
30042
30128
|
access: "create"
|
|
30043
30129
|
},
|
|
30130
|
+
"localNetwork.uploadCertificate": {
|
|
30131
|
+
capName: "local-network",
|
|
30132
|
+
capScope: "system",
|
|
30133
|
+
addonId: null,
|
|
30134
|
+
access: "create"
|
|
30135
|
+
},
|
|
30044
30136
|
"lockControl.lock": {
|
|
30045
30137
|
capName: "lock-control",
|
|
30046
30138
|
capScope: "device",
|
|
@@ -32921,6 +33013,12 @@ Object.freeze({
|
|
|
32921
33013
|
addonId: null,
|
|
32922
33014
|
access: "create"
|
|
32923
33015
|
},
|
|
33016
|
+
"terminalSession.updateInstance": {
|
|
33017
|
+
capName: "terminal-session",
|
|
33018
|
+
capScope: "system",
|
|
33019
|
+
addonId: null,
|
|
33020
|
+
access: "create"
|
|
33021
|
+
},
|
|
32924
33022
|
"terminalSession.writeInput": {
|
|
32925
33023
|
capName: "terminal-session",
|
|
32926
33024
|
capScope: "system",
|
|
@@ -35475,6 +35573,35 @@ function clusterModelSettingKey(stepId) {
|
|
|
35475
35573
|
}
|
|
35476
35574
|
Object.freeze(Object.fromEntries(CLUSTER_MODEL_SCOPED_STEPS.map((s) => [s.stepId, s.defaultModelId])));
|
|
35477
35575
|
string().min(1);
|
|
35576
|
+
var CLUSTER_STEP_SETTING_FIELDS = [{
|
|
35577
|
+
stepId: "face-embedding",
|
|
35578
|
+
key: "minLandmarkFaceSize",
|
|
35579
|
+
label: "Min face size for recognition (detection px)",
|
|
35580
|
+
description: "Refuse to embed a face smaller than this IN THE DETECTION FRAME. Applies to every node — the enrolled gallery is one index, and two admission floors would fill it from two policies. 0 disables the gate.",
|
|
35581
|
+
type: "slider",
|
|
35582
|
+
min: 0,
|
|
35583
|
+
max: 64,
|
|
35584
|
+
step: 2,
|
|
35585
|
+
default: 24
|
|
35586
|
+
}];
|
|
35587
|
+
function clusterStepSettingKey(stepId, fieldKey) {
|
|
35588
|
+
return `clusterStepSetting:${stepId}:${fieldKey}`;
|
|
35589
|
+
}
|
|
35590
|
+
var ClusterSettingNumberSchema = number().finite();
|
|
35591
|
+
function readClusterStepSettings(config) {
|
|
35592
|
+
const out = {};
|
|
35593
|
+
for (const field of CLUSTER_STEP_SETTING_FIELDS) {
|
|
35594
|
+
const parsed = ClusterSettingNumberSchema.safeParse(config[clusterStepSettingKey(field.stepId, field.key)]);
|
|
35595
|
+
const value = parsed.success ? parsed.data : field.default;
|
|
35596
|
+
const existing = out[field.stepId] ?? {};
|
|
35597
|
+
out[field.stepId] = {
|
|
35598
|
+
...existing,
|
|
35599
|
+
[field.key]: value
|
|
35600
|
+
};
|
|
35601
|
+
}
|
|
35602
|
+
return out;
|
|
35603
|
+
}
|
|
35604
|
+
readClusterStepSettings({});
|
|
35478
35605
|
/**
|
|
35479
35606
|
* THE detail-crop convention — the single derivation of the rectangle a
|
|
35480
35607
|
* detail/enrichment step (clip-embedding, face-detection, plate-detection…)
|
|
@@ -48027,8 +48154,8 @@ function buildGlobalSettingsSections(options) {
|
|
|
48027
48154
|
id: CLUSTER_MODEL_SECTION_ID,
|
|
48028
48155
|
title: "Enrichment models",
|
|
48029
48156
|
tab: "pipeline",
|
|
48030
|
-
description: "The encoders that turn a crop into a VECTOR. One value each for the whole cluster, because each writes into a single shared index
|
|
48031
|
-
fields: CLUSTER_MODEL_SCOPED_STEPS.map((step) => ({
|
|
48157
|
+
description: "The encoders that turn a crop into a VECTOR, and the admission knobs those encoders share. One value each for the whole cluster, because each writes into a single shared index. Changing a model does not corrupt what is already stored (every vector carries the model that produced it) but it does STRAND it until a re-embed pass has run. Step knobs such as the face-size floor apply to every node for the same reason.",
|
|
48158
|
+
fields: [...CLUSTER_MODEL_SCOPED_STEPS.map((step) => ({
|
|
48032
48159
|
key: clusterModelSettingKey(step.stepId),
|
|
48033
48160
|
type: "select",
|
|
48034
48161
|
label: step.label,
|
|
@@ -48038,7 +48165,17 @@ function buildGlobalSettingsSections(options) {
|
|
|
48038
48165
|
label: o.label
|
|
48039
48166
|
})),
|
|
48040
48167
|
default: step.defaultModelId
|
|
48041
|
-
}))
|
|
48168
|
+
})), ...CLUSTER_STEP_SETTING_FIELDS.map((field) => ({
|
|
48169
|
+
key: clusterStepSettingKey(field.stepId, field.key),
|
|
48170
|
+
type: "slider",
|
|
48171
|
+
label: field.label,
|
|
48172
|
+
description: field.description,
|
|
48173
|
+
min: field.min,
|
|
48174
|
+
max: field.max,
|
|
48175
|
+
step: field.step,
|
|
48176
|
+
default: field.default,
|
|
48177
|
+
showValue: true
|
|
48178
|
+
}))]
|
|
48042
48179
|
},
|
|
48043
48180
|
{
|
|
48044
48181
|
id: DETAIL_CROP_SECTION_ID,
|
package/dist/remoteEntry.js
CHANGED
|
@@ -30,7 +30,7 @@ async function d(e) {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
async function f() {
|
|
33
|
-
return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets
|
|
33
|
+
return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets--gAOotmS.mjs")).catch((e) => {
|
|
34
34
|
throw l = void 0, e;
|
|
35
35
|
}), l;
|
|
36
36
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-pipeline-orchestrator",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.91",
|
|
4
4
|
"description": "Hub-side camera-to-agent load balancer — tracks runner capacity and dispatches attachCamera calls to the optimal pipeline-runner instance",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|