@camstack/system 1.2.304 → 1.2.305
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/addon-runner.js +1 -1
- package/dist/addon-runner.mjs +1 -1
- package/dist/addon-utils.d.ts +1 -1
- package/dist/addon-utils.js +3 -1
- package/dist/addon-utils.mjs +2 -2
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
- package/dist/builtins/alerts/alerts.addon.js +1 -1
- package/dist/builtins/alerts/alerts.addon.mjs +1 -1
- package/dist/builtins/autotrack/index.js +1 -1
- package/dist/builtins/autotrack/index.mjs +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +1 -1
- package/dist/builtins/camera-grid/index.js +1 -1
- package/dist/builtins/camera-grid/index.mjs +1 -1
- package/dist/builtins/console-logging/index.js +1 -1
- package/dist/builtins/console-logging/index.mjs +1 -1
- package/dist/builtins/core-blocks/core-blocks.addon.js +1 -1
- package/dist/builtins/core-blocks/core-blocks.addon.mjs +1 -1
- package/dist/builtins/device-manager/device-extension-linked-slot.d.ts +8 -0
- package/dist/builtins/device-manager/device-linked-devices.d.ts +34 -0
- package/dist/builtins/device-manager/device-manager.addon.js +188 -22
- package/dist/builtins/device-manager/device-manager.addon.mjs +188 -22
- package/dist/builtins/doorbell/binding-mirror.d.ts +24 -0
- package/dist/builtins/doorbell/doorbell-extension-slot.d.ts +66 -0
- package/dist/builtins/doorbell/virtual-doorbell.addon.d.ts +14 -0
- package/dist/builtins/doorbell/virtual-doorbell.addon.js +307 -38
- package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +307 -38
- package/dist/builtins/hub-forwarder/index.js +1 -1
- package/dist/builtins/hub-forwarder/index.mjs +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
- package/dist/builtins/local-auth/local-auth.addon.js +1 -1
- package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
- package/dist/builtins/local-network/local-network.addon.js +1 -1
- package/dist/builtins/local-network/local-network.addon.mjs +1 -1
- package/dist/builtins/loki-logging/index.js +1 -1
- package/dist/builtins/loki-logging/index.mjs +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
- package/dist/builtins/platform-probe/index.js +1 -1
- package/dist/builtins/platform-probe/index.mjs +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
- package/dist/builtins/snapshot/index.js +1 -1
- package/dist/builtins/snapshot/index.mjs +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
- package/dist/builtins/system-config/system-config.addon.js +1 -1
- package/dist/builtins/system-config/system-config.addon.mjs +1 -1
- package/dist/builtins/winston-logging/index.js +1 -1
- package/dist/builtins/winston-logging/index.mjs +1 -1
- package/dist/{child-cap-dispatch-C1c3rWaX.mjs → child-cap-dispatch-BCJjUtXV.mjs} +9 -1
- package/dist/{child-cap-dispatch-De5_HcvR.js → child-cap-dispatch-Be8e2cBP.js} +9 -1
- package/dist/{dist-C571Y95Z.js → dist-BK4iP6ab.js} +1069 -310
- package/dist/{dist-Duqf80QM.mjs → dist-Df1NhKxm.mjs} +1046 -311
- package/dist/download/model-downloader.d.ts +15 -0
- package/dist/{event-loop-stall-monitor-GPrVvx14.mjs → event-loop-stall-monitor-EXjzIxDz.mjs} +25 -3
- package/dist/{event-loop-stall-monitor-CAsHdMwP.js → event-loop-stall-monitor-ey4mbofz.js} +36 -2
- package/dist/index.js +21 -3
- package/dist/index.mjs +21 -3
- package/dist/kernel/config-manager.d.ts +3 -1
- package/dist/{retired-settings-keys-0j8rNoa8.js → retired-settings-keys-DwWMph6F.js} +1 -1
- package/dist/{retired-settings-keys-CeO_dBHU.mjs → retired-settings-keys-dC4ckbXJ.mjs} +1 -1
- package/package.json +7 -1
|
@@ -24,6 +24,21 @@ export declare function siblingUrl(mainUrl: string, sibling: string): string;
|
|
|
24
24
|
*/
|
|
25
25
|
export declare function collectModelFiles(entry: ModelCatalogEntry, format: ModelFormat): string[];
|
|
26
26
|
export type DownloadRedirectPolicy = (url: URL, hop: number) => void;
|
|
27
|
+
/**
|
|
28
|
+
* A download that the server ANSWERED with a non-2xx status. Typed so a caller
|
|
29
|
+
* can tell "the file is not there" (404/410 — nothing a retry changes) from
|
|
30
|
+
* "the server was unreachable" by the STATUS, never by matching the message:
|
|
31
|
+
* the embedding encoder's requirements gate (D649) sends the first to a
|
|
32
|
+
* terminal state after a bounded number of attempts and only cools down on
|
|
33
|
+
* the second.
|
|
34
|
+
*/
|
|
35
|
+
export declare class ModelDownloadHttpError extends Error {
|
|
36
|
+
readonly status: number;
|
|
37
|
+
readonly url: string;
|
|
38
|
+
constructor(status: number, url: string, verb: 'downloading' | 'fetching');
|
|
39
|
+
}
|
|
40
|
+
/** True when `err` is a {@link ModelDownloadHttpError} — same process only. */
|
|
41
|
+
export declare function isModelDownloadHttpError(err: unknown): err is ModelDownloadHttpError;
|
|
27
42
|
export interface DownloadFileOptions {
|
|
28
43
|
readonly onProgress?: (downloaded: number, total: number) => void;
|
|
29
44
|
/**
|
package/dist/{event-loop-stall-monitor-GPrVvx14.mjs → event-loop-stall-monitor-EXjzIxDz.mjs}
RENAMED
|
@@ -51,6 +51,28 @@ function buildHeaders(url) {
|
|
|
51
51
|
if (hfToken && url.includes("huggingface.co")) headers["Authorization"] = `Bearer ${hfToken}`;
|
|
52
52
|
return headers;
|
|
53
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* A download that the server ANSWERED with a non-2xx status. Typed so a caller
|
|
56
|
+
* can tell "the file is not there" (404/410 — nothing a retry changes) from
|
|
57
|
+
* "the server was unreachable" by the STATUS, never by matching the message:
|
|
58
|
+
* the embedding encoder's requirements gate (D649) sends the first to a
|
|
59
|
+
* terminal state after a bounded number of attempts and only cools down on
|
|
60
|
+
* the second.
|
|
61
|
+
*/
|
|
62
|
+
var ModelDownloadHttpError = class extends Error {
|
|
63
|
+
status;
|
|
64
|
+
url;
|
|
65
|
+
constructor(status, url, verb) {
|
|
66
|
+
super(`HTTP ${String(status)} ${verb} ${url}`);
|
|
67
|
+
this.status = status;
|
|
68
|
+
this.url = url;
|
|
69
|
+
this.name = "ModelDownloadHttpError";
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
/** True when `err` is a {@link ModelDownloadHttpError} — same process only. */
|
|
73
|
+
function isModelDownloadHttpError(err) {
|
|
74
|
+
return err instanceof ModelDownloadHttpError;
|
|
75
|
+
}
|
|
54
76
|
var DEFAULT_MAX_REDIRECTS = 5;
|
|
55
77
|
function normalizeDownloadOptions(third) {
|
|
56
78
|
if (typeof third === "function") return { onProgress: third };
|
|
@@ -101,7 +123,7 @@ async function downloadFile(url, destPath, onProgressOrOptions) {
|
|
|
101
123
|
}
|
|
102
124
|
if (!response) throw new Error(`No response downloading ${url}`);
|
|
103
125
|
if (manual && isRedirectStatus(response.status)) throw new Error(`Too many redirects (max ${maxRedirects}) downloading ${url}`);
|
|
104
|
-
if (!response.ok) throw new
|
|
126
|
+
if (!response.ok) throw new ModelDownloadHttpError(response.status, url, "downloading");
|
|
105
127
|
if (!response.body) throw new Error(`No response body from ${url}`);
|
|
106
128
|
const total = parseInt(response.headers.get("content-length") ?? "0", 10);
|
|
107
129
|
let downloaded = 0;
|
|
@@ -140,7 +162,7 @@ async function fetchJson(url) {
|
|
|
140
162
|
redirect: "follow",
|
|
141
163
|
headers: buildHeaders(url)
|
|
142
164
|
});
|
|
143
|
-
if (!response.ok) throw new
|
|
165
|
+
if (!response.ok) throw new ModelDownloadHttpError(response.status, url, "fetching");
|
|
144
166
|
return response.json();
|
|
145
167
|
}
|
|
146
168
|
/**
|
|
@@ -1111,4 +1133,4 @@ function startEventLoopStallMonitor(logger, reportThresholdMs = STALL_REPORT_MS)
|
|
|
1111
1133
|
};
|
|
1112
1134
|
}
|
|
1113
1135
|
//#endregion
|
|
1114
|
-
export {
|
|
1136
|
+
export { ensureModel as _, createFileDataPlaneHandler as a, isModelDownloadHttpError as b, parseRangeHeader as c, ModelDownloadService as d, ModelDownloadHttpError as f, downloadModel as g, downloadFile as h, startEventLoopStallMonitor as i, parseTokenizedUrl as l, deleteModelFromDisk as m, STALL_TICK_MS as n, contentTypeFor as o, collectModelFiles as p, attributeStall as r, createAuthenticatedFileServer as s, STALL_REPORT_MS as t, resolveFilePath as u, fetchJson as v, isModelDownloaded as x, getModelFilePath as y };
|
|
@@ -52,6 +52,28 @@ function buildHeaders(url) {
|
|
|
52
52
|
if (hfToken && url.includes("huggingface.co")) headers["Authorization"] = `Bearer ${hfToken}`;
|
|
53
53
|
return headers;
|
|
54
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* A download that the server ANSWERED with a non-2xx status. Typed so a caller
|
|
57
|
+
* can tell "the file is not there" (404/410 — nothing a retry changes) from
|
|
58
|
+
* "the server was unreachable" by the STATUS, never by matching the message:
|
|
59
|
+
* the embedding encoder's requirements gate (D649) sends the first to a
|
|
60
|
+
* terminal state after a bounded number of attempts and only cools down on
|
|
61
|
+
* the second.
|
|
62
|
+
*/
|
|
63
|
+
var ModelDownloadHttpError = class extends Error {
|
|
64
|
+
status;
|
|
65
|
+
url;
|
|
66
|
+
constructor(status, url, verb) {
|
|
67
|
+
super(`HTTP ${String(status)} ${verb} ${url}`);
|
|
68
|
+
this.status = status;
|
|
69
|
+
this.url = url;
|
|
70
|
+
this.name = "ModelDownloadHttpError";
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
/** True when `err` is a {@link ModelDownloadHttpError} — same process only. */
|
|
74
|
+
function isModelDownloadHttpError(err) {
|
|
75
|
+
return err instanceof ModelDownloadHttpError;
|
|
76
|
+
}
|
|
55
77
|
var DEFAULT_MAX_REDIRECTS = 5;
|
|
56
78
|
function normalizeDownloadOptions(third) {
|
|
57
79
|
if (typeof third === "function") return { onProgress: third };
|
|
@@ -102,7 +124,7 @@ async function downloadFile(url, destPath, onProgressOrOptions) {
|
|
|
102
124
|
}
|
|
103
125
|
if (!response) throw new Error(`No response downloading ${url}`);
|
|
104
126
|
if (manual && isRedirectStatus(response.status)) throw new Error(`Too many redirects (max ${maxRedirects}) downloading ${url}`);
|
|
105
|
-
if (!response.ok) throw new
|
|
127
|
+
if (!response.ok) throw new ModelDownloadHttpError(response.status, url, "downloading");
|
|
106
128
|
if (!response.body) throw new Error(`No response body from ${url}`);
|
|
107
129
|
const total = parseInt(response.headers.get("content-length") ?? "0", 10);
|
|
108
130
|
let downloaded = 0;
|
|
@@ -141,7 +163,7 @@ async function fetchJson(url) {
|
|
|
141
163
|
redirect: "follow",
|
|
142
164
|
headers: buildHeaders(url)
|
|
143
165
|
});
|
|
144
|
-
if (!response.ok) throw new
|
|
166
|
+
if (!response.ok) throw new ModelDownloadHttpError(response.status, url, "fetching");
|
|
145
167
|
return response.json();
|
|
146
168
|
}
|
|
147
169
|
/**
|
|
@@ -1112,6 +1134,12 @@ function startEventLoopStallMonitor(logger, reportThresholdMs = STALL_REPORT_MS)
|
|
|
1112
1134
|
};
|
|
1113
1135
|
}
|
|
1114
1136
|
//#endregion
|
|
1137
|
+
Object.defineProperty(exports, "ModelDownloadHttpError", {
|
|
1138
|
+
enumerable: true,
|
|
1139
|
+
get: function() {
|
|
1140
|
+
return ModelDownloadHttpError;
|
|
1141
|
+
}
|
|
1142
|
+
});
|
|
1115
1143
|
Object.defineProperty(exports, "ModelDownloadService", {
|
|
1116
1144
|
enumerable: true,
|
|
1117
1145
|
get: function() {
|
|
@@ -1196,6 +1224,12 @@ Object.defineProperty(exports, "getModelFilePath", {
|
|
|
1196
1224
|
return getModelFilePath;
|
|
1197
1225
|
}
|
|
1198
1226
|
});
|
|
1227
|
+
Object.defineProperty(exports, "isModelDownloadHttpError", {
|
|
1228
|
+
enumerable: true,
|
|
1229
|
+
get: function() {
|
|
1230
|
+
return isModelDownloadHttpError;
|
|
1231
|
+
}
|
|
1232
|
+
});
|
|
1199
1233
|
Object.defineProperty(exports, "isModelDownloaded", {
|
|
1200
1234
|
enumerable: true,
|
|
1201
1235
|
get: function() {
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_chunk = require("./chunk-Cek0wNdY.js");
|
|
3
|
-
const require_dist = require("./dist-
|
|
3
|
+
const require_dist = require("./dist-BK4iP6ab.js");
|
|
4
4
|
const require_builtins_alerts_alerts_addon = require("./builtins/alerts/alerts.addon.js");
|
|
5
5
|
require("./builtins/alerts/index.js");
|
|
6
6
|
const require_formatter = require("./formatter-DqAKDlvN.js");
|
|
@@ -25,9 +25,9 @@ require("./builtins/storage-orchestrator/index.js");
|
|
|
25
25
|
const require_builtins_system_config_system_config_addon = require("./builtins/system-config/system-config.addon.js");
|
|
26
26
|
require("./builtins/system-config/index.js");
|
|
27
27
|
const require_builtins_winston_logging_index = require("./builtins/winston-logging/index.js");
|
|
28
|
-
const require_event_loop_stall_monitor = require("./event-loop-stall-monitor-
|
|
28
|
+
const require_event_loop_stall_monitor = require("./event-loop-stall-monitor-ey4mbofz.js");
|
|
29
29
|
const require_tls$1 = require("./tls-D_wUeOTD.js");
|
|
30
|
-
const require_child_cap_dispatch = require("./child-cap-dispatch-
|
|
30
|
+
const require_child_cap_dispatch = require("./child-cap-dispatch-Be8e2cBP.js");
|
|
31
31
|
const require_resource_monitor = require("./resource-monitor-LVE1BoLs.js");
|
|
32
32
|
const require_custom_action_registry = require("./custom-action-registry-acBY3mHA.js");
|
|
33
33
|
let zod = require("zod");
|
|
@@ -10189,6 +10189,24 @@ var ConfigManager = class ConfigManager {
|
|
|
10189
10189
|
};
|
|
10190
10190
|
return {
|
|
10191
10191
|
readAddonStore: () => active().readAddonStore(),
|
|
10192
|
+
readAddonStoreResult: async () => {
|
|
10193
|
+
if (this.settingsStore === null && this.settingsDoor === null) return {
|
|
10194
|
+
kind: "failed",
|
|
10195
|
+
error: "settings store not wired"
|
|
10196
|
+
};
|
|
10197
|
+
try {
|
|
10198
|
+
const value = await active().readAddonStore();
|
|
10199
|
+
return Object.keys(value).length > 0 ? {
|
|
10200
|
+
kind: "value",
|
|
10201
|
+
value
|
|
10202
|
+
} : { kind: "missing" };
|
|
10203
|
+
} catch (err) {
|
|
10204
|
+
return {
|
|
10205
|
+
kind: "failed",
|
|
10206
|
+
error: err instanceof Error ? err.message : String(err)
|
|
10207
|
+
};
|
|
10208
|
+
}
|
|
10209
|
+
},
|
|
10192
10210
|
writeAddonStore: (patch) => active().writeAddonStore(patch),
|
|
10193
10211
|
readDeviceStore: (deviceId) => active().readDeviceStore(deviceId),
|
|
10194
10212
|
readDeviceStoreBatch: (deviceIds) => active().readDeviceStoreBatch(deviceIds),
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM$1, r as __exportAll, t as __commonJSMin$1 } from "./chunk-CNf5ZN-e.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { $t as scopesAllowDeviceCap, An as createEvent, Bn as readinessKey, Dn as asJsonObject$1, Et as kebabToCamel, Gt as procedureAuthKey, Hn as scopeKey, Ht as objectInputDeclaresRequiredDeviceId, Nn as expandCapMethods, Nt as logLevelAtMost, On as asNumber, Pt as looseSchema, Qt as scopesAllowAddon, R as addonSettingsCapability, Rn as parseJsonObject, St as isObjectInput, T as RUNTIME_DEFAULTS, Tn as ReadinessTimeoutError, Tt as isVoidInput, Vn as resolveCapMount, Vt as objectInputDeclaresAddonId, Wn as EventCategory$1, Xt as resolveMethodAuth, _ as LOG_LEVEL_RANK, b as METHOD_ACCESS_MAP, bn as DEVICE_STATUS_METHOD, bt as isCollectionArrayMethod, hn as errMsg$1, jn as emitDownForOwnedCaps, kn as asString$1, kt as lifecycleJobSchema, mt as extractNestedAddonId, t as ALL_CAPABILITY_DEFINITIONS, vn as DATAPLANE_SECRET_HEADER$1, wn as ReadinessRegistry, yn as DEVICE_SETTINGS_CONTRIBUTION_METHODS, yt as isArrayOutputSchema, zn as parseJsonUnknown } from "./dist-Df1NhKxm.mjs";
|
|
3
3
|
import { AlertCenterAddon } from "./builtins/alerts/alerts.addon.mjs";
|
|
4
4
|
import "./builtins/alerts/index.mjs";
|
|
5
5
|
import { t as formatLogLine } from "./formatter-B7qW8bPJ.mjs";
|
|
@@ -24,9 +24,9 @@ import "./builtins/storage-orchestrator/index.mjs";
|
|
|
24
24
|
import { SystemConfigAddon } from "./builtins/system-config/system-config.addon.mjs";
|
|
25
25
|
import "./builtins/system-config/index.mjs";
|
|
26
26
|
import { WinstonDestination, WinstonLoggingAddon } from "./builtins/winston-logging/index.mjs";
|
|
27
|
-
import { _ as
|
|
27
|
+
import { _ as ensureModel, a as createFileDataPlaneHandler, c as parseRangeHeader, d as ModelDownloadService, g as downloadModel, h as downloadFile, i as startEventLoopStallMonitor, l as parseTokenizedUrl, m as deleteModelFromDisk, n as STALL_TICK_MS, o as contentTypeFor, p as collectModelFiles, r as attributeStall, s as createAuthenticatedFileServer, t as STALL_REPORT_MS, u as resolveFilePath, v as fetchJson, x as isModelDownloaded, y as getModelFilePath } from "./event-loop-stall-monitor-EXjzIxDz.mjs";
|
|
28
28
|
import { C as registerLanHttpHandler, S as readLanHttpState, _ as DEFAULT_LAN_HTTP_PORT, a as writeTlsMode, b as bindPendingLanHttp, c as loadTlsCert, d as collectCertIdentity, f as CA_VALIDITY_DAYS, g as evaluateExistingCert, h as SERVER_AUTH_OID, i as writeExtraSans, l as reissueTlsLeaf, m as MAX_LEAF_VALIDITY_DAYS, n as readTlsAccessStatus, o as validateUploadedTls, p as LEAF_RENEWAL_WINDOW_DAYS, r as readTlsMode, s as ensureTlsCert, t as readExtraSans, u as CA_COMMON_NAME, v as allFamiliesListenHost, x as closeLanHttp, y as applyLanHttp } from "./tls-IM-v7JV4.mjs";
|
|
29
|
-
import { $ as localEndpointPath, $t as shouldReclaim, A as createUdsEventBus, An as createSocketPlaneReader, At as createAddonDataPlaneFacility, B as LocalChildClient, Bn as CAP_ACTION_OVERFLOW_LABEL, Bt as RSS_BUDGET_RELEASE_RATIO, C as brokerTransportLink, Cn as MESH_QUEUE_TOP_N, Ct as installManifestNativeDeps, D as localProviderLink, Dn as SOCKET_PLANE_TOP_N, Dt as runNpm, E as ipcParentLink, En as EMPTY_SOCKET_PLANE_BASELINE, Et as resolveNpmInvocation, F as AGENT_CAP_FWD_SERVICE, Fn as createSocketDirectionCounters, Ft as HEAP_WATCH_WARN_RATIO, G as PARENT_ROUTED_PROVIDER_ADDON_ID, Gn as createCapActionCensus, Gt as createDeferredHeapWatchSink, H as UDS_NO_ROUTE_PREFIX, Hn as EMPTY_CAP_ACTION_READING, Ht as RUNNER_RSS_BUDGET_ENV, I as CapRouteResolver, In as recordSocketFrame, It as HUB_MAIN_HEAP_WATCH_LABEL, J as createLocalTransport, Jn as createEventPlaneMeter, Jt as describeRss, K as __resetCapUsageRegistryForTests, Kn as diffCapActionCensus, Kt as createLoopDelayMeter, L as callWithServiceDiscovery, Ln as sampleSocketDirection, Lt as HUB_MAIN_RSS_BUDGET_MB, M as createUdsLogger, Mn as formatSocketPlane, Mt as HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, N as createUdsLoggerWithControl, Nn as readSocketQueues, Nt as HEAP_RECLAIM_TRIGGER_MB, O as createParentUnownedCallHandler, On as SOCKET_QUEUE_TOP_N, Ot as createAddonPeerBytesFacility, P as AGENT_CAP_FWD_ACTION, Pn as EMPTY_SOCKET_DIRECTION, Pt as HEAP_WATCH_INTERVAL_MS, Q as PeerAnsweredError, Qt as reclaimIntervalMs, R as CapRouteError, Rn as socketDirectionBytes, Rt as HUB_RSS_BUDGET_ENV, S as brokerCallForCap, Sn as formatOutboundQueueVerdict, St as copyBundledNativeModules, T as deviceCapResolverLink, Tn as formatMeshQueue, Tt as buildNpmChildEnv, U as readMoleculerFanoutMode, Un as MAX_CAP_ACTIONS_PER_PEER, Ut as ZERO_LOOP_DELAY, V as LocalChildRegistry, Vn as CAP_ACTION_UNLABELLED, Vt as RUNNER_HEAP_WATCH_INTERVAL_MS, W as CapUsageRegistry, Wn as capActionLabel, Wt as buildHeapSample, X as UdsLocalTransportServer, Xn as diffEventPlane, Xt as nextRssBudgetState, Y as UdsLocalTransportClient, Yn as createEventPlaneReader, Yt as hubMainRssBudget, Z as SocketChannel, Zn as formatEventPlane, Zt as parseRssBudgetMb, _ as setNodeEventInterest, _n as selectReportedSpaces, _t as deserializeTypedArrays, a as adaptBrokerToCluster, an as ARRAY_BUFFER_CENSUS_THRESHOLD_MB, b as createKernelHwAccel, bn as OUTBOUND_QUEUE_THRESHOLD_BYTES, bt as CapabilityHandle, c as getWorkerDeviceRegistry, cn as createInspectorArrayBufferCensus, d as setHubConnected, dn as DECISIVE_HEAP_SPACES, dt as NATIVE_PROVIDER_SERVICE_INFIX, en as startHeapWatch, et as FrameDecoder, f as EVENT_TOPIC_PREFIX, fn as HEAP_SPACE_REPORT_MIN_MB, ft as capActionName, g as registerEventBusService, gn as readHeapSpaces, gt as parseCapAction, h as getMoleculerEventStats, hn as heapSpaceField, ht as capServiceName, i as installManifestPythonDeps, in as ARRAY_BUFFER_CENSUS_SUSTAIN_MS, it as createBrokerDeviceManagerApi, j as udsChildLogToWorkerEntry, jn as diffSocketPlane, jt as HEAP_RECLAIM_MIN_INTERVAL_MS, k as createUdsEventBridge, kn as createSocketPlaneMeter, kt as hostNodeIdOf, l as getOrInitReadinessRegistry, ln as formatArrayBufferCensus, lt as createAddonService, m as getBrokerEventBus, mn as formatHeapSpaces, mt as capBareAction, nn as strandedMb, nt as buildNativeCapProxy, o as createAddonContext, on as ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, p as clusterEventTopic, pn as emitHeapDiagnosticReport, pt as capActionSuffix, q as getCapUsageRegistry, qn as EVENT_PLANE_TOP_N, qt as createV8Reclaimer, r as installManifestSystemDeps, rn as ARRAY_BUFFER_CENSUS_COOLDOWN_MS, rt as buildUdsNativeCapProxy, s as createUdsAddonContext, sn as createArrayBufferCensusGate, st as mountNativeCapService, t as CAP_METHOD_NOT_IMPLEMENTED, tn as startRunnerHeapWatch, tt as encodeFrame, u as getOrInitReadinessRegistryForClient, un as isArrayBufferCensusReport, ut as validateProviderRegistrations, v as subscribePassthrough, vn as OUTBOUND_QUEUE_COOLDOWN_MS, vt as serializeTypedArrays, w as buildLinkChain, wn as createMeshQueueReader, wt as resolveAddonClass, x as resolveHwAccel, xn as createOutboundQueueGate, xt as CapabilityUnavailableError, y as AddonDepsManager, yn as OUTBOUND_QUEUE_SUSTAIN_MS, yt as DeviceRegistry, z as classifyCapRoute, zn as socketDirectionMessages, zt as RSS_BUDGET_REANNOUNCE_MIN_MS } from "./child-cap-dispatch-
|
|
29
|
+
import { $ as localEndpointPath, $t as shouldReclaim, A as createUdsEventBus, An as createSocketPlaneReader, At as createAddonDataPlaneFacility, B as LocalChildClient, Bn as CAP_ACTION_OVERFLOW_LABEL, Bt as RSS_BUDGET_RELEASE_RATIO, C as brokerTransportLink, Cn as MESH_QUEUE_TOP_N, Ct as installManifestNativeDeps, D as localProviderLink, Dn as SOCKET_PLANE_TOP_N, Dt as runNpm, E as ipcParentLink, En as EMPTY_SOCKET_PLANE_BASELINE, Et as resolveNpmInvocation, F as AGENT_CAP_FWD_SERVICE, Fn as createSocketDirectionCounters, Ft as HEAP_WATCH_WARN_RATIO, G as PARENT_ROUTED_PROVIDER_ADDON_ID, Gn as createCapActionCensus, Gt as createDeferredHeapWatchSink, H as UDS_NO_ROUTE_PREFIX, Hn as EMPTY_CAP_ACTION_READING, Ht as RUNNER_RSS_BUDGET_ENV, I as CapRouteResolver, In as recordSocketFrame, It as HUB_MAIN_HEAP_WATCH_LABEL, J as createLocalTransport, Jn as createEventPlaneMeter, Jt as describeRss, K as __resetCapUsageRegistryForTests, Kn as diffCapActionCensus, Kt as createLoopDelayMeter, L as callWithServiceDiscovery, Ln as sampleSocketDirection, Lt as HUB_MAIN_RSS_BUDGET_MB, M as createUdsLogger, Mn as formatSocketPlane, Mt as HEAP_RECLAIM_STEADY_STATE_INTERVAL_MS, N as createUdsLoggerWithControl, Nn as readSocketQueues, Nt as HEAP_RECLAIM_TRIGGER_MB, O as createParentUnownedCallHandler, On as SOCKET_QUEUE_TOP_N, Ot as createAddonPeerBytesFacility, P as AGENT_CAP_FWD_ACTION, Pn as EMPTY_SOCKET_DIRECTION, Pt as HEAP_WATCH_INTERVAL_MS, Q as PeerAnsweredError, Qt as reclaimIntervalMs, R as CapRouteError, Rn as socketDirectionBytes, Rt as HUB_RSS_BUDGET_ENV, S as brokerCallForCap, Sn as formatOutboundQueueVerdict, St as copyBundledNativeModules, T as deviceCapResolverLink, Tn as formatMeshQueue, Tt as buildNpmChildEnv, U as readMoleculerFanoutMode, Un as MAX_CAP_ACTIONS_PER_PEER, Ut as ZERO_LOOP_DELAY, V as LocalChildRegistry, Vn as CAP_ACTION_UNLABELLED, Vt as RUNNER_HEAP_WATCH_INTERVAL_MS, W as CapUsageRegistry, Wn as capActionLabel, Wt as buildHeapSample, X as UdsLocalTransportServer, Xn as diffEventPlane, Xt as nextRssBudgetState, Y as UdsLocalTransportClient, Yn as createEventPlaneReader, Yt as hubMainRssBudget, Z as SocketChannel, Zn as formatEventPlane, Zt as parseRssBudgetMb, _ as setNodeEventInterest, _n as selectReportedSpaces, _t as deserializeTypedArrays, a as adaptBrokerToCluster, an as ARRAY_BUFFER_CENSUS_THRESHOLD_MB, b as createKernelHwAccel, bn as OUTBOUND_QUEUE_THRESHOLD_BYTES, bt as CapabilityHandle, c as getWorkerDeviceRegistry, cn as createInspectorArrayBufferCensus, d as setHubConnected, dn as DECISIVE_HEAP_SPACES, dt as NATIVE_PROVIDER_SERVICE_INFIX, en as startHeapWatch, et as FrameDecoder, f as EVENT_TOPIC_PREFIX, fn as HEAP_SPACE_REPORT_MIN_MB, ft as capActionName, g as registerEventBusService, gn as readHeapSpaces, gt as parseCapAction, h as getMoleculerEventStats, hn as heapSpaceField, ht as capServiceName, i as installManifestPythonDeps, in as ARRAY_BUFFER_CENSUS_SUSTAIN_MS, it as createBrokerDeviceManagerApi, j as udsChildLogToWorkerEntry, jn as diffSocketPlane, jt as HEAP_RECLAIM_MIN_INTERVAL_MS, k as createUdsEventBridge, kn as createSocketPlaneMeter, kt as hostNodeIdOf, l as getOrInitReadinessRegistry, ln as formatArrayBufferCensus, lt as createAddonService, m as getBrokerEventBus, mn as formatHeapSpaces, mt as capBareAction, nn as strandedMb, nt as buildNativeCapProxy, o as createAddonContext, on as ARRAY_BUFFER_RELEASE_MIN_DROP_RATIO, p as clusterEventTopic, pn as emitHeapDiagnosticReport, pt as capActionSuffix, q as getCapUsageRegistry, qn as EVENT_PLANE_TOP_N, qt as createV8Reclaimer, r as installManifestSystemDeps, rn as ARRAY_BUFFER_CENSUS_COOLDOWN_MS, rt as buildUdsNativeCapProxy, s as createUdsAddonContext, sn as createArrayBufferCensusGate, st as mountNativeCapService, t as CAP_METHOD_NOT_IMPLEMENTED, tn as startRunnerHeapWatch, tt as encodeFrame, u as getOrInitReadinessRegistryForClient, un as isArrayBufferCensusReport, ut as validateProviderRegistrations, v as subscribePassthrough, vn as OUTBOUND_QUEUE_COOLDOWN_MS, vt as serializeTypedArrays, w as buildLinkChain, wn as createMeshQueueReader, wt as resolveAddonClass, x as resolveHwAccel, xn as createOutboundQueueGate, xt as CapabilityUnavailableError, y as AddonDepsManager, yn as OUTBOUND_QUEUE_SUSTAIN_MS, yt as DeviceRegistry, z as classifyCapRoute, zn as socketDirectionMessages, zt as RSS_BUDGET_REANNOUNCE_MIN_MS } from "./child-cap-dispatch-BCJjUtXV.mjs";
|
|
30
30
|
import { n as getSinglePidStats, t as getPidStats } from "./resource-monitor-Vp0bPV3U.mjs";
|
|
31
31
|
import { t as CustomActionRegistry } from "./custom-action-registry-B4Cf4O_X.mjs";
|
|
32
32
|
import { z } from "zod";
|
|
@@ -10182,6 +10182,24 @@ var ConfigManager = class ConfigManager {
|
|
|
10182
10182
|
};
|
|
10183
10183
|
return {
|
|
10184
10184
|
readAddonStore: () => active().readAddonStore(),
|
|
10185
|
+
readAddonStoreResult: async () => {
|
|
10186
|
+
if (this.settingsStore === null && this.settingsDoor === null) return {
|
|
10187
|
+
kind: "failed",
|
|
10188
|
+
error: "settings store not wired"
|
|
10189
|
+
};
|
|
10190
|
+
try {
|
|
10191
|
+
const value = await active().readAddonStore();
|
|
10192
|
+
return Object.keys(value).length > 0 ? {
|
|
10193
|
+
kind: "value",
|
|
10194
|
+
value
|
|
10195
|
+
} : { kind: "missing" };
|
|
10196
|
+
} catch (err) {
|
|
10197
|
+
return {
|
|
10198
|
+
kind: "failed",
|
|
10199
|
+
error: err instanceof Error ? err.message : String(err)
|
|
10200
|
+
};
|
|
10201
|
+
}
|
|
10202
|
+
},
|
|
10185
10203
|
writeAddonStore: (patch) => active().writeAddonStore(patch),
|
|
10186
10204
|
readDeviceStore: (deviceId) => active().readDeviceStore(deviceId),
|
|
10187
10205
|
readDeviceStoreBatch: (deviceIds) => active().readDeviceStoreBatch(deviceIds),
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { AppConfig } from './config-schema.js';
|
|
2
|
-
import { FeatureManifest, ISettingsStoreProvider } from '@camstack/types';
|
|
2
|
+
import { AddonStoreRead, FeatureManifest, ISettingsStoreProvider } from '@camstack/types';
|
|
3
3
|
export interface AddonSettingsView {
|
|
4
4
|
readAddonStore(): Promise<Record<string, unknown>>;
|
|
5
|
+
/** See `IAddonContext['settings'].readAddonStoreResult` (D651). */
|
|
6
|
+
readAddonStoreResult?(): Promise<AddonStoreRead>;
|
|
5
7
|
writeAddonStore(patch: Record<string, unknown>): Promise<void>;
|
|
6
8
|
readDeviceStore(deviceId: number): Promise<Record<string, unknown>>;
|
|
7
9
|
/** See `IAddonContext['settings'].readDeviceStoreBatch` — optional there and
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/system",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.305",
|
|
4
4
|
"description": "Core addon for CamStack — builtins, pipeline, process management, auth, logging, events",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|
|
@@ -196,6 +196,9 @@
|
|
|
196
196
|
"capabilities": [
|
|
197
197
|
{
|
|
198
198
|
"name": "doorbell"
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"name": "device-extension"
|
|
199
202
|
}
|
|
200
203
|
]
|
|
201
204
|
},
|
|
@@ -278,6 +281,9 @@
|
|
|
278
281
|
},
|
|
279
282
|
{
|
|
280
283
|
"name": "device-state"
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
"name": "device-extension"
|
|
281
287
|
}
|
|
282
288
|
]
|
|
283
289
|
},
|