@camstack/addon-post-analysis 1.2.668 → 1.2.669

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.
Files changed (15) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/{clip-model-registry-BYJ5lbPi.mjs → clip-model-registry-BPvijtCz.mjs} +170 -58
  3. package/dist/{clip-model-registry-DTC5bkf8.js → clip-model-registry-CbzBwacH.js} +170 -58
  4. package/dist/embedding-encoder/index.js +6 -2
  5. package/dist/embedding-encoder/index.mjs +6 -2
  6. package/dist/pipeline-analytics/_stub.js +2 -2
  7. package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-DBEA3TPX.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-C4QK9e1e.mjs} +2 -2
  8. package/dist/pipeline-analytics/{_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DxtNkzmw.mjs → _virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-9HsFj_VL.mjs} +1 -1
  9. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-anSYIl3S.mjs +26 -0
  10. package/dist/pipeline-analytics/{hostInit-ChYqK-gn.mjs → hostInit-CPLvPO3K.mjs} +9 -9
  11. package/dist/pipeline-analytics/index.js +1 -1
  12. package/dist/pipeline-analytics/index.mjs +1 -1
  13. package/dist/pipeline-analytics/remoteEntry.js +1 -1
  14. package/package.json +2 -2
  15. package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CU7mDiJp.mjs +0 -26
@@ -6069,7 +6069,7 @@ var ZodIssueCode = {
6069
6069
  var ZodFirstPartyTypeKind;
6070
6070
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
6071
6071
  //#endregion
6072
- //#region ../types/dist/sleep-D1jjWAr8.mjs
6072
+ //#region ../types/dist/sleep-DEZaLbiu.mjs
6073
6073
  /**
6074
6074
  * The audio chunk plane's byte format, and the ONE expansion from a coded
6075
6075
  * window to float samples (D455).
@@ -6871,6 +6871,12 @@ function projectStore(store, perNodeKeys, nodeId) {
6871
6871
  }
6872
6872
  return out;
6873
6873
  }
6874
+ /** Every scope, in the order the guard and the docs list them. */
6875
+ var SCOPED_SETTINGS_SCOPES = [
6876
+ "cluster",
6877
+ "device-defaults",
6878
+ "node"
6879
+ ];
6874
6880
  var GLOBAL_SCOPE = { kind: "global" };
6875
6881
  /** The scope every addon-wide (not per-node, not per-device) setting lives in. */
6876
6882
  function globalSecretScope() {
@@ -7720,6 +7726,13 @@ var BaseAddon = class {
7720
7726
  */
7721
7727
  secretStatePaths = [];
7722
7728
  _addonSecretTree = null;
7729
+ /**
7730
+ * D986 M4: the scoped schemas this addon declared, resolved once per capability
7731
+ * (`loadScopedSchemas`) so the sync readers (`perNodeKeys`, the secret tree, the restart check)
7732
+ * see them. Empty until loaded: the readers then fall back to {@link globalSettingsSchema}.
7733
+ */
7734
+ _scopedByCap = /* @__PURE__ */ new Map();
7735
+ _nodeKeysByCap = /* @__PURE__ */ new Map();
7723
7736
  _deviceSecretTree = null;
7724
7737
  /** Refs the last resolved config pointed at — a change to one re-resolves. */
7725
7738
  _configSecretRefs = /* @__PURE__ */ new Set();
@@ -7789,6 +7802,7 @@ var BaseAddon = class {
7789
7802
  this._ctx = context;
7790
7803
  this._secretSettings = null;
7791
7804
  }
7805
+ await this.loadScopedSchemas();
7792
7806
  await this.resolveConfig();
7793
7807
  if (secrets !== void 0) this._secretChangeUnsub = secrets.onChange((ref) => {
7794
7808
  if (this._configSecretRefs.has(ref)) this.scheduleSecretReresolve(SECRET_CHANGE_DEBOUNCE_MS);
@@ -7798,6 +7812,7 @@ var BaseAddon = class {
7798
7812
  const normalized = normalizeAddonInitResult(result);
7799
7813
  const providers = normalized && "providers" in normalized && normalized.providers ? normalized.providers : [];
7800
7814
  this._registeredCapNames = providers.map((p) => p.capability.name);
7815
+ await this.loadScopedSchemas();
7801
7816
  return normalized;
7802
7817
  }
7803
7818
  /**
@@ -7886,6 +7901,16 @@ var BaseAddon = class {
7886
7901
  schema(schema) {
7887
7902
  return schema;
7888
7903
  }
7904
+ /**
7905
+ * The capability names whose scoped settings schemas ({@link clusterSettingsSchema},
7906
+ * {@link nodeSettingsSchema}, {@link deviceDefaultsSchema}) this addon declares. Read BEFORE
7907
+ * `onInitialize`, when the providers it registers are not known yet: the first config resolve
7908
+ * must already know which keys are per node. Names the providers register at init are added
7909
+ * once known.
7910
+ */
7911
+ scopedSettingsCapabilities() {
7912
+ return [];
7913
+ }
7889
7914
  /** Override to provide global-level settings UI schema. */
7890
7915
  globalSettingsSchema(_cap) {
7891
7916
  return null;
@@ -7929,7 +7954,8 @@ var BaseAddon = class {
7929
7954
  return [];
7930
7955
  }
7931
7956
  async getGlobalSettings(overlay, cap, nodeId) {
7932
- const schema = this.globalSettingsSchema(cap);
7957
+ await this.loadScopedSchemas(cap);
7958
+ const schema = this.globalSettingsSchema(cap) ?? this.scopedFormSchema(cap);
7933
7959
  if (!schema) return { sections: [] };
7934
7960
  const projected = await this.readRawProjectedStore(nodeId, cap);
7935
7961
  return hydrateSchema(schema, overlay ? await this.overlayKeepingMarkers(projected, overlay) : projected, { inlineSecretsAsViews: true });
@@ -7964,10 +7990,9 @@ var BaseAddon = class {
7964
7990
  *
7965
7991
  * Override it only when an `instanceMode: multiple` addon's instances differ: an NVR integration
7966
7992
  * needs its connection fields, the default integration the addon's own sections. It is the
7967
- * SHAPE of the form only — the values live in `integrations.getSettings`, and the write path is
7968
- * unchanged (`integrations.setSettings` for an account integration).
7993
+ * SHAPE of the form only — the values live on the instance record.
7969
7994
  */
7970
- async integrationSettingsSchema(_instance) {
7995
+ async integrationFormSchema(_instance) {
7971
7996
  return null;
7972
7997
  }
7973
7998
  /**
@@ -8013,7 +8038,7 @@ var BaseAddon = class {
8013
8038
  * per-instance schema when it declares one, else its global schema (what they always showed).
8014
8039
  */
8015
8040
  async getIntegrationFormSchema(instance, nodeId) {
8016
- const scoped = await this.integrationSettingsSchema(instance);
8041
+ const scoped = await this.integrationFormSchema(instance);
8017
8042
  if (scoped === null) return this.getGlobalSettings(void 0, void 0, nodeId);
8018
8043
  return hydrateSchema(scoped, {}, { inlineSecretsAsViews: true });
8019
8044
  }
@@ -8061,6 +8086,7 @@ var BaseAddon = class {
8061
8086
  * resolved blob back is a no-op for every unchanged secret.
8062
8087
  */
8063
8088
  async resolveGlobalStore(nodeId, cap) {
8089
+ await this.loadScopedSchemas(cap);
8064
8090
  const raw = await this._ctx?.settings?.readAddonStore() ?? {};
8065
8091
  return this.projectForNode(raw, nodeId, cap);
8066
8092
  }
@@ -8071,6 +8097,7 @@ var BaseAddon = class {
8071
8097
  }
8072
8098
  /** The PROJECTED store with its markers — the form hydrate only (D798). */
8073
8099
  async readRawProjectedStore(nodeId, cap) {
8100
+ await this.loadScopedSchemas(cap);
8074
8101
  const raw = await this.rawSettings()?.readAddonStore() ?? {};
8075
8102
  return this.projectForNode(raw, nodeId, cap);
8076
8103
  }
@@ -8173,6 +8200,7 @@ var BaseAddon = class {
8173
8200
  await this.applyGlobalPatch(patch, nodeId);
8174
8201
  }
8175
8202
  async applyGlobalPatch(barePatch, nodeId) {
8203
+ await this.loadScopedSchemas();
8176
8204
  const keys = this.perNodeKeys();
8177
8205
  const localNode = normalizeNodeId(this._ctx?.kernel?.localNodeId);
8178
8206
  const target = normalizeNodeId(nodeId ?? this._ctx?.kernel?.localNodeId);
@@ -8186,7 +8214,8 @@ var BaseAddon = class {
8186
8214
  await this.resolveConfig();
8187
8215
  await this.onConfigChanged();
8188
8216
  this.emitLifecycle(EventCategory.AddonUpdated, { level: "global" });
8189
- this.maybeAutoRestart(Object.keys(barePatch), this.globalSettingsSchema());
8217
+ const legacy = this.globalSettingsSchema();
8218
+ this.maybeAutoRestart(Object.keys(barePatch), [...legacy === null ? [] : [legacy], ...this.loadedScopedSchemas().map((entry) => entry.schema)]);
8190
8219
  }
8191
8220
  /**
8192
8221
  * The set of field keys the global settings schema declares `perNode: true`
@@ -8194,14 +8223,67 @@ var BaseAddon = class {
8194
8223
  * declarations). Empty set ⇒ every per-node code path is bypassed and the
8195
8224
  * settings API behaves exactly like the legacy node-agnostic one.
8196
8225
  */
8197
- _perNodeKeysCache = /* @__PURE__ */ new Map();
8226
+ /**
8227
+ * Load the scoped schemas of every capability this addon declares (the override and the
8228
+ * providers registered at init, plus `extraCap`) that is not loaded yet, then drop what was
8229
+ * derived from the previous set. Idempotent.
8230
+ */
8231
+ async loadScopedSchemas(extraCap) {
8232
+ const caps = new Set([
8233
+ ...this.scopedSettingsCapabilities(),
8234
+ ...this._registeredCapNames,
8235
+ ...extraCap === void 0 ? [] : [extraCap]
8236
+ ]);
8237
+ let added = false;
8238
+ for (const cap of caps) {
8239
+ if (this._scopedByCap.has(cap)) continue;
8240
+ const loaded = [];
8241
+ for (const scope of SCOPED_SETTINGS_SCOPES) {
8242
+ const schema = await this.getScopedSettingsSchema(scope, cap);
8243
+ if (schema !== null) loaded.push({
8244
+ scope,
8245
+ schema
8246
+ });
8247
+ }
8248
+ this._scopedByCap.set(cap, loaded);
8249
+ added = true;
8250
+ }
8251
+ if (!added) return;
8252
+ this._nodeKeysByCap = /* @__PURE__ */ new Map();
8253
+ this._addonSecretTree = null;
8254
+ }
8255
+ /**
8256
+ * The form the settings API serves while an addon declares no {@link globalSettingsSchema}: the
8257
+ * sections of its scoped schemas, so dropping the old hook does not blank the form.
8258
+ */
8259
+ scopedFormSchema(cap) {
8260
+ const byId = /* @__PURE__ */ new Map();
8261
+ for (const entry of this.loadedScopedSchemas(cap)) for (const section of entry.schema.sections) if (!byId.has(section.id)) byId.set(section.id, section);
8262
+ return byId.size === 0 ? null : { sections: [...byId.values()] };
8263
+ }
8264
+ /** Every loaded scoped schema of `cap`, or of every loaded capability. */
8265
+ loadedScopedSchemas(cap) {
8266
+ if (cap !== void 0) return this._scopedByCap.get(cap) ?? [];
8267
+ return [...this._scopedByCap.values()].flat();
8268
+ }
8269
+ /**
8270
+ * The field keys that are stored per node: every field of a {@link nodeSettingsSchema}, plus
8271
+ * the fields the legacy {@link globalSettingsSchema} still marks `perNode: true`. Derived once
8272
+ * per `cap` argument and memoized (schemas are static declarations). Empty set ⇒ every
8273
+ * per-node code path is bypassed and the settings API behaves like the node-agnostic one.
8274
+ * Call {@link loadScopedSchemas} first (the async seams do).
8275
+ */
8198
8276
  perNodeKeys(cap) {
8199
8277
  const cacheKey = cap ?? "";
8200
- const cached = this._perNodeKeysCache.get(cacheKey);
8278
+ const cached = this._nodeKeysByCap.get(cacheKey);
8201
8279
  if (cached) return cached;
8202
- const schema = this.globalSettingsSchema(cap);
8203
- const keys = new Set(schema ? schema.sections.flatMap((section) => collectPerNodeFieldKeys(section.fields)) : []);
8204
- this._perNodeKeysCache.set(cacheKey, keys);
8280
+ const legacy = this.globalSettingsSchema(cap);
8281
+ const keys = new Set(legacy ? legacy.sections.flatMap((section) => collectPerNodeFieldKeys(section.fields)) : []);
8282
+ for (const { scope, schema } of this.loadedScopedSchemas(cap)) {
8283
+ if (scope !== "node") continue;
8284
+ for (const section of schema.sections) for (const key of collectValueFieldKeys(section.fields)) keys.add(key);
8285
+ }
8286
+ this._nodeKeysByCap.set(cacheKey, keys);
8205
8287
  return keys;
8206
8288
  }
8207
8289
  /**
@@ -8211,10 +8293,9 @@ var BaseAddon = class {
8211
8293
  * time to return its response before the addon is torn down and
8212
8294
  * re-initialised by `AddonRegistryService.restartAddon`.
8213
8295
  */
8214
- maybeAutoRestart(patchKeys, schema) {
8215
- if (!schema) return;
8296
+ maybeAutoRestart(patchKeys, schemas) {
8216
8297
  const restartKeys = /* @__PURE__ */ new Set();
8217
- for (const section of schema.sections) for (const field of section.fields) {
8298
+ for (const schema of schemas) for (const section of schema.sections) for (const field of section.fields) {
8218
8299
  if (field.type === "separator" || field.type === "info") continue;
8219
8300
  if (field.requiresRestart) restartKeys.add(field.key);
8220
8301
  }
@@ -8410,12 +8491,14 @@ var BaseAddon = class {
8410
8491
  * here, in the addon's own process, so the hub keeps no copy of it.
8411
8492
  */
8412
8493
  async getDeclaredSettingsKeys() {
8494
+ await this.loadScopedSchemas();
8413
8495
  return { keys: [...this.declaredKeySet()].toSorted() };
8414
8496
  }
8415
8497
  declaredKeySet() {
8416
8498
  const keys = new Set(Object.keys(this.defaults));
8417
8499
  const schema = this.globalSettingsSchema();
8418
8500
  if (schema) for (const section of schema.sections) for (const key of collectFieldKeys(section.fields)) keys.add(key);
8501
+ for (const { schema: scoped } of this.loadedScopedSchemas()) for (const section of scoped.sections) for (const key of collectFieldKeys(section.fields)) keys.add(key);
8419
8502
  for (const key of this._declaredStateKeys) keys.add(key);
8420
8503
  for (const path of this.secretStatePaths) {
8421
8504
  const root = path.split(/[.[]/, 1)[0];
@@ -8511,7 +8594,11 @@ var BaseAddon = class {
8511
8594
  }
8512
8595
  /** The addon store's secret tree: schema fields by TYPE, plus `secretStatePaths`. */
8513
8596
  addonSecretTree() {
8514
- this._addonSecretTree ??= mergeSecretStatePaths(secretTreeFromSchema(this.globalSettingsSchema()), this.secretStatePaths);
8597
+ if (this._addonSecretTree === null) {
8598
+ const tree = new Map(secretTreeFromSchema(this.globalSettingsSchema()));
8599
+ for (const { schema } of this.loadedScopedSchemas()) for (const [key, node] of secretTreeFromSchema(schema)) tree.set(key, node);
8600
+ this._addonSecretTree = mergeSecretStatePaths(tree, this.secretStatePaths);
8601
+ }
8515
8602
  return this._addonSecretTree;
8516
8603
  }
8517
8604
  deviceSecretTree() {
@@ -8761,6 +8848,23 @@ function dropPerNodeFields(fields) {
8761
8848
  }
8762
8849
  return kept;
8763
8850
  }
8851
+ /** The keys of the value-holding fields, recursing into layout containers. */
8852
+ function collectValueFieldKeys(fields) {
8853
+ const collected = [];
8854
+ for (const field of fields) {
8855
+ if (field.type === "group") {
8856
+ collected.push(...collectValueFieldKeys(field.fields));
8857
+ continue;
8858
+ }
8859
+ if (field.type === "sub-tabs") {
8860
+ for (const tab of field.tabs) collected.push(...collectValueFieldKeys(tab.fields));
8861
+ continue;
8862
+ }
8863
+ if (field.type === "separator" || field.type === "info") continue;
8864
+ if ("key" in field && typeof field.key === "string") collected.push(field.key);
8865
+ }
8866
+ return collected;
8867
+ }
8764
8868
  function collectFieldKeys(fields) {
8765
8869
  const collected = [];
8766
8870
  for (const field of fields) {
@@ -57145,11 +57249,7 @@ var CreateIntegrationInputSchema = object({
57145
57249
  info: record(string(), unknown()).optional(),
57146
57250
  /** `stableId` of the discovery candidate the form was seeded from (D984). */
57147
57251
  originStableId: string().optional(),
57148
- settings: record(string(), unknown()).optional(),
57149
- /** Keys of `settings` the form's schema declares secret (by type) — kept in
57150
- * the keychain, not the table (D787). */
57151
- secretKeys: array(string()).optional(),
57152
- skipRestart: boolean().optional()
57252
+ settings: record(string(), unknown()).optional()
57153
57253
  });
57154
57254
  var UpdateIntegrationInputSchema = object({
57155
57255
  id: string(),
@@ -57170,22 +57270,6 @@ method(_void(), array(IntegrationWithStateSchema)), method(object({ id: string()
57170
57270
  }), method(object({ id: string() }), DeleteIntegrationResultSchema, {
57171
57271
  kind: "mutation",
57172
57272
  auth: "admin"
57173
- }), method(object({ id: string() }), record(string(), unknown()), { auth: "admin" }), method(object({
57174
- id: string(),
57175
- settings: record(string(), unknown()),
57176
- /** Keys the form's schema declares secret (by type) — keychain-stored (D787). */
57177
- secretKeys: array(string()).optional(),
57178
- /** The integration's own addon applies the change in-process and asks the hub not to respawn it. */
57179
- skipRestart: boolean().optional()
57180
- }), object({ success: boolean() }), {
57181
- kind: "mutation",
57182
- auth: "admin"
57183
- }), method(object({ id: string() }), object({
57184
- rows: number().int().nonnegative(),
57185
- secrets: number().int().nonnegative()
57186
- }), {
57187
- kind: "mutation",
57188
- auth: "admin"
57189
57273
  }), method(_void(), array(AvailableIntegrationTypeSchema), { auth: "admin" }), method(object({
57190
57274
  addonId: string(),
57191
57275
  settings: record(string(), unknown())
@@ -60257,6 +60341,27 @@ method(object({}), object({ entries: array(MigrationLedgerEntrySchema) }), { aut
60257
60341
  }), {
60258
60342
  kind: "mutation",
60259
60343
  auth: "admin"
60344
+ }), method(object({ integrationId: string().min(1) }), record(string(), unknown()), { auth: "admin" }), method(object({ integrationId: string().min(1) }), object({
60345
+ rows: number().int().nonnegative(),
60346
+ secrets: number().int().nonnegative()
60347
+ }), {
60348
+ kind: "mutation",
60349
+ auth: "admin"
60350
+ }), method(object({
60351
+ integrationId: string().min(1),
60352
+ patch: record(string(), unknown())
60353
+ }), object({ written: boolean() }), {
60354
+ kind: "mutation",
60355
+ auth: "admin"
60356
+ }), method(object({
60357
+ integrationId: string().min(1),
60358
+ keys: array(string().min(1))
60359
+ }), object({
60360
+ present: boolean(),
60361
+ removed: record(string(), unknown())
60362
+ }), {
60363
+ kind: "mutation",
60364
+ auth: "admin"
60260
60365
  });
60261
60366
  method(object({
60262
60367
  sourceUrl: string(),
@@ -88425,13 +88530,6 @@ Object.freeze({
88425
88530
  access: "create",
88426
88531
  role: "admin"
88427
88532
  },
88428
- "integrations.clearSettings": {
88429
- capName: "integrations",
88430
- capScope: "system",
88431
- addonId: null,
88432
- access: "delete",
88433
- role: "admin"
88434
- },
88435
88533
  "integrations.create": {
88436
88534
  capName: "integrations",
88437
88535
  capScope: "system",
@@ -88467,13 +88565,6 @@ Object.freeze({
88467
88565
  access: "view",
88468
88566
  role: "admin"
88469
88567
  },
88470
- "integrations.getSettings": {
88471
- capName: "integrations",
88472
- capScope: "system",
88473
- addonId: null,
88474
- access: "view",
88475
- role: "admin"
88476
- },
88477
88568
  "integrations.list": {
88478
88569
  capName: "integrations",
88479
88570
  capScope: "system",
@@ -88481,13 +88572,6 @@ Object.freeze({
88481
88572
  access: "view",
88482
88573
  role: "admin"
88483
88574
  },
88484
- "integrations.setSettings": {
88485
- capName: "integrations",
88486
- capScope: "system",
88487
- addonId: null,
88488
- access: "create",
88489
- role: "admin"
88490
- },
88491
88575
  "integrations.testConnection": {
88492
88576
  capName: "integrations",
88493
88577
  capScope: "system",
@@ -89482,6 +89566,13 @@ Object.freeze({
89482
89566
  access: "view",
89483
89567
  role: "admin"
89484
89568
  },
89569
+ "migrations.clearLegacyIntegrationRows": {
89570
+ capName: "migrations",
89571
+ capScope: "system",
89572
+ addonId: null,
89573
+ access: "delete",
89574
+ role: "admin"
89575
+ },
89485
89576
  "migrations.declareOwner": {
89486
89577
  capName: "migrations",
89487
89578
  capScope: "system",
@@ -89489,6 +89580,13 @@ Object.freeze({
89489
89580
  access: "create",
89490
89581
  role: "admin"
89491
89582
  },
89583
+ "migrations.deleteLegacyIntegrationRowKeys": {
89584
+ capName: "migrations",
89585
+ capScope: "system",
89586
+ addonId: null,
89587
+ access: "delete",
89588
+ role: "admin"
89589
+ },
89492
89590
  "migrations.dryRun": {
89493
89591
  capName: "migrations",
89494
89592
  capScope: "system",
@@ -89524,6 +89622,20 @@ Object.freeze({
89524
89622
  access: "create",
89525
89623
  role: "admin"
89526
89624
  },
89625
+ "migrations.patchLegacyIntegrationRows": {
89626
+ capName: "migrations",
89627
+ capScope: "system",
89628
+ addonId: null,
89629
+ access: "create",
89630
+ role: "admin"
89631
+ },
89632
+ "migrations.readLegacyIntegrationRows": {
89633
+ capName: "migrations",
89634
+ capScope: "system",
89635
+ addonId: null,
89636
+ access: "view",
89637
+ role: "admin"
89638
+ },
89527
89639
  "migrations.restorePreMigration": {
89528
89640
  capName: "migrations",
89529
89641
  capScope: "system",
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_clip_model_registry = require("../clip-model-registry-DTC5bkf8.js");
5
+ const require_clip_model_registry = require("../clip-model-registry-CbzBwacH.js");
6
6
  let node_fs = require("node:fs");
7
7
  node_fs = require_clip_model_registry.__toESM(node_fs);
8
8
  let node_path = require("node:path");
@@ -1263,7 +1263,11 @@ var EmbeddingEncoderAddon = class extends require_clip_model_registry.BaseAddon
1263
1263
  await this.imageEngine.dispose();
1264
1264
  await this.textEngines.disposeAll();
1265
1265
  }
1266
- globalSettingsSchema() {
1266
+ scopedSettingsCapabilities() {
1267
+ return ["embedding-encoder"];
1268
+ }
1269
+ async clusterSettingsSchema(cap) {
1270
+ if (cap !== "embedding-encoder") return null;
1267
1271
  return this.schema({ sections: [{
1268
1272
  id: "embedding-encoder-settings",
1269
1273
  title: "Embedding Encoder",
@@ -1,4 +1,4 @@
1
- import { Ci as resolvePoolMemoryPolicy, _r as embeddingEncoderCapability, a as CLIP_EMBEDDING_STEP_ID, br as embeddingRequirementsFailedError, ci as parseProcStatus, i as CLIP_TEXT_MODELS, ia as BaseAddon, in as PoolMemoryWatchdog, l as resolveClusterModelPin, n as DEFAULT_CLIP_MODEL, r as CLIP_IMAGE_MODELS, t as BUILTIN_CLIP_MODELS, va as normalizeNodeId, vr as embeddingModelFailedError, xr as embeddingRequirementsUnavailableError } from "../clip-model-registry-BYJ5lbPi.mjs";
1
+ import { Ci as resolvePoolMemoryPolicy, _r as embeddingEncoderCapability, a as CLIP_EMBEDDING_STEP_ID, br as embeddingRequirementsFailedError, ci as parseProcStatus, i as CLIP_TEXT_MODELS, ia as BaseAddon, in as PoolMemoryWatchdog, l as resolveClusterModelPin, n as DEFAULT_CLIP_MODEL, r as CLIP_IMAGE_MODELS, t as BUILTIN_CLIP_MODELS, va as normalizeNodeId, vr as embeddingModelFailedError, xr as embeddingRequirementsUnavailableError } from "../clip-model-registry-BPvijtCz.mjs";
2
2
  import { createRequire } from "node:module";
3
3
  import * as fs from "node:fs";
4
4
  import * as path$1 from "node:path";
@@ -1271,7 +1271,11 @@ var EmbeddingEncoderAddon = class extends BaseAddon {
1271
1271
  await this.imageEngine.dispose();
1272
1272
  await this.textEngines.disposeAll();
1273
1273
  }
1274
- globalSettingsSchema() {
1274
+ scopedSettingsCapabilities() {
1275
+ return ["embedding-encoder"];
1276
+ }
1277
+ async clusterSettingsSchema(cap) {
1278
+ if (cap !== "embedding-encoder") return null;
1275
1279
  return this.schema({ sections: [{
1276
1280
  id: "embedding-encoder-settings",
1277
1281
  title: "Embedding Encoder",
@@ -1,8 +1,8 @@
1
1
  import { a as e, i as t, n, o as r, r as i, t as a } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react__loadShare__.js-Cx9AsA5q.mjs";
2
2
  import { t as o } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-B3Wx5J80.mjs";
3
- import { a as s, c, d as l, f as u, i as d, l as f, m as p, n as m, o as h, p as g, r as _, s as v, t as y, u as b } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CU7mDiJp.mjs";
3
+ import { a as s, c, d as l, f as u, i as d, l as f, m as p, n as m, o as h, p as g, r as _, s as v, t as y, u as b } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-anSYIl3S.mjs";
4
4
  import { n as x, t as S } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-CkwmHEi0.mjs";
5
- import { t as C } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DxtNkzmw.mjs";
5
+ import { t as C } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-9HsFj_VL.mjs";
6
6
  //#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
7
7
  var w = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), T = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), E = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), D = (e) => {
8
8
  let t = E(e);
@@ -18,7 +18,7 @@ var e = {
18
18
  },
19
19
  "@camstack/types": {
20
20
  name: "@camstack/types",
21
- version: "1.2.500",
21
+ version: "1.2.504",
22
22
  scope: ["default"],
23
23
  loaded: !1,
24
24
  from: "addon_pipeline_analytics_widgets",
@@ -33,7 +33,7 @@ var e = {
33
33
  },
34
34
  "@camstack/ui-library": {
35
35
  name: "@camstack/ui-library",
36
- version: "1.2.384",
36
+ version: "1.2.386",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_pipeline_analytics_widgets",