@camstack/system 1.2.456 → 1.2.458
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 +259 -37
- package/dist/addon-runner.mjs +289 -67
- package/dist/{agent-https-fm4AR8XL.mjs → agent-https-CQA3W-3e.mjs} +2 -2
- package/dist/{agent-https-yjxdfJDA.js → agent-https-DOELEug8.js} +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 +2 -2
- package/dist/builtins/alerts/alerts.addon.mjs +2 -2
- 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 +2 -2
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +2 -2
- package/dist/builtins/calendars/calendars.addon.js +1 -1
- package/dist/builtins/calendars/calendars.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/composer/composer.addon.js +2 -2
- package/dist/builtins/composer/composer.addon.mjs +2 -2
- package/dist/builtins/console-logging/console-destination.d.ts +1 -2
- package/dist/builtins/console-logging/index.js +1 -4
- package/dist/builtins/console-logging/index.mjs +1 -4
- package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
- package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
- package/dist/builtins/device-history/capture/capture-engine.d.ts +6 -0
- package/dist/builtins/device-history/device-history.addon.d.ts +13 -0
- package/dist/builtins/device-history/device-history.addon.js +736 -315
- package/dist/builtins/device-history/device-history.addon.mjs +736 -315
- package/dist/builtins/device-history/ingest/producer-ingest.d.ts +11 -1
- package/dist/builtins/device-history/query/history-query.d.ts +35 -9
- package/dist/builtins/device-history/query/point-shape.d.ts +33 -0
- package/dist/builtins/device-history/retention/retention.d.ts +1 -1
- package/dist/builtins/device-history/rollup/rollup-engine.d.ts +2 -0
- package/dist/builtins/device-history/rollup/rollup-math.d.ts +6 -0
- package/dist/builtins/device-history/store/history-store.d.ts +7 -0
- package/dist/builtins/device-history/store/series-registry.d.ts +26 -1
- package/dist/builtins/device-manager/device-manager.addon.js +1 -1
- package/dist/builtins/device-manager/device-manager.addon.mjs +1 -1
- package/dist/builtins/hub-forwarder/hub-forwarder-destination.d.ts +1 -2
- package/dist/builtins/hub-forwarder/index.js +1 -4
- package/dist/builtins/hub-forwarder/index.mjs +1 -4
- package/dist/builtins/keychain/index.js +4 -4
- package/dist/builtins/keychain/index.mjs +4 -4
- 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 +3 -3
- package/dist/builtins/local-auth/local-auth.addon.mjs +3 -3
- package/dist/builtins/local-network/local-network.addon.js +2 -2
- package/dist/builtins/local-network/local-network.addon.mjs +2 -2
- package/dist/builtins/loki-logging/index.js +323 -7
- package/dist/builtins/loki-logging/index.mjs +323 -7
- package/dist/builtins/loki-logging/loki-destination.d.ts +20 -3
- package/dist/builtins/loki-logging/loki-read.d.ts +51 -0
- package/dist/builtins/native-metrics/native-metrics.addon.js +290 -112
- package/dist/builtins/native-metrics/native-metrics.addon.mjs +290 -112
- package/dist/builtins/native-metrics/node-metrics-history-recorder.d.ts +106 -35
- package/dist/builtins/platform-probe/coral-accelerators.d.ts +26 -9
- package/dist/builtins/platform-probe/index.js +11 -68
- package/dist/builtins/platform-probe/index.mjs +11 -68
- package/dist/builtins/record-entries/index.js +1 -1
- package/dist/builtins/record-entries/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/index.js +1 -1
- package/dist/builtins/sqlite-storage/index.mjs +1 -1
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +2 -2
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +2 -2
- package/dist/builtins/storage-orchestrator/location-history-recorder.d.ts +76 -0
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.d.ts +9 -0
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +144 -1
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +144 -1
- package/dist/builtins/system-config/system-config.addon.js +3 -3
- package/dist/builtins/system-config/system-config.addon.mjs +3 -3
- package/dist/builtins/winston-logging/index.js +165 -3
- package/dist/builtins/winston-logging/index.mjs +165 -3
- package/dist/builtins/winston-logging/log-file-cursor.d.ts +12 -0
- package/dist/builtins/winston-logging/log-file-index-store.d.ts +11 -0
- package/dist/builtins/winston-logging/log-file-index.d.ts +77 -0
- package/dist/builtins/winston-logging/log-file-read-client.d.ts +44 -0
- package/dist/builtins/winston-logging/log-file-read-protocol.d.ts +41 -0
- package/dist/builtins/winston-logging/log-file-read-worker.d.ts +1 -0
- package/dist/builtins/winston-logging/log-file-reader.d.ts +51 -0
- package/dist/builtins/winston-logging/winston-destination.d.ts +20 -2
- package/dist/{composition-sources-Ds0Vr6eD.mjs → composition-sources-BVguN7VV.mjs} +1 -1
- package/dist/{composition-sources-gB4coDJR.js → composition-sources-DURQNDJ4.js} +1 -1
- package/dist/{constants-i5oD_gLB.mjs → constants-FGjnsE2x.mjs} +1 -1
- package/dist/{constants-CavyKfHZ.js → constants-Njka8Cv6.js} +1 -1
- package/dist/coral-accelerators-Bi_c3Rft.js +175 -0
- package/dist/coral-accelerators-DcnZvctM.mjs +162 -0
- package/dist/{device-ca-bpoEr0zG.js → device-ca-BrVK_5s3.js} +1 -1
- package/dist/{device-ca-qz1Pmeu1.mjs → device-ca-lEaAQ9Xi.mjs} +1 -1
- package/dist/{dist-BpqA2CT0.js → dist-BZQjLPiz.js} +526 -57
- package/dist/{dist-BSF_C8W2.mjs → dist-B_GRPhnY.mjs} +509 -58
- package/dist/file-host-worker.js +1 -1
- package/dist/file-host-worker.mjs +1 -1
- package/dist/{hub-mdns-ciao-CHaGDzyz.mjs → hub-mdns-ciao-Bg2HfTwP.mjs} +2 -2
- package/dist/{hub-mdns-ciao-CZlZRxxA.js → hub-mdns-ciao-nce3TXs_.js} +2 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.js +140 -48
- package/dist/index.mjs +134 -49
- package/dist/kernel/config-schema.d.ts +5 -0
- package/dist/kernel/hwaccel/hwaccel-resolver.d.ts +7 -3
- package/dist/kernel/moleculer/accessory-prune-gate.d.ts +55 -0
- package/dist/log-file-read-protocol-B7M3X3bT.mjs +785 -0
- package/dist/log-file-read-protocol-D0WcLbIV.js +817 -0
- package/dist/log-file-read-worker.js +64 -0
- package/dist/log-file-read-worker.mjs +64 -0
- package/dist/log-read-filter-Bi066jwU.js +134 -0
- package/dist/log-read-filter-D7Ev3zm-.mjs +93 -0
- package/dist/logging/log-manager.d.ts +10 -6
- package/dist/logging/log-read-filter.d.ts +43 -0
- package/dist/{phase6-declare-gate-n-IZRklX.js → phase6-declare-gate-Dag1_WR2.js} +1 -1
- package/dist/{phase6-declare-gate-B4yfsf2n.mjs → phase6-declare-gate-Lb-mrVvz.mjs} +1 -1
- package/dist/{restore-archive-BGUM4FKf.mjs → restore-archive-C7kLDI_0.mjs} +1 -1
- package/dist/{restore-archive-B4QG7XmX.js → restore-archive-FyfZ8YMC.js} +1 -1
- package/dist/{wal-maintenance-CNEs_I94.js → wal-maintenance-DfSIOj24.js} +0 -0
- package/dist/{wal-maintenance-AerF4XE6.mjs → wal-maintenance-Duejh7Lx.mjs} +0 -0
- package/package.json +1 -1
package/dist/addon-runner.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { register } from "node:module";
|
|
2
|
-
import * as fs from "node:fs";
|
|
3
|
-
import { createReadStream, createWriteStream, existsSync, readFileSync, readdirSync } from "node:fs";
|
|
2
|
+
import * as fs$1 from "node:fs";
|
|
3
|
+
import fs, { createReadStream, createWriteStream, existsSync, readFileSync, readdirSync } from "node:fs";
|
|
4
4
|
import * as path from "node:path";
|
|
5
5
|
import { dirname, isAbsolute, join } from "node:path";
|
|
6
6
|
import { BOOT_RECOVERY_BACKOFF_MS, CALLER_STAMPED_CAPABILITIES, DATAPLANE_SECRET_HEADER, DEVICE_CHILDREN_BATCH_MAX, DeviceType, DisposerChain, ErrorI18nPayloadSchema, EventCategory, PEER_BYTES_CHUNK_BYTES, PEER_BYTES_MAX_OUTSTANDING, PEER_BYTES_STALL_MS, PEER_BYTES_TICKET_TTL_MS, ReadinessRegistry, ReadinessTimeoutError, addonSliceHandleApi, asJsonObject, asString, collectZodSecretPaths, createDeviceProxy, createEventBusSliceSource, createRecordsAccess, createSecretsAccess, describeCustomActions, deviceOpsCapability, emitReadiness, errMsg, expandCapMethods, isCollectionArrayMethodName, isProviderOptionalMethodName, maskUrlCredentials, normalizeAddonInitResult, readErrorI18n, readNodePin, resolveSecretViewsIn, scopeKey, scrubKnownSecrets, withCapInputDefaults } from "@camstack/types/addon";
|
|
@@ -222,7 +222,7 @@ async function defaultDownloadTarball(url, destTgz) {
|
|
|
222
222
|
const res = await fetch(url);
|
|
223
223
|
if (!res.ok || !res.body) throw new Error(`HTTP ${res.status} downloading ${url}`);
|
|
224
224
|
const bytes = Buffer.from(await res.arrayBuffer());
|
|
225
|
-
await fs.promises.writeFile(destTgz, bytes);
|
|
225
|
+
await fs$1.promises.writeFile(destTgz, bytes);
|
|
226
226
|
}
|
|
227
227
|
async function defaultExtractTarball(tgzPath, destDir) {
|
|
228
228
|
await execFileAsync$3("tar", [
|
|
@@ -308,7 +308,7 @@ async function resolveUncached(options) {
|
|
|
308
308
|
argsPrefix: []
|
|
309
309
|
};
|
|
310
310
|
const cliPath = bootstrappedCliPath(options.cacheDir);
|
|
311
|
-
if (fs.existsSync(cliPath)) {
|
|
311
|
+
if (fs$1.existsSync(cliPath)) {
|
|
312
312
|
options.logger.info("system npm unavailable — using bootstrapped npm", { meta: { cliPath } });
|
|
313
313
|
return {
|
|
314
314
|
command: process.execPath,
|
|
@@ -320,12 +320,12 @@ async function resolveUncached(options) {
|
|
|
320
320
|
const registry = (options.registry ?? DEFAULT_REGISTRY).replace(/\/+$/, "");
|
|
321
321
|
const tarballUrl = tarballUrlOf(await (options.fetchJson ?? defaultFetchJson)(`${registry}/npm/latest`));
|
|
322
322
|
if (!tarballUrl) throw new Error(`registry metadata for 'npm' carries no dist.tarball (${registry})`);
|
|
323
|
-
await fs.promises.mkdir(options.cacheDir, { recursive: true });
|
|
323
|
+
await fs$1.promises.mkdir(options.cacheDir, { recursive: true });
|
|
324
324
|
const tgzPath = path.join(options.cacheDir, "npm-bootstrap.tgz");
|
|
325
325
|
await (options.downloadTarball ?? defaultDownloadTarball)(tarballUrl, tgzPath);
|
|
326
326
|
await (options.extractTarball ?? defaultExtractTarball)(tgzPath, options.cacheDir);
|
|
327
|
-
await fs.promises.rm(tgzPath, { force: true });
|
|
328
|
-
if (!fs.existsSync(cliPath)) throw new Error(`extracted npm tarball is missing ${cliPath}`);
|
|
327
|
+
await fs$1.promises.rm(tgzPath, { force: true });
|
|
328
|
+
if (!fs$1.existsSync(cliPath)) throw new Error(`extracted npm tarball is missing ${cliPath}`);
|
|
329
329
|
options.logger.info("npm bootstrapped", { meta: { cliPath } });
|
|
330
330
|
return {
|
|
331
331
|
command: process.execPath,
|
|
@@ -389,7 +389,7 @@ async function installManifestNativeDeps(addonDir, pkgRaw, logger, registry, npm
|
|
|
389
389
|
count: Object.keys(native).length
|
|
390
390
|
} });
|
|
391
391
|
try {
|
|
392
|
-
fs.writeFileSync(markerFile, markerHash);
|
|
392
|
+
fs$1.writeFileSync(markerFile, markerHash);
|
|
393
393
|
} catch (err) {
|
|
394
394
|
logger.warn("Failed to write native deps marker", { meta: {
|
|
395
395
|
markerFile,
|
|
@@ -427,7 +427,7 @@ async function installManifestNativeDeps(addonDir, pkgRaw, logger, registry, npm
|
|
|
427
427
|
}
|
|
428
428
|
await rebuildNativeDeps(addonDir, pending.map(([name]) => name), logger, npmCacheDir ?? defaultNpmCacheDir(), registry);
|
|
429
429
|
try {
|
|
430
|
-
fs.writeFileSync(markerFile, markerHash);
|
|
430
|
+
fs$1.writeFileSync(markerFile, markerHash);
|
|
431
431
|
} catch (err) {
|
|
432
432
|
logger.warn("Failed to write native deps marker", { meta: {
|
|
433
433
|
markerFile,
|
|
@@ -449,12 +449,12 @@ function copyPrebuiltNativeDep(name, addonDir, logger) {
|
|
|
449
449
|
if (source === target) continue;
|
|
450
450
|
if (!hasBuiltBinary(source)) continue;
|
|
451
451
|
try {
|
|
452
|
-
fs.rmSync(target, {
|
|
452
|
+
fs$1.rmSync(target, {
|
|
453
453
|
recursive: true,
|
|
454
454
|
force: true
|
|
455
455
|
});
|
|
456
|
-
fs.mkdirSync(path.dirname(target), { recursive: true });
|
|
457
|
-
fs.cpSync(source, target, {
|
|
456
|
+
fs$1.mkdirSync(path.dirname(target), { recursive: true });
|
|
457
|
+
fs$1.cpSync(source, target, {
|
|
458
458
|
recursive: true,
|
|
459
459
|
dereference: true
|
|
460
460
|
});
|
|
@@ -476,12 +476,12 @@ function copyPrebuiltNativeDep(name, addonDir, logger) {
|
|
|
476
476
|
}
|
|
477
477
|
/** A package dir is "built" when it carries a compiled `.node` or a prebuilds tree. */
|
|
478
478
|
function hasBuiltBinary(pkgDir) {
|
|
479
|
-
if (!fs.existsSync(path.join(pkgDir, "package.json"))) return false;
|
|
479
|
+
if (!fs$1.existsSync(path.join(pkgDir, "package.json"))) return false;
|
|
480
480
|
const releaseDir = path.join(pkgDir, "build", "Release");
|
|
481
481
|
try {
|
|
482
|
-
if (fs.existsSync(releaseDir) && fs.readdirSync(releaseDir).some((f) => f.endsWith(".node"))) return true;
|
|
482
|
+
if (fs$1.existsSync(releaseDir) && fs$1.readdirSync(releaseDir).some((f) => f.endsWith(".node"))) return true;
|
|
483
483
|
} catch {}
|
|
484
|
-
return fs.existsSync(path.join(pkgDir, "prebuilds"));
|
|
484
|
+
return fs$1.existsSync(path.join(pkgDir, "prebuilds"));
|
|
485
485
|
}
|
|
486
486
|
/** Candidate hoisted locations for `<name>`: NODE_PATH entries + ancestors of `addonDir`. */
|
|
487
487
|
function candidateHoistedDirs(name, addonDir) {
|
|
@@ -519,7 +519,7 @@ function hashDeclaration(deps) {
|
|
|
519
519
|
}
|
|
520
520
|
function markerMatches(markerFile, expected) {
|
|
521
521
|
try {
|
|
522
|
-
return fs.readFileSync(markerFile, "utf-8").trim() === expected;
|
|
522
|
+
return fs$1.readFileSync(markerFile, "utf-8").trim() === expected;
|
|
523
523
|
} catch {
|
|
524
524
|
return false;
|
|
525
525
|
}
|
|
@@ -5443,6 +5443,67 @@ function createChildrenBatchLoader(opts) {
|
|
|
5443
5443
|
} };
|
|
5444
5444
|
}
|
|
5445
5445
|
//#endregion
|
|
5446
|
+
//#region src/kernel/moleculer/accessory-prune-gate.ts
|
|
5447
|
+
function isSpecList(answer) {
|
|
5448
|
+
return Array.isArray(answer);
|
|
5449
|
+
}
|
|
5450
|
+
function classifyAccessoryRead(answer, ctx) {
|
|
5451
|
+
if (isSpecList(answer)) {
|
|
5452
|
+
if (!ctx.online) return {
|
|
5453
|
+
kind: "unknown",
|
|
5454
|
+
reason: "parent offline",
|
|
5455
|
+
children: answer
|
|
5456
|
+
};
|
|
5457
|
+
if (ctx.probedAt === 0) return {
|
|
5458
|
+
kind: "unknown",
|
|
5459
|
+
reason: "probe not yet completed",
|
|
5460
|
+
children: answer
|
|
5461
|
+
};
|
|
5462
|
+
return {
|
|
5463
|
+
kind: "successful",
|
|
5464
|
+
children: answer
|
|
5465
|
+
};
|
|
5466
|
+
}
|
|
5467
|
+
if (answer.kind === "unknown") return {
|
|
5468
|
+
kind: "unknown",
|
|
5469
|
+
reason: answer.reason,
|
|
5470
|
+
children: answer.known ?? []
|
|
5471
|
+
};
|
|
5472
|
+
return {
|
|
5473
|
+
kind: "successful",
|
|
5474
|
+
children: answer.children
|
|
5475
|
+
};
|
|
5476
|
+
}
|
|
5477
|
+
/** One per parent registration; in-memory on purpose (a restart starts over — the safe direction). */
|
|
5478
|
+
var AccessoryShrinkGate = class {
|
|
5479
|
+
/** childId → the probe (`lastProbedAt`) of the first successful read that lacked it. */
|
|
5480
|
+
#firstMissing = /* @__PURE__ */ new Map();
|
|
5481
|
+
/**
|
|
5482
|
+
* `missing` = the managed children a SUCCESSFUL read no longer lists. Never
|
|
5483
|
+
* call this for an unknown read.
|
|
5484
|
+
*/
|
|
5485
|
+
decide(missing, probedAt) {
|
|
5486
|
+
const missingSet = new Set(missing);
|
|
5487
|
+
for (const id of [...this.#firstMissing.keys()]) if (!missingSet.has(id)) this.#firstMissing.delete(id);
|
|
5488
|
+
const prune = [];
|
|
5489
|
+
const deferred = [];
|
|
5490
|
+
for (const id of missing) {
|
|
5491
|
+
const first = this.#firstMissing.get(id);
|
|
5492
|
+
if (first !== void 0 && probedAt > first) {
|
|
5493
|
+
prune.push(id);
|
|
5494
|
+
this.#firstMissing.delete(id);
|
|
5495
|
+
continue;
|
|
5496
|
+
}
|
|
5497
|
+
if (first === void 0) this.#firstMissing.set(id, probedAt);
|
|
5498
|
+
deferred.push(id);
|
|
5499
|
+
}
|
|
5500
|
+
return {
|
|
5501
|
+
prune,
|
|
5502
|
+
deferred
|
|
5503
|
+
};
|
|
5504
|
+
}
|
|
5505
|
+
};
|
|
5506
|
+
//#endregion
|
|
5446
5507
|
//#region src/kernel/moleculer/runtime-state-load.ts
|
|
5447
5508
|
/** A device build refused because its runtime state could not be loaded. */
|
|
5448
5509
|
var RuntimeStateLoadError = class extends Error {
|
|
@@ -6176,6 +6237,7 @@ function createBrokerDeviceManagerApi(opts) {
|
|
|
6176
6237
|
throw err;
|
|
6177
6238
|
}
|
|
6178
6239
|
const lifecycleHost = device;
|
|
6240
|
+
const shrinkGate = new AccessoryShrinkGate();
|
|
6179
6241
|
const runReconcile = async () => {
|
|
6180
6242
|
try {
|
|
6181
6243
|
await callDeviceManager(api, "registerDevice", {
|
|
@@ -6199,7 +6261,12 @@ function createBrokerDeviceManagerApi(opts) {
|
|
|
6199
6261
|
});
|
|
6200
6262
|
}
|
|
6201
6263
|
if (typeof lifecycleHost.getAccessoryChildren !== "function") return;
|
|
6202
|
-
const
|
|
6264
|
+
const probedAt = device.runtimeState?.getCapState("feature-probe")?.lastProbedAt ?? 0;
|
|
6265
|
+
const read = classifyAccessoryRead(lifecycleHost.getAccessoryChildren(), {
|
|
6266
|
+
online: device.online,
|
|
6267
|
+
probedAt
|
|
6268
|
+
});
|
|
6269
|
+
const specs = read.children;
|
|
6203
6270
|
const expected = new Set(specs.map((s) => `${device.stableId}-${s.stableIdSuffix}`));
|
|
6204
6271
|
await runBounded(specs, ACCESSORY_SPAWN_CONCURRENCY, async (spec) => {
|
|
6205
6272
|
try {
|
|
@@ -6217,24 +6284,42 @@ function createBrokerDeviceManagerApi(opts) {
|
|
|
6217
6284
|
});
|
|
6218
6285
|
}
|
|
6219
6286
|
});
|
|
6220
|
-
if (
|
|
6221
|
-
opts.logger.
|
|
6222
|
-
|
|
6223
|
-
|
|
6224
|
-
|
|
6287
|
+
if (read.kind === "unknown") {
|
|
6288
|
+
opts.logger.info("Accessory orphan reconciliation skipped — child list unknown", {
|
|
6289
|
+
tags: {
|
|
6290
|
+
deviceId: device.id,
|
|
6291
|
+
parentStableId: device.stableId
|
|
6292
|
+
},
|
|
6293
|
+
meta: {
|
|
6294
|
+
reason: read.reason,
|
|
6295
|
+
probedAt
|
|
6296
|
+
}
|
|
6297
|
+
});
|
|
6225
6298
|
return;
|
|
6226
6299
|
}
|
|
6227
6300
|
try {
|
|
6228
|
-
const
|
|
6229
|
-
|
|
6230
|
-
|
|
6231
|
-
|
|
6301
|
+
const missing = (await childrenLoader.load(device.id)).filter((child) => child.linkDeviceId === device.id && !expected.has(child.stableId));
|
|
6302
|
+
const decision = shrinkGate.decide(missing.map((child) => child.id), probedAt);
|
|
6303
|
+
if (decision.deferred.length > 0) opts.logger.info("Accessory children missing from a complete read — kept until a later probe agrees", {
|
|
6304
|
+
tags: {
|
|
6305
|
+
deviceId: device.id,
|
|
6306
|
+
parentStableId: device.stableId
|
|
6307
|
+
},
|
|
6308
|
+
meta: {
|
|
6309
|
+
childDeviceIds: [...decision.deferred],
|
|
6310
|
+
probedAt
|
|
6311
|
+
}
|
|
6312
|
+
});
|
|
6313
|
+
const confirmed = new Set(decision.prune);
|
|
6314
|
+
for (const child of missing) {
|
|
6315
|
+
if (!confirmed.has(child.id)) continue;
|
|
6232
6316
|
const live = registry.getById(child.id);
|
|
6233
6317
|
try {
|
|
6234
6318
|
if (live) await deviceApi.remove(child.id);
|
|
6235
6319
|
else await callDeviceManager(api, "removeDevice", { deviceId: child.id });
|
|
6236
6320
|
opts.logger.info("Removed orphan accessory child no longer in parent specs", {
|
|
6237
6321
|
tags: {
|
|
6322
|
+
deviceId: child.id,
|
|
6238
6323
|
parentDeviceId: device.id,
|
|
6239
6324
|
parentStableId: device.stableId
|
|
6240
6325
|
},
|
|
@@ -6247,6 +6332,7 @@ function createBrokerDeviceManagerApi(opts) {
|
|
|
6247
6332
|
} catch (err) {
|
|
6248
6333
|
opts.logger.warn("Failed to remove orphan accessory child", {
|
|
6249
6334
|
tags: {
|
|
6335
|
+
deviceId: child.id,
|
|
6250
6336
|
parentDeviceId: device.id,
|
|
6251
6337
|
parentStableId: device.stableId,
|
|
6252
6338
|
childDeviceId: child.id
|
|
@@ -7755,6 +7841,166 @@ function ipcParentLink(getCallOut) {
|
|
|
7755
7841
|
};
|
|
7756
7842
|
}
|
|
7757
7843
|
//#endregion
|
|
7844
|
+
//#region src/builtins/platform-probe/coral-accelerators.ts
|
|
7845
|
+
/**
|
|
7846
|
+
* Coral USB Edge TPU USB identifiers.
|
|
7847
|
+
*
|
|
7848
|
+
* The device enumerates as `1a6e:089a` (Global Unichip) BEFORE the libedgetpu
|
|
7849
|
+
* firmware loads, then re-enumerates as `18d1:9302` (Google) AFTER. Either id
|
|
7850
|
+
* means a Coral is physically attached, so both count as a positive signal.
|
|
7851
|
+
*/
|
|
7852
|
+
var CORAL_USB_IDS = [{
|
|
7853
|
+
vendor: "1a6e",
|
|
7854
|
+
product: "089a"
|
|
7855
|
+
}, {
|
|
7856
|
+
vendor: "18d1",
|
|
7857
|
+
product: "9302"
|
|
7858
|
+
}];
|
|
7859
|
+
/** The PCIe / M.2 Coral's PCI function id (Global Unichip "Apex"). */
|
|
7860
|
+
var CORAL_PCI_VENDOR = "0x1ac1";
|
|
7861
|
+
var CORAL_PCI_DEVICE = "0x089a";
|
|
7862
|
+
/** A unit the apex driver bound: `/sys/class/apex/apex_<N>` ↔ `/dev/apex_<N>`. */
|
|
7863
|
+
var APEX_ENTRY = /^apex_(\d+)$/;
|
|
7864
|
+
/**
|
|
7865
|
+
* Default install path of the libedgetpu delegate on the hub, provisioned
|
|
7866
|
+
* out-of-band by `/data/deps/edgetpu-install.sh` (it is a system shared
|
|
7867
|
+
* library, not a pip package). Overridable via `CAMSTACK_EDGETPU_LIB` — kept in
|
|
7868
|
+
* sync with the Python pool's own default in `inference_pool.py`.
|
|
7869
|
+
*/
|
|
7870
|
+
var DEFAULT_EDGETPU_LIB = "/data/deps/edgetpu/lib/libedgetpu.so.1";
|
|
7871
|
+
function countUsbCorals(fsx) {
|
|
7872
|
+
let count = 0;
|
|
7873
|
+
for (const device of fsx.listUsbDevices()) {
|
|
7874
|
+
const vendor = fsx.readUsbAttr(device, "idVendor").toLowerCase();
|
|
7875
|
+
const product = fsx.readUsbAttr(device, "idProduct").toLowerCase();
|
|
7876
|
+
if (CORAL_USB_IDS.some((id) => id.vendor === vendor && id.product === product)) count++;
|
|
7877
|
+
}
|
|
7878
|
+
return count;
|
|
7879
|
+
}
|
|
7880
|
+
function countPciCorals(fsx) {
|
|
7881
|
+
let count = 0;
|
|
7882
|
+
for (const device of fsx.listPciDevices()) {
|
|
7883
|
+
const vendor = fsx.readPciAttr(device, "vendor").toLowerCase();
|
|
7884
|
+
const product = fsx.readPciAttr(device, "device").toLowerCase();
|
|
7885
|
+
if (vendor === CORAL_PCI_VENDOR && product === CORAL_PCI_DEVICE) count++;
|
|
7886
|
+
}
|
|
7887
|
+
return count;
|
|
7888
|
+
}
|
|
7889
|
+
/**
|
|
7890
|
+
* PCIe units: each `/sys/class/apex/apex_N` is a unit the driver bound; it is
|
|
7891
|
+
* usable only when `/dev/apex_N` is in this process's view AND opens read/write.
|
|
7892
|
+
* PCI functions with the Coral id beyond the bound units have no driver.
|
|
7893
|
+
*/
|
|
7894
|
+
function classifyPci(fsx) {
|
|
7895
|
+
let usable = 0;
|
|
7896
|
+
let notAccessible = 0;
|
|
7897
|
+
for (const entry of fsx.listApexClass()) {
|
|
7898
|
+
const match = APEX_ENTRY.exec(entry);
|
|
7899
|
+
if (match === null) continue;
|
|
7900
|
+
const node = `/dev/apex_${match[1]}`;
|
|
7901
|
+
if (fsx.exists(node) && fsx.canOpen(node)) usable++;
|
|
7902
|
+
else notAccessible++;
|
|
7903
|
+
}
|
|
7904
|
+
const driverMissing = Math.max(0, countPciCorals(fsx) - usable - notAccessible);
|
|
7905
|
+
return {
|
|
7906
|
+
usable,
|
|
7907
|
+
notAccessible,
|
|
7908
|
+
driverMissing
|
|
7909
|
+
};
|
|
7910
|
+
}
|
|
7911
|
+
/**
|
|
7912
|
+
* Detect Coral Edge TPUs on USB and PCIe/M.2.
|
|
7913
|
+
*
|
|
7914
|
+
* - USB: every matching USB device counts (multiple Corals run concurrently).
|
|
7915
|
+
* - PCIe: the apex driver's units, each usable only if its device node opens;
|
|
7916
|
+
* a Coral PCI function the driver did not bind is `driver-missing`.
|
|
7917
|
+
* - Fallback: when NO Coral signal of either bus is visible but the libedgetpu
|
|
7918
|
+
* delegate is installed (a container whose `/sys` USB view is limited), one
|
|
7919
|
+
* USB Coral is assumed — never when a PCI Coral was seen, since the delegate
|
|
7920
|
+
* then says nothing about USB.
|
|
7921
|
+
*
|
|
7922
|
+
* Returns `null` only when no Coral was found at all; a present-but-unusable
|
|
7923
|
+
* Coral is reported with its typed reason, never as absent (D393/D315).
|
|
7924
|
+
*/
|
|
7925
|
+
function classifyCoralAccelerator(fsx) {
|
|
7926
|
+
const usb = countUsbCorals(fsx);
|
|
7927
|
+
const pci = classifyPci(fsx);
|
|
7928
|
+
const units = [];
|
|
7929
|
+
if (usb > 0) units.push({
|
|
7930
|
+
bus: "usb",
|
|
7931
|
+
count: usb
|
|
7932
|
+
});
|
|
7933
|
+
if (pci.usable > 0) units.push({
|
|
7934
|
+
bus: "pci",
|
|
7935
|
+
count: pci.usable
|
|
7936
|
+
});
|
|
7937
|
+
const unavailable = [];
|
|
7938
|
+
if (pci.driverMissing > 0) unavailable.push({
|
|
7939
|
+
bus: "pci",
|
|
7940
|
+
count: pci.driverMissing,
|
|
7941
|
+
reason: "driver-missing"
|
|
7942
|
+
});
|
|
7943
|
+
if (pci.notAccessible > 0) unavailable.push({
|
|
7944
|
+
bus: "pci",
|
|
7945
|
+
count: pci.notAccessible,
|
|
7946
|
+
reason: "device-not-accessible"
|
|
7947
|
+
});
|
|
7948
|
+
if (units.length > 0 || unavailable.length > 0) return unavailable.length > 0 ? {
|
|
7949
|
+
type: "coral-edgetpu",
|
|
7950
|
+
units,
|
|
7951
|
+
unavailable
|
|
7952
|
+
} : {
|
|
7953
|
+
type: "coral-edgetpu",
|
|
7954
|
+
units
|
|
7955
|
+
};
|
|
7956
|
+
const libPath = process.env["CAMSTACK_EDGETPU_LIB"] ?? DEFAULT_EDGETPU_LIB;
|
|
7957
|
+
if (fsx.exists(libPath)) return {
|
|
7958
|
+
type: "coral-edgetpu",
|
|
7959
|
+
units: [{
|
|
7960
|
+
bus: "usb",
|
|
7961
|
+
count: 1
|
|
7962
|
+
}]
|
|
7963
|
+
};
|
|
7964
|
+
return null;
|
|
7965
|
+
}
|
|
7966
|
+
function safeList(dir) {
|
|
7967
|
+
try {
|
|
7968
|
+
return fs.readdirSync(dir);
|
|
7969
|
+
} catch {
|
|
7970
|
+
return [];
|
|
7971
|
+
}
|
|
7972
|
+
}
|
|
7973
|
+
function safeRead(path) {
|
|
7974
|
+
try {
|
|
7975
|
+
return fs.readFileSync(path, "utf8").trim();
|
|
7976
|
+
} catch {
|
|
7977
|
+
return "";
|
|
7978
|
+
}
|
|
7979
|
+
}
|
|
7980
|
+
/** The real filesystem view: `/sys` for enumeration, `/dev` for access. */
|
|
7981
|
+
var nodeCoralFs = {
|
|
7982
|
+
listUsbDevices: () => safeList("/sys/bus/usb/devices"),
|
|
7983
|
+
readUsbAttr: (device, attr) => safeRead(`/sys/bus/usb/devices/${device}/${attr}`),
|
|
7984
|
+
listPciDevices: () => safeList("/sys/bus/pci/devices"),
|
|
7985
|
+
readPciAttr: (device, attr) => safeRead(`/sys/bus/pci/devices/${device}/${attr}`),
|
|
7986
|
+
listApexClass: () => safeList("/sys/class/apex"),
|
|
7987
|
+
canOpen: (path) => {
|
|
7988
|
+
try {
|
|
7989
|
+
fs.accessSync(path, fs.constants.R_OK | fs.constants.W_OK);
|
|
7990
|
+
return true;
|
|
7991
|
+
} catch {
|
|
7992
|
+
return false;
|
|
7993
|
+
}
|
|
7994
|
+
},
|
|
7995
|
+
exists: (path) => {
|
|
7996
|
+
try {
|
|
7997
|
+
return fs.existsSync(path);
|
|
7998
|
+
} catch {
|
|
7999
|
+
return false;
|
|
8000
|
+
}
|
|
8001
|
+
}
|
|
8002
|
+
};
|
|
8003
|
+
//#endregion
|
|
7758
8004
|
//#region src/kernel/hwaccel/hwaccel-resolver.ts
|
|
7759
8005
|
/**
|
|
7760
8006
|
* Platform-probe for hardware video decode acceleration.
|
|
@@ -7774,35 +8020,11 @@ function ipcParentLink(getCallOut) {
|
|
|
7774
8020
|
*/
|
|
7775
8021
|
function safeExistsSync(path) {
|
|
7776
8022
|
try {
|
|
7777
|
-
return fs.existsSync(path);
|
|
8023
|
+
return fs$1.existsSync(path);
|
|
7778
8024
|
} catch {
|
|
7779
8025
|
return false;
|
|
7780
8026
|
}
|
|
7781
8027
|
}
|
|
7782
|
-
/**
|
|
7783
|
-
* Detect a Coral USB Edge TPU: a matching USB device (`1a6e:089a` pre-init or
|
|
7784
|
-
* `18d1:9302` post-init) OR the installed libedgetpu delegate (the hub
|
|
7785
|
-
* provisions it out-of-band; its presence is a reliable "Coral is wired"
|
|
7786
|
-
* signal even where the container's `/sys` USB view is limited).
|
|
7787
|
-
*/
|
|
7788
|
-
function detectCoralUsb() {
|
|
7789
|
-
const CORAL_IDS = [{
|
|
7790
|
-
vendor: "1a6e",
|
|
7791
|
-
product: "089a"
|
|
7792
|
-
}, {
|
|
7793
|
-
vendor: "18d1",
|
|
7794
|
-
product: "9302"
|
|
7795
|
-
}];
|
|
7796
|
-
try {
|
|
7797
|
-
for (const device of fs.readdirSync("/sys/bus/usb/devices")) try {
|
|
7798
|
-
const base = `/sys/bus/usb/devices/${device}`;
|
|
7799
|
-
const vendor = fs.readFileSync(`${base}/idVendor`, "utf8").trim().toLowerCase();
|
|
7800
|
-
const product = fs.readFileSync(`${base}/idProduct`, "utf8").trim().toLowerCase();
|
|
7801
|
-
if (CORAL_IDS.some((id) => id.vendor === vendor && id.product === product)) return true;
|
|
7802
|
-
} catch {}
|
|
7803
|
-
} catch {}
|
|
7804
|
-
return safeExistsSync(process.env["CAMSTACK_EDGETPU_LIB"] ?? "/data/deps/edgetpu/lib/libedgetpu.so.1");
|
|
7805
|
-
}
|
|
7806
8028
|
/** Probe Linux GPU vendors by parsing /proc/bus/pci/devices or /sys/class/drm. */
|
|
7807
8029
|
function probeLinuxGpus() {
|
|
7808
8030
|
const signals = {
|
|
@@ -7811,17 +8033,17 @@ function probeLinuxGpus() {
|
|
|
7811
8033
|
hasIntelGpu: false,
|
|
7812
8034
|
hasRenderNode: false,
|
|
7813
8035
|
hasIntelNpu: safeExistsSync("/dev/accel/accel0"),
|
|
7814
|
-
|
|
8036
|
+
coral: classifyCoralAccelerator(nodeCoralFs)
|
|
7815
8037
|
};
|
|
7816
8038
|
signals.hasRenderNode = safeExistsSync("/dev/dri/renderD128");
|
|
7817
8039
|
if (safeExistsSync("/dev/nvidia0") || safeExistsSync("/proc/driver/nvidia/version")) signals.hasNvidiaGpu = true;
|
|
7818
8040
|
try {
|
|
7819
8041
|
const drmDir = "/sys/class/drm";
|
|
7820
|
-
if (fs.existsSync(drmDir)) for (const entry of fs.readdirSync(drmDir)) {
|
|
8042
|
+
if (fs$1.existsSync(drmDir)) for (const entry of fs$1.readdirSync(drmDir)) {
|
|
7821
8043
|
if (!entry.startsWith("card")) continue;
|
|
7822
8044
|
const vendorPath = `${drmDir}/${entry}/device/vendor`;
|
|
7823
8045
|
if (!safeExistsSync(vendorPath)) continue;
|
|
7824
|
-
const vendor = fs.readFileSync(vendorPath, "utf8").trim().toLowerCase();
|
|
8046
|
+
const vendor = fs$1.readFileSync(vendorPath, "utf8").trim().toLowerCase();
|
|
7825
8047
|
if (vendor === "0x10de") signals.hasNvidiaGpu = true;
|
|
7826
8048
|
else if (vendor === "0x1002") signals.hasAmdGpu = true;
|
|
7827
8049
|
else if (vendor === "0x8086") signals.hasIntelGpu = true;
|
|
@@ -7845,7 +8067,7 @@ function probePlatform() {
|
|
|
7845
8067
|
hasIntelGpu: false,
|
|
7846
8068
|
hasRenderNode: false,
|
|
7847
8069
|
hasIntelNpu: false,
|
|
7848
|
-
|
|
8070
|
+
coral: classifyCoralAccelerator(nodeCoralFs)
|
|
7849
8071
|
};
|
|
7850
8072
|
}
|
|
7851
8073
|
function pickBackendsForPlatform(signals) {
|
|
@@ -7936,7 +8158,7 @@ function mapSignalsToInferenceHardware(signals) {
|
|
|
7936
8158
|
return {
|
|
7937
8159
|
gpu: signals.hasNvidiaGpu ? { type: "nvidia" } : signals.hasAmdGpu ? { type: "amd" } : signals.hasIntelGpu ? { type: "intel" } : signals.hasRenderNode ? { type: "intel" } : null,
|
|
7938
8160
|
npu: signals.platform === "darwin" && signals.arch === "arm64" ? { type: "apple-ane" } : signals.hasIntelNpu ? { type: "intel-npu" } : null,
|
|
7939
|
-
coral: signals.
|
|
8161
|
+
coral: signals.coral
|
|
7940
8162
|
};
|
|
7941
8163
|
}
|
|
7942
8164
|
/**
|
|
@@ -8680,21 +8902,21 @@ function sleep(ms) {
|
|
|
8680
8902
|
* crashed holder) is stolen.
|
|
8681
8903
|
*/
|
|
8682
8904
|
async function withFileLock(lockPath, fn) {
|
|
8683
|
-
fs.mkdirSync(join(lockPath, ".."), { recursive: true });
|
|
8905
|
+
fs$1.mkdirSync(join(lockPath, ".."), { recursive: true });
|
|
8684
8906
|
for (;;) try {
|
|
8685
|
-
const fd = fs.openSync(lockPath, "wx");
|
|
8686
|
-
fs.closeSync(fd);
|
|
8907
|
+
const fd = fs$1.openSync(lockPath, "wx");
|
|
8908
|
+
fs$1.closeSync(fd);
|
|
8687
8909
|
break;
|
|
8688
8910
|
} catch {
|
|
8689
8911
|
try {
|
|
8690
|
-
if (Date.now() - fs.statSync(lockPath).mtimeMs > LOCK_STALE_MS) fs.rmSync(lockPath, { force: true });
|
|
8912
|
+
if (Date.now() - fs$1.statSync(lockPath).mtimeMs > LOCK_STALE_MS) fs$1.rmSync(lockPath, { force: true });
|
|
8691
8913
|
else await sleep(LOCK_POLL_MS);
|
|
8692
8914
|
} catch {}
|
|
8693
8915
|
}
|
|
8694
8916
|
try {
|
|
8695
8917
|
return await fn();
|
|
8696
8918
|
} finally {
|
|
8697
|
-
fs.rmSync(lockPath, { force: true });
|
|
8919
|
+
fs$1.rmSync(lockPath, { force: true });
|
|
8698
8920
|
}
|
|
8699
8921
|
}
|
|
8700
8922
|
/** Coalesce in-process + serialize cross-process for one binary id. */
|
|
@@ -10249,7 +10471,7 @@ async function buildAddonContext(runtime, declaration, dataDir, options) {
|
|
|
10249
10471
|
const addonId = declaration.id;
|
|
10250
10472
|
const nodeDataDir = process.env["CAMSTACK_DATA"] ?? dataDir;
|
|
10251
10473
|
const addonDataDir = path.resolve(nodeDataDir, "addons-data", addonId);
|
|
10252
|
-
fs.mkdirSync(addonDataDir, { recursive: true });
|
|
10474
|
+
fs$1.mkdirSync(addonDataDir, { recursive: true });
|
|
10253
10475
|
if (runtime.mode === "broker") ensureBindingSubscription(runtime.broker);
|
|
10254
10476
|
const regs = getRegistries(nodeId);
|
|
10255
10477
|
const workerResolver = {
|
|
@@ -11117,11 +11339,11 @@ function parseAddonsSpec(raw) {
|
|
|
11117
11339
|
}
|
|
11118
11340
|
async function loadAddonModule(addonId, addonDir) {
|
|
11119
11341
|
const pkgJsonPath = path.join(addonDir, "package.json");
|
|
11120
|
-
if (!fs.existsSync(pkgJsonPath)) throw new Error(`No package.json at ${addonDir}`);
|
|
11121
|
-
const declaration = JSON.parse(fs.readFileSync(pkgJsonPath, "utf-8"))["camstack"]?.addons?.find((a) => a.id === addonId);
|
|
11342
|
+
if (!fs$1.existsSync(pkgJsonPath)) throw new Error(`No package.json at ${addonDir}`);
|
|
11343
|
+
const declaration = JSON.parse(fs$1.readFileSync(pkgJsonPath, "utf-8"))["camstack"]?.addons?.find((a) => a.id === addonId);
|
|
11122
11344
|
if (!declaration?.entry) throw new Error(`Addon "${addonId}" not found in ${pkgJsonPath} manifest`);
|
|
11123
11345
|
const entryPath = path.resolve(addonDir, declaration.entry);
|
|
11124
|
-
if (!fs.existsSync(entryPath)) throw new Error(`Entry point not found: ${entryPath}`);
|
|
11346
|
+
if (!fs$1.existsSync(entryPath)) throw new Error(`Entry point not found: ${entryPath}`);
|
|
11125
11347
|
const modUnknown = await import(entryPath);
|
|
11126
11348
|
const mod = isRecord(modUnknown) ? modUnknown : {};
|
|
11127
11349
|
const AddonClass = resolveAddonClass(mod);
|
|
@@ -11318,7 +11540,7 @@ async function main() {
|
|
|
11318
11540
|
});
|
|
11319
11541
|
if (context.secrets !== void 0) addonSecrets.set(spec.addonId, context.secrets);
|
|
11320
11542
|
try {
|
|
11321
|
-
const pkgRaw = JSON.parse(fs.readFileSync(path.join(spec.addonDir, "package.json"), "utf-8"));
|
|
11543
|
+
const pkgRaw = JSON.parse(fs$1.readFileSync(path.join(spec.addonDir, "package.json"), "utf-8"));
|
|
11322
11544
|
await installManifestNativeDeps(spec.addonDir, pkgRaw, context.logger);
|
|
11323
11545
|
} catch (nativeErr) {
|
|
11324
11546
|
console.error(`[addon-runner] native deps install failed for "${spec.addonId}": ${errMsg(nativeErr)}`);
|
|
@@ -11381,7 +11603,7 @@ async function main() {
|
|
|
11381
11603
|
const refusal = findAddonRefusal(err);
|
|
11382
11604
|
if (refusal !== null) {
|
|
11383
11605
|
try {
|
|
11384
|
-
fs.writeSync(1, formatRunnerRefusalLine(nodeId, refusalReportOf(spec.addonId, refusal)));
|
|
11606
|
+
fs$1.writeSync(1, formatRunnerRefusalLine(nodeId, refusalReportOf(spec.addonId, refusal)));
|
|
11385
11607
|
} catch {}
|
|
11386
11608
|
process.exit(78);
|
|
11387
11609
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Ki as defineRecordKinds } from "./dist-B_GRPhnY.mjs";
|
|
2
2
|
import { S as backdatedNotBefore, _ as NameConstraints, a as KeyUsageFlags, c as Pkcs10CertificateRequest, d as SubjectKeyIdentifierExtension, f as X509Certificate$1, g as GeneralSubtrees, h as GeneralSubtree, i as Extension, l as Pkcs10CertificateRequestGenerator, m as cryptoProvider, n as BasicConstraintsExtension, o as KeyUsagesExtension, p as X509CertificateGenerator, r as ExtendedKeyUsageExtension, s as PemConverter, t as AuthorityKeyIdentifierExtension, u as SubjectAlternativeNameExtension, v as GeneralName, x as AsnConvert } from "./x509.es-DK__ETIe.mjs";
|
|
3
|
-
import { c as SERVER_AUTH_OID$1, r as MESH_CA_COMMON_NAME, s as MESH_CA_VALIDITY_DAYS, t as CLIENT_AUTH_OID } from "./constants-
|
|
3
|
+
import { c as SERVER_AUTH_OID$1, r as MESH_CA_COMMON_NAME, s as MESH_CA_VALIDITY_DAYS, t as CLIENT_AUTH_OID } from "./constants-FGjnsE2x.mjs";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
import { X509Certificate, createHash, createPrivateKey, randomBytes, webcrypto } from "node:crypto";
|
|
6
6
|
import { writeOwnerOnlyFileSync } from "@camstack/types/node";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const require_chunk = require("./chunk-Cek0wNdY.js");
|
|
2
|
-
const require_dist = require("./dist-
|
|
2
|
+
const require_dist = require("./dist-BZQjLPiz.js");
|
|
3
3
|
const require_x509_es = require("./x509.es-C4cOo48M.js");
|
|
4
|
-
const require_constants = require("./constants-
|
|
4
|
+
const require_constants = require("./constants-Njka8Cv6.js");
|
|
5
5
|
let zod = require("zod");
|
|
6
6
|
let node_crypto = require("node:crypto");
|
|
7
7
|
let _camstack_types_node = require("@camstack/types/node");
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-BZQjLPiz.js");
|
|
7
7
|
const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
|
|
8
8
|
let node_crypto = require("node:crypto");
|
|
9
9
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Oa as EventCategory, ni as BaseAddon, ti as errMsg, yt as addonPagesCapability } from "../../dist-B_GRPhnY.mjs";
|
|
2
2
|
import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
|
|
3
3
|
import { createHash, randomUUID } from "node:crypto";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-BZQjLPiz.js");
|
|
7
7
|
const require_settle_sources = require("../../settle-sources-Bhsy57y-.js");
|
|
8
8
|
let node_crypto = require("node:crypto");
|
|
9
9
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Oa as EventCategory, ni as BaseAddon, ti as errMsg, xt as addonWidgetsCapability } from "../../dist-B_GRPhnY.mjs";
|
|
2
2
|
import { t as settleSourcesWithTimeout } from "../../settle-sources-CDtNC8ub.mjs";
|
|
3
3
|
import { createHash, randomUUID } from "node:crypto";
|
|
4
4
|
import * as path$1 from "node:path";
|
|
@@ -3,9 +3,9 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-BZQjLPiz.js");
|
|
7
7
|
const require_read_all_rows$1 = require("../../read-all-rows-CVoO1ONM.js");
|
|
8
|
-
const require_phase6_declare_gate = require("../../phase6-declare-gate-
|
|
8
|
+
const require_phase6_declare_gate = require("../../phase6-declare-gate-Dag1_WR2.js");
|
|
9
9
|
//#region src/builtins/alerts/alert-episode-policy.ts
|
|
10
10
|
/**
|
|
11
11
|
* When does an alert open a new EPISODE, and which edge of it is announced?
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Ct as alertEpisodePayload, Hi as createEvent, Ki as defineRecordKinds, Oa as EventCategory, Sn as isAlertEpisodeSeverity, St as alertEpisodeId, i as AlertSchema, ni as BaseAddon, ti as errMsg, wt as alertsCapability, xn as isAlertEpisodeOpen } from "../../dist-B_GRPhnY.mjs";
|
|
2
2
|
import { t as require_read_all_rows } from "../../read-all-rows-TaPqdWNF.mjs";
|
|
3
|
-
import { t as resolvePhase6UseRecordsPathForHub } from "../../phase6-declare-gate-
|
|
3
|
+
import { t as resolvePhase6UseRecordsPathForHub } from "../../phase6-declare-gate-Lb-mrVvz.mjs";
|
|
4
4
|
//#region src/builtins/alerts/alert-episode-policy.ts
|
|
5
5
|
/**
|
|
6
6
|
* When does an alert open a new EPISODE, and which edge of it is announced?
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-BZQjLPiz.js");
|
|
7
7
|
//#region src/builtins/autotrack/autotrack-config.ts
|
|
8
8
|
var DEFAULT_AUTOTRACK_LOOP_CONFIG = {
|
|
9
9
|
deadZoneFraction: .5,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $
|
|
1
|
+
import { $i as isEvent, L as FIRST_LEVEL_MACRO_CLASSES, Oa as EventCategory, Ot as bareAddonId, ni as BaseAddon, rr as ptzAutotrackCapability, ti as errMsg } from "../../dist-B_GRPhnY.mjs";
|
|
2
2
|
//#region src/builtins/autotrack/autotrack-config.ts
|
|
3
3
|
var DEFAULT_AUTOTRACK_LOOP_CONFIG = {
|
|
4
4
|
deadZoneFraction: .5,
|