@camstack/addon-post-analysis 1.2.371 → 1.2.372
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/{clip-model-registry-aWakBGm3.js → clip-model-registry-CJMlelSr.js} +166 -24
- package/dist/{clip-model-registry-DnJSHCsn.mjs → clip-model-registry-YcxOhKAs.mjs} +166 -24
- package/dist/embedding-encoder/index.js +1 -1
- package/dist/embedding-encoder/index.mjs +1 -1
- package/dist/pipeline-analytics/_stub.js +2 -2
- package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-DzBqyp65.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-jrYcQzE9.mjs} +2 -2
- package/dist/pipeline-analytics/{_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BRMRfKVO.mjs → _virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BrZNQ-qA.mjs} +1 -1
- package/dist/pipeline-analytics/{_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CYfz4e5v.mjs → _virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-XFjQPo0r.mjs} +1 -1
- package/dist/pipeline-analytics/{hostInit-B83y5X7G.mjs → hostInit-D3mojFCX.mjs} +2 -2
- package/dist/pipeline-analytics/index.js +56 -77
- package/dist/pipeline-analytics/index.mjs +56 -77
- package/dist/pipeline-analytics/remoteEntry.js +1 -1
- package/package.json +1 -1
|
@@ -5490,7 +5490,7 @@ var ZodIssueCode = {
|
|
|
5490
5490
|
var ZodFirstPartyTypeKind;
|
|
5491
5491
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5492
5492
|
//#endregion
|
|
5493
|
-
//#region ../types/dist/sleep-
|
|
5493
|
+
//#region ../types/dist/sleep-bwsTj221.mjs
|
|
5494
5494
|
/**
|
|
5495
5495
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5496
5496
|
* window to float samples (D455).
|
|
@@ -6741,7 +6741,6 @@ function createHandle(raw, opts) {
|
|
|
6741
6741
|
const writeAddon = (patch) => write("addon", opts.addonTree(), void 0, patch, () => readStoredAddonBlob(raw), (p) => raw.writeAddonStore(p));
|
|
6742
6742
|
const readAddonStoreResult = raw.readAddonStoreResult;
|
|
6743
6743
|
const readAddonStoreKeyResult = raw.readAddonStoreKeyResult;
|
|
6744
|
-
const readDeviceStoreBatch = raw.readDeviceStoreBatch;
|
|
6745
6744
|
const overrides = {
|
|
6746
6745
|
readAddonStore: async () => resolveRead("addon", await raw.readAddonStore()),
|
|
6747
6746
|
...readAddonStoreResult !== void 0 ? { readAddonStoreResult: async () => {
|
|
@@ -6765,12 +6764,12 @@ function createHandle(raw, opts) {
|
|
|
6765
6764
|
};
|
|
6766
6765
|
} } : {},
|
|
6767
6766
|
readDeviceStore: async (deviceId) => resolveRead(`device:${deviceId}`, await raw.readDeviceStore(deviceId)),
|
|
6768
|
-
|
|
6769
|
-
const rows = await readDeviceStoreBatch
|
|
6767
|
+
readDeviceStoreBatch: async (deviceIds) => {
|
|
6768
|
+
const rows = await raw.readDeviceStoreBatch(deviceIds);
|
|
6770
6769
|
const out = /* @__PURE__ */ new Map();
|
|
6771
6770
|
for (const [deviceId, blob] of rows) out.set(deviceId, await resolveRead(`device:${deviceId}`, blob));
|
|
6772
6771
|
return out;
|
|
6773
|
-
}
|
|
6772
|
+
},
|
|
6774
6773
|
writeAddonStore: async (patch) => {
|
|
6775
6774
|
await writeAddon(patch);
|
|
6776
6775
|
},
|
|
@@ -7597,7 +7596,7 @@ var BaseAddon = class {
|
|
|
7597
7596
|
return this._addonSecretTree;
|
|
7598
7597
|
}
|
|
7599
7598
|
deviceSecretTree() {
|
|
7600
|
-
this._deviceSecretTree ??= secretTreeFromSchema(this.deviceSettingsSchema());
|
|
7599
|
+
this._deviceSecretTree ??= mergeSecretStatePaths(secretTreeFromSchema(this.deviceSettingsSchema()), this.secretStatePaths);
|
|
7601
7600
|
return this._deviceSecretTree;
|
|
7602
7601
|
}
|
|
7603
7602
|
/**
|
|
@@ -7673,42 +7672,135 @@ var BaseAddon = class {
|
|
|
7673
7672
|
this[timerOf] = timer;
|
|
7674
7673
|
}
|
|
7675
7674
|
/**
|
|
7676
|
-
* Wrap `ctx.settings.readAddonStore()` with a
|
|
7677
|
-
*
|
|
7678
|
-
* swap, or any race where the SqliteSettingsBackend is between shutdown and
|
|
7679
|
-
* re-initialize) doesn't propagate up into `initialize()` and leave the
|
|
7675
|
+
* Wrap `ctx.settings.readAddonStore()` with a retry budget so a transient
|
|
7676
|
+
* settings-store outage doesn't propagate up into `initialize()` and leave the
|
|
7680
7677
|
* addon permanently broken.
|
|
7681
7678
|
*
|
|
7682
|
-
*
|
|
7683
|
-
*
|
|
7684
|
-
* `
|
|
7679
|
+
* Two kinds of outage, two budgets:
|
|
7680
|
+
* - the store's own restart fingerprints (`SqliteSettingsBackend not
|
|
7681
|
+
* initialized`, `provider not available`): a short budget, then the addon
|
|
7682
|
+
* falls back to `{}` (defaults) - its first successful patch rehydrates;
|
|
7683
|
+
* - a TRANSPORT failure (the hub is restarting while this runner boots:
|
|
7684
|
+
* `discovery deadline exceeded`, `parent could not route`, a refused or
|
|
7685
|
+
* timed-out connection). Since D870 a runner's settings read THROWS instead
|
|
7686
|
+
* of answering `{}`, so without a budget a hub restart ends in a respawn
|
|
7687
|
+
* loop. A long, bounded budget; only after it the error propagates - the
|
|
7688
|
+
* addon never runs on defaults for a store it could not ask.
|
|
7689
|
+
* Anything else propagates immediately so real bugs surface.
|
|
7685
7690
|
*/
|
|
7686
7691
|
async readAddonStoreWithRetry() {
|
|
7687
7692
|
const settings = this.rawSettings();
|
|
7688
7693
|
if (!settings) return {};
|
|
7689
|
-
const delaysMs = [
|
|
7690
|
-
150,
|
|
7691
|
-
350,
|
|
7692
|
-
600,
|
|
7693
|
-
900
|
|
7694
|
-
];
|
|
7695
7694
|
let lastErr;
|
|
7696
|
-
for (let attempt = 0
|
|
7695
|
+
for (let attempt = 0;; attempt++) try {
|
|
7697
7696
|
const stored = await settings.readAddonStore() ?? {};
|
|
7698
7697
|
this.settingsStoreReady = true;
|
|
7699
7698
|
return stored;
|
|
7700
7699
|
} catch (err) {
|
|
7701
7700
|
lastErr = err;
|
|
7702
|
-
const
|
|
7703
|
-
if (
|
|
7704
|
-
|
|
7705
|
-
|
|
7701
|
+
const kind = classifyStoreError(err);
|
|
7702
|
+
if (kind === "permanent") throw err;
|
|
7703
|
+
const delay = (kind === "transport" ? TRANSPORT_RETRY_DELAYS_MS : RESTART_RETRY_DELAYS_MS)[attempt];
|
|
7704
|
+
if (delay === void 0) {
|
|
7705
|
+
if (kind === "transport") throw err;
|
|
7706
|
+
break;
|
|
7707
|
+
}
|
|
7708
|
+
await new Promise((r) => setTimeout(r, delay));
|
|
7706
7709
|
}
|
|
7707
7710
|
this.settingsStoreReady = false;
|
|
7708
7711
|
this._ctx?.logger?.warn?.("readAddonStore: settings-store unavailable after retries — using defaults", { meta: { error: lastErr instanceof Error ? lastErr.message : String(lastErr) } });
|
|
7709
7712
|
return {};
|
|
7710
7713
|
}
|
|
7711
7714
|
};
|
|
7715
|
+
/** The settings store's own restart fingerprints. */
|
|
7716
|
+
var RESTART_RETRY_DELAYS_MS = [
|
|
7717
|
+
150,
|
|
7718
|
+
350,
|
|
7719
|
+
600,
|
|
7720
|
+
900
|
|
7721
|
+
];
|
|
7722
|
+
/** A hub restarting under a booting runner: ~100 s in total. */
|
|
7723
|
+
var TRANSPORT_RETRY_DELAYS_MS = [
|
|
7724
|
+
150,
|
|
7725
|
+
350,
|
|
7726
|
+
600,
|
|
7727
|
+
900,
|
|
7728
|
+
2e3,
|
|
7729
|
+
5e3,
|
|
7730
|
+
1e4,
|
|
7731
|
+
2e4,
|
|
7732
|
+
3e4,
|
|
7733
|
+
3e4
|
|
7734
|
+
];
|
|
7735
|
+
var RESTART_FINGERPRINTS = ["SqliteSettingsBackend not initialized", "provider not available"];
|
|
7736
|
+
/** Node / socket error codes of a connection that did not happen or broke. */
|
|
7737
|
+
var TRANSPORT_CODES = new Set([
|
|
7738
|
+
"ECONNREFUSED",
|
|
7739
|
+
"ECONNRESET",
|
|
7740
|
+
"ETIMEDOUT",
|
|
7741
|
+
"EPIPE",
|
|
7742
|
+
"EHOSTUNREACH",
|
|
7743
|
+
"ENETUNREACH"
|
|
7744
|
+
]);
|
|
7745
|
+
/** tRPC error codes that mean "the other side is not answering now", not "your call is wrong". */
|
|
7746
|
+
var UNAVAILABLE_TRPC_CODES = new Set([
|
|
7747
|
+
"TIMEOUT",
|
|
7748
|
+
"SERVICE_UNAVAILABLE",
|
|
7749
|
+
"BAD_GATEWAY",
|
|
7750
|
+
"GATEWAY_TIMEOUT"
|
|
7751
|
+
]);
|
|
7752
|
+
/** The exact phrases OUR transport raises when it cannot reach the hub. */
|
|
7753
|
+
var TRANSPORT_PHRASES = [
|
|
7754
|
+
"discovery deadline exceeded",
|
|
7755
|
+
"parent could not route child unowned cap call",
|
|
7756
|
+
"UDS request timed out after",
|
|
7757
|
+
"channel closed"
|
|
7758
|
+
];
|
|
7759
|
+
/** Moleculer error `type`s of a call that could not be served right now. */
|
|
7760
|
+
var MOLECULER_TRANSIENT_TYPES = new Set([
|
|
7761
|
+
"REQUEST_TIMEOUT",
|
|
7762
|
+
"SERVICE_NOT_FOUND",
|
|
7763
|
+
"SERVICE_NOT_AVAILABLE",
|
|
7764
|
+
"REQUEST_REJECTED",
|
|
7765
|
+
"BROKER_DISCONNECTED"
|
|
7766
|
+
]);
|
|
7767
|
+
function stringProp(value, key) {
|
|
7768
|
+
if (typeof value !== "object" || value === null) return void 0;
|
|
7769
|
+
const found = Reflect.get(value, key);
|
|
7770
|
+
return typeof found === "string" ? found : void 0;
|
|
7771
|
+
}
|
|
7772
|
+
/** The code an error carries: its own, its cause's, or a tRPC `data.code`. */
|
|
7773
|
+
function errorCode(err) {
|
|
7774
|
+
const out = {};
|
|
7775
|
+
const cause = typeof err === "object" && err !== null ? Reflect.get(err, "cause") : void 0;
|
|
7776
|
+
const data = typeof err === "object" && err !== null ? Reflect.get(err, "data") : void 0;
|
|
7777
|
+
const node = stringProp(err, "code") ?? stringProp(cause, "code");
|
|
7778
|
+
if (node !== void 0) out.node = node;
|
|
7779
|
+
const trpc = stringProp(data, "code");
|
|
7780
|
+
if (trpc !== void 0) out.trpc = trpc;
|
|
7781
|
+
return out;
|
|
7782
|
+
}
|
|
7783
|
+
/**
|
|
7784
|
+
* Is a settings read failure worth retrying, and with which budget? Only
|
|
7785
|
+
* EXPLICIT signals count: a socket error code, a tRPC "unavailable" code, or
|
|
7786
|
+
* one of the exact phrases our own transport raises. A message that merely
|
|
7787
|
+
* contains "timed out" or "unreachable" is not evidence of anything, and
|
|
7788
|
+
* `settings store not wired` is a wiring bug that retrying cannot fix.
|
|
7789
|
+
*/
|
|
7790
|
+
function classifyStoreError(err) {
|
|
7791
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
7792
|
+
if (RESTART_FINGERPRINTS.some((f) => message.includes(f))) return "restart";
|
|
7793
|
+
const code = errorCode(err);
|
|
7794
|
+
if (code.node !== void 0 && TRANSPORT_CODES.has(code.node)) return "transport";
|
|
7795
|
+
if (code.trpc !== void 0 && UNAVAILABLE_TRPC_CODES.has(code.trpc)) return "transport";
|
|
7796
|
+
if (typeof err === "object" && err !== null) {
|
|
7797
|
+
if (Reflect.get(err, "retryable") === true) return "transport";
|
|
7798
|
+
const type = stringProp(err, "type");
|
|
7799
|
+
if (type !== void 0 && MOLECULER_TRANSIENT_TYPES.has(type)) return "transport";
|
|
7800
|
+
}
|
|
7801
|
+
if (TRANSPORT_PHRASES.some((f) => message.includes(f))) return "transport";
|
|
7802
|
+
return "permanent";
|
|
7803
|
+
}
|
|
7712
7804
|
/**
|
|
7713
7805
|
* Collect the keys of every field marked `perNode: true`, recursing into
|
|
7714
7806
|
* layout containers (`group` fields and `sub-tabs` tabs) the same way
|
|
@@ -17238,6 +17330,28 @@ id: union([string(), number()]) }), {
|
|
|
17238
17330
|
kind: "mutation",
|
|
17239
17331
|
auth: "admin"
|
|
17240
17332
|
});
|
|
17333
|
+
/** One table of the settings database. */
|
|
17334
|
+
var StorageTableSchema = object({
|
|
17335
|
+
/** The table's full name, e.g. `recorder:addon-settings` or `addon-device-settings`. */
|
|
17336
|
+
name: string(),
|
|
17337
|
+
/** The owner prefix of a scoped name (`recorder` for `recorder:addon-settings`), else null. */
|
|
17338
|
+
owner: string().nullable(),
|
|
17339
|
+
rows: number().int().nonnegative(),
|
|
17340
|
+
/** Bytes the table's pages occupy (`dbstat`); null when the engine cannot measure. */
|
|
17341
|
+
bytes: number().int().nonnegative().nullable(),
|
|
17342
|
+
/** Declared by an addon since this engine process started (a running addon claims it). */
|
|
17343
|
+
declaredThisBoot: boolean()
|
|
17344
|
+
});
|
|
17345
|
+
method(object({ ownerPrefix: string().min(1).optional() }), object({ tables: array(StorageTableSchema) }), { auth: "admin" }), method(object({
|
|
17346
|
+
collection: string().min(1),
|
|
17347
|
+
expectRows: number().int().nonnegative()
|
|
17348
|
+
}), object({
|
|
17349
|
+
dropped: literal(true),
|
|
17350
|
+
rows: number().int().nonnegative()
|
|
17351
|
+
}), {
|
|
17352
|
+
kind: "mutation",
|
|
17353
|
+
auth: "admin"
|
|
17354
|
+
});
|
|
17241
17355
|
/**
|
|
17242
17356
|
* `keychain` — the hub's encrypted store of secret values (D787).
|
|
17243
17357
|
*
|
|
@@ -17779,6 +17893,16 @@ method(object({}), KeychainStatusSchema, { auth: "admin" }), method(object({}),
|
|
|
17779
17893
|
kind: "mutation",
|
|
17780
17894
|
auth: "admin",
|
|
17781
17895
|
caller: "required"
|
|
17896
|
+
}), method(object({
|
|
17897
|
+
ref: string().min(1),
|
|
17898
|
+
value: string().min(1)
|
|
17899
|
+
}), object({
|
|
17900
|
+
ref: string(),
|
|
17901
|
+
version: number().int()
|
|
17902
|
+
}), {
|
|
17903
|
+
kind: "mutation",
|
|
17904
|
+
auth: "admin",
|
|
17905
|
+
caller: "required"
|
|
17782
17906
|
}), method(object({ refs: array(string().min(1)).max(1e3) }), object({
|
|
17783
17907
|
deleted: array(string()).readonly(),
|
|
17784
17908
|
kept: array(object({
|
|
@@ -71843,6 +71967,12 @@ Object.freeze({
|
|
|
71843
71967
|
addonId: null,
|
|
71844
71968
|
access: "create"
|
|
71845
71969
|
},
|
|
71970
|
+
"keychainAdmin.importSecret": {
|
|
71971
|
+
capName: "keychain-admin",
|
|
71972
|
+
capScope: "system",
|
|
71973
|
+
addonId: null,
|
|
71974
|
+
access: "create"
|
|
71975
|
+
},
|
|
71846
71976
|
"keychainAdmin.listAudit": {
|
|
71847
71977
|
capName: "keychain-admin",
|
|
71848
71978
|
capScope: "system",
|
|
@@ -75629,6 +75759,18 @@ Object.freeze({
|
|
|
75629
75759
|
addonId: null,
|
|
75630
75760
|
access: "create"
|
|
75631
75761
|
},
|
|
75762
|
+
"storageAdmin.dropCollection": {
|
|
75763
|
+
capName: "storage-admin",
|
|
75764
|
+
capScope: "system",
|
|
75765
|
+
addonId: null,
|
|
75766
|
+
access: "delete"
|
|
75767
|
+
},
|
|
75768
|
+
"storageAdmin.listTables": {
|
|
75769
|
+
capName: "storage-admin",
|
|
75770
|
+
capScope: "system",
|
|
75771
|
+
addonId: null,
|
|
75772
|
+
access: "view"
|
|
75773
|
+
},
|
|
75632
75774
|
"storageEvictable.evict": {
|
|
75633
75775
|
capName: "storage-evictable",
|
|
75634
75776
|
capScope: "system",
|
|
@@ -5459,7 +5459,7 @@ var ZodIssueCode = {
|
|
|
5459
5459
|
var ZodFirstPartyTypeKind;
|
|
5460
5460
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5461
5461
|
//#endregion
|
|
5462
|
-
//#region ../types/dist/sleep-
|
|
5462
|
+
//#region ../types/dist/sleep-bwsTj221.mjs
|
|
5463
5463
|
/**
|
|
5464
5464
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5465
5465
|
* window to float samples (D455).
|
|
@@ -6710,7 +6710,6 @@ function createHandle(raw, opts) {
|
|
|
6710
6710
|
const writeAddon = (patch) => write("addon", opts.addonTree(), void 0, patch, () => readStoredAddonBlob(raw), (p) => raw.writeAddonStore(p));
|
|
6711
6711
|
const readAddonStoreResult = raw.readAddonStoreResult;
|
|
6712
6712
|
const readAddonStoreKeyResult = raw.readAddonStoreKeyResult;
|
|
6713
|
-
const readDeviceStoreBatch = raw.readDeviceStoreBatch;
|
|
6714
6713
|
const overrides = {
|
|
6715
6714
|
readAddonStore: async () => resolveRead("addon", await raw.readAddonStore()),
|
|
6716
6715
|
...readAddonStoreResult !== void 0 ? { readAddonStoreResult: async () => {
|
|
@@ -6734,12 +6733,12 @@ function createHandle(raw, opts) {
|
|
|
6734
6733
|
};
|
|
6735
6734
|
} } : {},
|
|
6736
6735
|
readDeviceStore: async (deviceId) => resolveRead(`device:${deviceId}`, await raw.readDeviceStore(deviceId)),
|
|
6737
|
-
|
|
6738
|
-
const rows = await readDeviceStoreBatch
|
|
6736
|
+
readDeviceStoreBatch: async (deviceIds) => {
|
|
6737
|
+
const rows = await raw.readDeviceStoreBatch(deviceIds);
|
|
6739
6738
|
const out = /* @__PURE__ */ new Map();
|
|
6740
6739
|
for (const [deviceId, blob] of rows) out.set(deviceId, await resolveRead(`device:${deviceId}`, blob));
|
|
6741
6740
|
return out;
|
|
6742
|
-
}
|
|
6741
|
+
},
|
|
6743
6742
|
writeAddonStore: async (patch) => {
|
|
6744
6743
|
await writeAddon(patch);
|
|
6745
6744
|
},
|
|
@@ -7566,7 +7565,7 @@ var BaseAddon = class {
|
|
|
7566
7565
|
return this._addonSecretTree;
|
|
7567
7566
|
}
|
|
7568
7567
|
deviceSecretTree() {
|
|
7569
|
-
this._deviceSecretTree ??= secretTreeFromSchema(this.deviceSettingsSchema());
|
|
7568
|
+
this._deviceSecretTree ??= mergeSecretStatePaths(secretTreeFromSchema(this.deviceSettingsSchema()), this.secretStatePaths);
|
|
7570
7569
|
return this._deviceSecretTree;
|
|
7571
7570
|
}
|
|
7572
7571
|
/**
|
|
@@ -7642,42 +7641,135 @@ var BaseAddon = class {
|
|
|
7642
7641
|
this[timerOf] = timer;
|
|
7643
7642
|
}
|
|
7644
7643
|
/**
|
|
7645
|
-
* Wrap `ctx.settings.readAddonStore()` with a
|
|
7646
|
-
*
|
|
7647
|
-
* swap, or any race where the SqliteSettingsBackend is between shutdown and
|
|
7648
|
-
* re-initialize) doesn't propagate up into `initialize()` and leave the
|
|
7644
|
+
* Wrap `ctx.settings.readAddonStore()` with a retry budget so a transient
|
|
7645
|
+
* settings-store outage doesn't propagate up into `initialize()` and leave the
|
|
7649
7646
|
* addon permanently broken.
|
|
7650
7647
|
*
|
|
7651
|
-
*
|
|
7652
|
-
*
|
|
7653
|
-
* `
|
|
7648
|
+
* Two kinds of outage, two budgets:
|
|
7649
|
+
* - the store's own restart fingerprints (`SqliteSettingsBackend not
|
|
7650
|
+
* initialized`, `provider not available`): a short budget, then the addon
|
|
7651
|
+
* falls back to `{}` (defaults) - its first successful patch rehydrates;
|
|
7652
|
+
* - a TRANSPORT failure (the hub is restarting while this runner boots:
|
|
7653
|
+
* `discovery deadline exceeded`, `parent could not route`, a refused or
|
|
7654
|
+
* timed-out connection). Since D870 a runner's settings read THROWS instead
|
|
7655
|
+
* of answering `{}`, so without a budget a hub restart ends in a respawn
|
|
7656
|
+
* loop. A long, bounded budget; only after it the error propagates - the
|
|
7657
|
+
* addon never runs on defaults for a store it could not ask.
|
|
7658
|
+
* Anything else propagates immediately so real bugs surface.
|
|
7654
7659
|
*/
|
|
7655
7660
|
async readAddonStoreWithRetry() {
|
|
7656
7661
|
const settings = this.rawSettings();
|
|
7657
7662
|
if (!settings) return {};
|
|
7658
|
-
const delaysMs = [
|
|
7659
|
-
150,
|
|
7660
|
-
350,
|
|
7661
|
-
600,
|
|
7662
|
-
900
|
|
7663
|
-
];
|
|
7664
7663
|
let lastErr;
|
|
7665
|
-
for (let attempt = 0
|
|
7664
|
+
for (let attempt = 0;; attempt++) try {
|
|
7666
7665
|
const stored = await settings.readAddonStore() ?? {};
|
|
7667
7666
|
this.settingsStoreReady = true;
|
|
7668
7667
|
return stored;
|
|
7669
7668
|
} catch (err) {
|
|
7670
7669
|
lastErr = err;
|
|
7671
|
-
const
|
|
7672
|
-
if (
|
|
7673
|
-
|
|
7674
|
-
|
|
7670
|
+
const kind = classifyStoreError(err);
|
|
7671
|
+
if (kind === "permanent") throw err;
|
|
7672
|
+
const delay = (kind === "transport" ? TRANSPORT_RETRY_DELAYS_MS : RESTART_RETRY_DELAYS_MS)[attempt];
|
|
7673
|
+
if (delay === void 0) {
|
|
7674
|
+
if (kind === "transport") throw err;
|
|
7675
|
+
break;
|
|
7676
|
+
}
|
|
7677
|
+
await new Promise((r) => setTimeout(r, delay));
|
|
7675
7678
|
}
|
|
7676
7679
|
this.settingsStoreReady = false;
|
|
7677
7680
|
this._ctx?.logger?.warn?.("readAddonStore: settings-store unavailable after retries — using defaults", { meta: { error: lastErr instanceof Error ? lastErr.message : String(lastErr) } });
|
|
7678
7681
|
return {};
|
|
7679
7682
|
}
|
|
7680
7683
|
};
|
|
7684
|
+
/** The settings store's own restart fingerprints. */
|
|
7685
|
+
var RESTART_RETRY_DELAYS_MS = [
|
|
7686
|
+
150,
|
|
7687
|
+
350,
|
|
7688
|
+
600,
|
|
7689
|
+
900
|
|
7690
|
+
];
|
|
7691
|
+
/** A hub restarting under a booting runner: ~100 s in total. */
|
|
7692
|
+
var TRANSPORT_RETRY_DELAYS_MS = [
|
|
7693
|
+
150,
|
|
7694
|
+
350,
|
|
7695
|
+
600,
|
|
7696
|
+
900,
|
|
7697
|
+
2e3,
|
|
7698
|
+
5e3,
|
|
7699
|
+
1e4,
|
|
7700
|
+
2e4,
|
|
7701
|
+
3e4,
|
|
7702
|
+
3e4
|
|
7703
|
+
];
|
|
7704
|
+
var RESTART_FINGERPRINTS = ["SqliteSettingsBackend not initialized", "provider not available"];
|
|
7705
|
+
/** Node / socket error codes of a connection that did not happen or broke. */
|
|
7706
|
+
var TRANSPORT_CODES = new Set([
|
|
7707
|
+
"ECONNREFUSED",
|
|
7708
|
+
"ECONNRESET",
|
|
7709
|
+
"ETIMEDOUT",
|
|
7710
|
+
"EPIPE",
|
|
7711
|
+
"EHOSTUNREACH",
|
|
7712
|
+
"ENETUNREACH"
|
|
7713
|
+
]);
|
|
7714
|
+
/** tRPC error codes that mean "the other side is not answering now", not "your call is wrong". */
|
|
7715
|
+
var UNAVAILABLE_TRPC_CODES = new Set([
|
|
7716
|
+
"TIMEOUT",
|
|
7717
|
+
"SERVICE_UNAVAILABLE",
|
|
7718
|
+
"BAD_GATEWAY",
|
|
7719
|
+
"GATEWAY_TIMEOUT"
|
|
7720
|
+
]);
|
|
7721
|
+
/** The exact phrases OUR transport raises when it cannot reach the hub. */
|
|
7722
|
+
var TRANSPORT_PHRASES = [
|
|
7723
|
+
"discovery deadline exceeded",
|
|
7724
|
+
"parent could not route child unowned cap call",
|
|
7725
|
+
"UDS request timed out after",
|
|
7726
|
+
"channel closed"
|
|
7727
|
+
];
|
|
7728
|
+
/** Moleculer error `type`s of a call that could not be served right now. */
|
|
7729
|
+
var MOLECULER_TRANSIENT_TYPES = new Set([
|
|
7730
|
+
"REQUEST_TIMEOUT",
|
|
7731
|
+
"SERVICE_NOT_FOUND",
|
|
7732
|
+
"SERVICE_NOT_AVAILABLE",
|
|
7733
|
+
"REQUEST_REJECTED",
|
|
7734
|
+
"BROKER_DISCONNECTED"
|
|
7735
|
+
]);
|
|
7736
|
+
function stringProp(value, key) {
|
|
7737
|
+
if (typeof value !== "object" || value === null) return void 0;
|
|
7738
|
+
const found = Reflect.get(value, key);
|
|
7739
|
+
return typeof found === "string" ? found : void 0;
|
|
7740
|
+
}
|
|
7741
|
+
/** The code an error carries: its own, its cause's, or a tRPC `data.code`. */
|
|
7742
|
+
function errorCode(err) {
|
|
7743
|
+
const out = {};
|
|
7744
|
+
const cause = typeof err === "object" && err !== null ? Reflect.get(err, "cause") : void 0;
|
|
7745
|
+
const data = typeof err === "object" && err !== null ? Reflect.get(err, "data") : void 0;
|
|
7746
|
+
const node = stringProp(err, "code") ?? stringProp(cause, "code");
|
|
7747
|
+
if (node !== void 0) out.node = node;
|
|
7748
|
+
const trpc = stringProp(data, "code");
|
|
7749
|
+
if (trpc !== void 0) out.trpc = trpc;
|
|
7750
|
+
return out;
|
|
7751
|
+
}
|
|
7752
|
+
/**
|
|
7753
|
+
* Is a settings read failure worth retrying, and with which budget? Only
|
|
7754
|
+
* EXPLICIT signals count: a socket error code, a tRPC "unavailable" code, or
|
|
7755
|
+
* one of the exact phrases our own transport raises. A message that merely
|
|
7756
|
+
* contains "timed out" or "unreachable" is not evidence of anything, and
|
|
7757
|
+
* `settings store not wired` is a wiring bug that retrying cannot fix.
|
|
7758
|
+
*/
|
|
7759
|
+
function classifyStoreError(err) {
|
|
7760
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
7761
|
+
if (RESTART_FINGERPRINTS.some((f) => message.includes(f))) return "restart";
|
|
7762
|
+
const code = errorCode(err);
|
|
7763
|
+
if (code.node !== void 0 && TRANSPORT_CODES.has(code.node)) return "transport";
|
|
7764
|
+
if (code.trpc !== void 0 && UNAVAILABLE_TRPC_CODES.has(code.trpc)) return "transport";
|
|
7765
|
+
if (typeof err === "object" && err !== null) {
|
|
7766
|
+
if (Reflect.get(err, "retryable") === true) return "transport";
|
|
7767
|
+
const type = stringProp(err, "type");
|
|
7768
|
+
if (type !== void 0 && MOLECULER_TRANSIENT_TYPES.has(type)) return "transport";
|
|
7769
|
+
}
|
|
7770
|
+
if (TRANSPORT_PHRASES.some((f) => message.includes(f))) return "transport";
|
|
7771
|
+
return "permanent";
|
|
7772
|
+
}
|
|
7681
7773
|
/**
|
|
7682
7774
|
* Collect the keys of every field marked `perNode: true`, recursing into
|
|
7683
7775
|
* layout containers (`group` fields and `sub-tabs` tabs) the same way
|
|
@@ -17207,6 +17299,28 @@ id: union([string(), number()]) }), {
|
|
|
17207
17299
|
kind: "mutation",
|
|
17208
17300
|
auth: "admin"
|
|
17209
17301
|
});
|
|
17302
|
+
/** One table of the settings database. */
|
|
17303
|
+
var StorageTableSchema = object({
|
|
17304
|
+
/** The table's full name, e.g. `recorder:addon-settings` or `addon-device-settings`. */
|
|
17305
|
+
name: string(),
|
|
17306
|
+
/** The owner prefix of a scoped name (`recorder` for `recorder:addon-settings`), else null. */
|
|
17307
|
+
owner: string().nullable(),
|
|
17308
|
+
rows: number().int().nonnegative(),
|
|
17309
|
+
/** Bytes the table's pages occupy (`dbstat`); null when the engine cannot measure. */
|
|
17310
|
+
bytes: number().int().nonnegative().nullable(),
|
|
17311
|
+
/** Declared by an addon since this engine process started (a running addon claims it). */
|
|
17312
|
+
declaredThisBoot: boolean()
|
|
17313
|
+
});
|
|
17314
|
+
method(object({ ownerPrefix: string().min(1).optional() }), object({ tables: array(StorageTableSchema) }), { auth: "admin" }), method(object({
|
|
17315
|
+
collection: string().min(1),
|
|
17316
|
+
expectRows: number().int().nonnegative()
|
|
17317
|
+
}), object({
|
|
17318
|
+
dropped: literal(true),
|
|
17319
|
+
rows: number().int().nonnegative()
|
|
17320
|
+
}), {
|
|
17321
|
+
kind: "mutation",
|
|
17322
|
+
auth: "admin"
|
|
17323
|
+
});
|
|
17210
17324
|
/**
|
|
17211
17325
|
* `keychain` — the hub's encrypted store of secret values (D787).
|
|
17212
17326
|
*
|
|
@@ -17748,6 +17862,16 @@ method(object({}), KeychainStatusSchema, { auth: "admin" }), method(object({}),
|
|
|
17748
17862
|
kind: "mutation",
|
|
17749
17863
|
auth: "admin",
|
|
17750
17864
|
caller: "required"
|
|
17865
|
+
}), method(object({
|
|
17866
|
+
ref: string().min(1),
|
|
17867
|
+
value: string().min(1)
|
|
17868
|
+
}), object({
|
|
17869
|
+
ref: string(),
|
|
17870
|
+
version: number().int()
|
|
17871
|
+
}), {
|
|
17872
|
+
kind: "mutation",
|
|
17873
|
+
auth: "admin",
|
|
17874
|
+
caller: "required"
|
|
17751
17875
|
}), method(object({ refs: array(string().min(1)).max(1e3) }), object({
|
|
17752
17876
|
deleted: array(string()).readonly(),
|
|
17753
17877
|
kept: array(object({
|
|
@@ -71812,6 +71936,12 @@ Object.freeze({
|
|
|
71812
71936
|
addonId: null,
|
|
71813
71937
|
access: "create"
|
|
71814
71938
|
},
|
|
71939
|
+
"keychainAdmin.importSecret": {
|
|
71940
|
+
capName: "keychain-admin",
|
|
71941
|
+
capScope: "system",
|
|
71942
|
+
addonId: null,
|
|
71943
|
+
access: "create"
|
|
71944
|
+
},
|
|
71815
71945
|
"keychainAdmin.listAudit": {
|
|
71816
71946
|
capName: "keychain-admin",
|
|
71817
71947
|
capScope: "system",
|
|
@@ -75598,6 +75728,18 @@ Object.freeze({
|
|
|
75598
75728
|
addonId: null,
|
|
75599
75729
|
access: "create"
|
|
75600
75730
|
},
|
|
75731
|
+
"storageAdmin.dropCollection": {
|
|
75732
|
+
capName: "storage-admin",
|
|
75733
|
+
capScope: "system",
|
|
75734
|
+
addonId: null,
|
|
75735
|
+
access: "delete"
|
|
75736
|
+
},
|
|
75737
|
+
"storageAdmin.listTables": {
|
|
75738
|
+
capName: "storage-admin",
|
|
75739
|
+
capScope: "system",
|
|
75740
|
+
addonId: null,
|
|
75741
|
+
access: "view"
|
|
75742
|
+
},
|
|
75601
75743
|
"storageEvictable.evict": {
|
|
75602
75744
|
capName: "storage-evictable",
|
|
75603
75745
|
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-
|
|
5
|
+
const require_clip_model_registry = require("../clip-model-registry-CJMlelSr.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");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $t as PoolMemoryWatchdog, Ii as normalizeNodeId, Oi as BaseAddon, Rr as parseProcStatus, Xr as resolvePoolMemoryPolicy, a as CLIP_EMBEDDING_STEP_ID, i as CLIP_TEXT_MODELS, ir as embeddingModelFailedError, l as resolveClusterModelPin, n as DEFAULT_CLIP_MODEL, or as embeddingRequirementsFailedError, r as CLIP_IMAGE_MODELS, rr as embeddingEncoderCapability, sr as embeddingRequirementsUnavailableError, t as BUILTIN_CLIP_MODELS } from "../clip-model-registry-
|
|
1
|
+
import { $t as PoolMemoryWatchdog, Ii as normalizeNodeId, Oi as BaseAddon, Rr as parseProcStatus, Xr as resolvePoolMemoryPolicy, a as CLIP_EMBEDDING_STEP_ID, i as CLIP_TEXT_MODELS, ir as embeddingModelFailedError, l as resolveClusterModelPin, n as DEFAULT_CLIP_MODEL, or as embeddingRequirementsFailedError, r as CLIP_IMAGE_MODELS, rr as embeddingEncoderCapability, sr as embeddingRequirementsUnavailableError, t as BUILTIN_CLIP_MODELS } from "../clip-model-registry-YcxOhKAs.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";
|
|
@@ -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-C0AuF9av.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, i as l, n as u, o as d, r as f, s as p, t as m } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-
|
|
3
|
+
import { a as s, c, i as l, n as u, o as d, r as f, s as p, t as m } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-XFjQPo0r.mjs";
|
|
4
4
|
import { n as h, r as g, t as _ } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-Bm-iyjmq.mjs";
|
|
5
|
-
import { t as v } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-
|
|
5
|
+
import { t as v } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BrZNQ-qA.mjs";
|
|
6
6
|
//#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
|
|
7
7
|
var y = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), b = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), x = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), S = (e) => {
|
|
8
8
|
let t = x(e);
|
|
@@ -18,7 +18,7 @@ var e = {
|
|
|
18
18
|
},
|
|
19
19
|
"@camstack/types": {
|
|
20
20
|
name: "@camstack/types",
|
|
21
|
-
version: "1.2.
|
|
21
|
+
version: "1.2.376",
|
|
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.
|
|
36
|
+
version: "1.2.294",
|
|
37
37
|
scope: ["default"],
|
|
38
38
|
loaded: !1,
|
|
39
39
|
from: "addon_pipeline_analytics_widgets",
|