@trillboards/edge-sdk 0.2.66 → 0.2.68
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/deploy/macos/README.md +5 -5
- package/deploy/macos/TrillboardsSetupApp.m +16 -16
- package/deploy/macos/build-macos-pkg.sh +7 -7
- package/deploy/macos/pair.command +21 -21
- package/deploy/macos/scripts/postinstall +4 -2
- package/deploy/macos/test-install-pair.sh +4 -4
- package/deploy/windows/README.md +2 -2
- package/deploy/windows/bundle-windows-installer.ps1 +1 -1
- package/deploy/windows/installer.nsi +19 -13
- package/deploy/windows/setup-litertlm.ps1 +1 -1
- package/deploy/windows/trillboards-pair.cmd +17 -17
- package/deploy/windows/trillboards-setup.ps1 +18 -18
- package/dist/AudienceAnalyzeClient.d.ts +6 -0
- package/dist/AudienceAnalyzeClient.d.ts.map +1 -1
- package/dist/AudienceAnalyzeClient.js +18 -0
- package/dist/AudienceAnalyzeClient.js.map +1 -1
- package/dist/CloudSensingManager.d.ts +18 -0
- package/dist/CloudSensingManager.d.ts.map +1 -1
- package/dist/CloudSensingManager.js +39 -0
- package/dist/CloudSensingManager.js.map +1 -1
- package/dist/ConnectorStatusClient.d.ts +59 -0
- package/dist/ConnectorStatusClient.d.ts.map +1 -1
- package/dist/ConnectorStatusClient.js +9 -0
- package/dist/ConnectorStatusClient.js.map +1 -1
- package/dist/EdgeAgent.js +1 -1
- package/dist/analyzeCostObserver.d.ts +7 -3
- package/dist/analyzeCostObserver.d.ts.map +1 -1
- package/dist/analyzeCostObserver.js +7 -3
- package/dist/analyzeCostObserver.js.map +1 -1
- package/dist/autoSense.d.ts +14 -0
- package/dist/autoSense.d.ts.map +1 -1
- package/dist/autoSense.js +23 -0
- package/dist/autoSense.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +3 -0
- package/dist/cli.js.map +1 -1
- package/dist/connectorCadence.d.ts +16 -11
- package/dist/connectorCadence.d.ts.map +1 -1
- package/dist/connectorCadence.js +16 -11
- package/dist/connectorCadence.js.map +1 -1
- package/dist/connectorUpdate.d.ts +53 -0
- package/dist/connectorUpdate.d.ts.map +1 -1
- package/dist/connectorUpdate.js +91 -2
- package/dist/connectorUpdate.js.map +1 -1
- package/dist/diagnose.d.ts +1 -1
- package/dist/diagnose.js +1 -1
- package/dist/hostSpecs.d.ts +115 -0
- package/dist/hostSpecs.d.ts.map +1 -0
- package/dist/hostSpecs.js +264 -0
- package/dist/hostSpecs.js.map +1 -0
- package/dist/localSensing.d.ts.map +1 -1
- package/dist/localSensing.js +16 -1
- package/dist/localSensing.js.map +1 -1
- package/dist/sensingRunMode.d.ts +16 -0
- package/dist/sensingRunMode.d.ts.map +1 -1
- package/dist/sensingRunMode.js +1 -1
- package/dist/sensingRunMode.js.map +1 -1
- package/dist/setupMode.d.ts +7 -11
- package/dist/setupMode.d.ts.map +1 -1
- package/dist/setupMode.js +27 -31
- package/dist/setupMode.js.map +1 -1
- package/package.json +1 -1
package/dist/connectorUpdate.js
CHANGED
|
@@ -84,6 +84,7 @@ exports.manifestUrlForPlatform = manifestUrlForPlatform;
|
|
|
84
84
|
exports.parseVersionManifest = parseVersionManifest;
|
|
85
85
|
exports.isSafeToApplyUpdate = isSafeToApplyUpdate;
|
|
86
86
|
exports.busynessOf = busynessOf;
|
|
87
|
+
exports.connectorRuntimeFromHealth = connectorRuntimeFromHealth;
|
|
87
88
|
exports.isReleaseBakedEnough = isReleaseBakedEnough;
|
|
88
89
|
exports.checkForConnectorUpdate = checkForConnectorUpdate;
|
|
89
90
|
exports.startConnectorUpdateService = startConnectorUpdateService;
|
|
@@ -92,6 +93,7 @@ exports.startConnectorUpdates = startConnectorUpdates;
|
|
|
92
93
|
const http = __importStar(require("http"));
|
|
93
94
|
const https = __importStar(require("https"));
|
|
94
95
|
const ConnectorStatusClient_1 = require("./ConnectorStatusClient");
|
|
96
|
+
const hostSpecs_1 = require("./hostSpecs");
|
|
95
97
|
/** Where the release workflows publish every platform's manifest. */
|
|
96
98
|
exports.CONNECTOR_UPDATE_BASE_URL = 'https://screen.trillboards.com/connector';
|
|
97
99
|
/**
|
|
@@ -374,6 +376,40 @@ function busynessOf(health) {
|
|
|
374
376
|
: 0,
|
|
375
377
|
};
|
|
376
378
|
}
|
|
379
|
+
/**
|
|
380
|
+
* Map a `getSensingHealth()` reading onto what the RUNTIME resolved.
|
|
381
|
+
*
|
|
382
|
+
* Same shape and the same tolerance as `busynessOf` above, and for the same
|
|
383
|
+
* reason: a test fake or a future manager must not be able to crash the
|
|
384
|
+
* watcher. It differs in what an ABSENT field means. `busynessOf` reads absence
|
|
385
|
+
* as 0 because "holding nothing" is a safe, true default; here absence is
|
|
386
|
+
* `null` / `false` / 0, all of which read as "this box has said nothing", never
|
|
387
|
+
* as an observation. Returns `null` when there is no health at all, so the
|
|
388
|
+
* caller omits the whole block rather than reporting a manufactured one.
|
|
389
|
+
*
|
|
390
|
+
* The delegate is taken from `accelerator`, which the manager already folds
|
|
391
|
+
* pessimistically across feeds, and `delegateConfirmed` is carried through
|
|
392
|
+
* UNCHANGED — a requested delegate must never arrive on the server as an
|
|
393
|
+
* observed one.
|
|
394
|
+
*/
|
|
395
|
+
function connectorRuntimeFromHealth(health) {
|
|
396
|
+
if (!health)
|
|
397
|
+
return null;
|
|
398
|
+
const delegate = health.accelerator?.delegate;
|
|
399
|
+
const median = health.localAnalyze?.medianMs;
|
|
400
|
+
const samples = health.localAnalyze?.samples;
|
|
401
|
+
return {
|
|
402
|
+
delegate: delegate === 'gpu' || delegate === 'cpu' || delegate === 'mixed' ? delegate : null,
|
|
403
|
+
delegateConfirmed: health.accelerator?.delegateConfirmed === true,
|
|
404
|
+
gpuDemoted: health.accelerator?.gpuDemoted === true,
|
|
405
|
+
// `> 0` and not merely finite: a zero-millisecond frame is a clock artifact,
|
|
406
|
+
// and the direction of that error is "this hardware is faster than it is".
|
|
407
|
+
analyzeMedianMs: typeof median === 'number' && Number.isFinite(median) && median > 0
|
|
408
|
+
? median
|
|
409
|
+
: null,
|
|
410
|
+
analyzeSamples: Number.isFinite(samples) && samples >= 0 ? samples : 0,
|
|
411
|
+
};
|
|
412
|
+
}
|
|
377
413
|
/** Has this release sat long enough to be taken? */
|
|
378
414
|
function isReleaseBakedEnough(manifest, nowMs, minAgeMs = exports.CONNECTOR_UPDATE_MIN_RELEASE_AGE_MS) {
|
|
379
415
|
const published = Date.parse(manifest.publishedAt);
|
|
@@ -451,8 +487,23 @@ exports.CONNECTOR_UPDATE_SAFE_POINT_DEADLINE_MS = 2 * 60 * 60 * 1000;
|
|
|
451
487
|
*/
|
|
452
488
|
function startConnectorUpdateService(deps) {
|
|
453
489
|
const client = deps.client ?? new ConnectorManifestClient({ platform: deps.platform });
|
|
454
|
-
|
|
455
|
-
|
|
490
|
+
/**
|
|
491
|
+
* Is there a published manifest for this platform at all?
|
|
492
|
+
*
|
|
493
|
+
* FALSE on Linux, which publishes none — and this used to `return null` here,
|
|
494
|
+
* which killed the whole loop rather than only the update half. That was
|
|
495
|
+
* defensible while the loop's only job was update-related, and became a real
|
|
496
|
+
* hole the moment it also carried the HOST report: the shipped systemd unit
|
|
497
|
+
* (`deploy/systemd/trillboards-edge.service`) runs `auto-sense`, so a Linux
|
|
498
|
+
* connector sensed perfectly and reported NOTHING — not its hardware, not its
|
|
499
|
+
* runtime, not even the version it was running. Invisible in the fleet, and
|
|
500
|
+
* invisible in a way that looks exactly like "no Linux connectors exist".
|
|
501
|
+
*
|
|
502
|
+
* So the loop now runs in REPORT-ONLY mode instead: it reports every cycle and
|
|
503
|
+
* simply never checks for, stages, or applies an update. The update half is
|
|
504
|
+
* what needs a manifest; telling the server what this machine is does not.
|
|
505
|
+
*/
|
|
506
|
+
const hasManifest = Boolean(client.getEndpoint());
|
|
456
507
|
const log = deps.log ?? (() => { });
|
|
457
508
|
const now = deps.now ?? (() => Date.now());
|
|
458
509
|
const reportStatus = deps.reportStatus ?? ConnectorStatusClient_1.reportConnectorStatus;
|
|
@@ -461,6 +512,17 @@ function startConnectorUpdateService(deps) {
|
|
|
461
512
|
const setIntervalFn = deps.setIntervalFn ?? setInterval;
|
|
462
513
|
const clearIntervalFn = deps.clearIntervalFn ?? clearInterval;
|
|
463
514
|
const applier = deps.applier ?? null;
|
|
515
|
+
const hostSpecs = deps.hostSpecs ?? (() => {
|
|
516
|
+
try {
|
|
517
|
+
return (0, hostSpecs_1.connectorHostSpecs)();
|
|
518
|
+
}
|
|
519
|
+
catch {
|
|
520
|
+
// A spec probe that threw must never cost us the VERSION report we
|
|
521
|
+
// already have. `readConnectorHostSpecs` does not throw by construction;
|
|
522
|
+
// this is the belt for a future edit that makes it able to.
|
|
523
|
+
return null;
|
|
524
|
+
}
|
|
525
|
+
});
|
|
464
526
|
const requestExit = deps.requestExit ?? (() => process.exit(0));
|
|
465
527
|
const pollIntervalMs = deps.pollIntervalMs ?? exports.CONNECTOR_UPDATE_POLL_INTERVAL_MS;
|
|
466
528
|
const stageDeadlineMs = deps.stageDeadlineMs ?? exports.CONNECTOR_UPDATE_STAGE_DEADLINE_MS;
|
|
@@ -493,11 +555,24 @@ function startConnectorUpdateService(deps) {
|
|
|
493
555
|
*/
|
|
494
556
|
const report = async (check) => {
|
|
495
557
|
const outcome = applier?.readOutcome() ?? null;
|
|
558
|
+
const host = hostSpecs();
|
|
559
|
+
const runtime = deps.runtime ? deps.runtime() : null;
|
|
496
560
|
const result = await reportStatus({
|
|
497
561
|
apiBaseUrl: deps.apiBaseUrl,
|
|
498
562
|
deviceTokens: deps.deviceTokens,
|
|
499
563
|
report: {
|
|
500
564
|
connectorVersion: deps.installedVersion,
|
|
565
|
+
// Read at report time, both of them. The specs are memoised behind the
|
|
566
|
+
// closure so this is a map lookup; the runtime genuinely changes.
|
|
567
|
+
//
|
|
568
|
+
// SPREAD rather than assigned, so "nothing to say" is an ABSENT key and
|
|
569
|
+
// not an own property holding null. `{ host: null }` survives a
|
|
570
|
+
// hasOwnProperty check and shows up in Object.keys while disappearing
|
|
571
|
+
// through JSON.stringify — two structures for one meaning, and the one
|
|
572
|
+
// that reads as "reported" is the one that would clear a spec set we
|
|
573
|
+
// already have. Same discipline the availableVersion path documents.
|
|
574
|
+
...(host ? { host } : {}),
|
|
575
|
+
...(runtime ? { runtime } : {}),
|
|
501
576
|
// UNDEFINED when the manifest could not be read, so the server leaves
|
|
502
577
|
// its column alone. `check.availableVersion` is null both for "current"
|
|
503
578
|
// and for "unknown", and reporting the second as the first would let a
|
|
@@ -594,6 +669,19 @@ function startConnectorUpdateService(deps) {
|
|
|
594
669
|
const runCheck = async () => {
|
|
595
670
|
if (stopped)
|
|
596
671
|
return;
|
|
672
|
+
// REPORT-ONLY: no manifest exists for this platform, so there is nothing to
|
|
673
|
+
// fetch and nothing that could ever be applied. Report and stop there.
|
|
674
|
+
// `manifest: null` is what makes `report()` OMIT `availableVersion`, which
|
|
675
|
+
// is right — on this platform drift is genuinely unknown, not "current".
|
|
676
|
+
if (!hasManifest) {
|
|
677
|
+
await report({
|
|
678
|
+
installedVersion: deps.installedVersion,
|
|
679
|
+
publishedVersion: null,
|
|
680
|
+
availableVersion: null,
|
|
681
|
+
manifest: null,
|
|
682
|
+
});
|
|
683
|
+
return;
|
|
684
|
+
}
|
|
597
685
|
const check = await checkForConnectorUpdate(deps.installedVersion, client);
|
|
598
686
|
if (!check.manifest) {
|
|
599
687
|
log('[update] could not read the published version manifest — staleness unknown');
|
|
@@ -715,6 +803,7 @@ function startConnectorUpdates(opts) {
|
|
|
715
803
|
apiBaseUrl,
|
|
716
804
|
deviceTokens,
|
|
717
805
|
busyness: opts.busyness,
|
|
806
|
+
runtime: opts.runtime,
|
|
718
807
|
requestExit: opts.requestExit,
|
|
719
808
|
applier,
|
|
720
809
|
log: opts.log,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectorUpdate.js","sourceRoot":"","sources":["../src/connectorUpdate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"connectorUpdate.js","sourceRoot":"","sources":["../src/connectorUpdate.ts"],"names":[],"mappings":"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"}
|
package/dist/diagnose.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ export interface DiagnosticReport {
|
|
|
31
31
|
skipped: number;
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
|
-
declare const SDK_VERSION = "0.2.
|
|
34
|
+
declare const SDK_VERSION = "0.2.68";
|
|
35
35
|
declare function checkNodeVersion(): CheckResult;
|
|
36
36
|
declare function checkPlatform(): CheckResult;
|
|
37
37
|
declare function checkMemory(): CheckResult;
|
package/dist/diagnose.js
CHANGED
|
@@ -63,7 +63,7 @@ const localNetworkAccess_1 = require("./localNetworkAccess");
|
|
|
63
63
|
// ---------------------------------------------------------------------------
|
|
64
64
|
// SDK version — mirrors package.json; kept in sync by CI
|
|
65
65
|
// ---------------------------------------------------------------------------
|
|
66
|
-
const SDK_VERSION = '0.2.
|
|
66
|
+
const SDK_VERSION = '0.2.68';
|
|
67
67
|
exports._SDK_VERSION = SDK_VERSION;
|
|
68
68
|
// ---------------------------------------------------------------------------
|
|
69
69
|
// ANSI helpers (no external deps)
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* hostSpecs — what MACHINE this connector is running on.
|
|
3
|
+
*
|
|
4
|
+
* ── Why ─────────────────────────────────────────────────────────────────────
|
|
5
|
+
*
|
|
6
|
+
* The CCTV connector is LOCAL-INFERENCE ONLY, so the box spec IS the product
|
|
7
|
+
* spec: `docs/runbooks/cctv-local-inference-hardware-floor.md` resolves a
|
|
8
|
+
* hardware floor of 13.88 s/frame for 4 cameras, and which machines clear it is
|
|
9
|
+
* the whole sales question. Measured 2026-08-20, `earner_screen_devices` knew
|
|
10
|
+
* the SOFTWARE version of 38 of 38 live connectors and the HARDWARE of 0 —
|
|
11
|
+
* every one of `device_memory_gb`, `cpu_cores`, `cpu_abi`, `soc_name`, `os` was
|
|
12
|
+
* NULL on every connector row, because nothing on this side ever sent them.
|
|
13
|
+
*
|
|
14
|
+
* That is the `docs/runbooks/telemetry-producer-substrate.md` shape exactly: the
|
|
15
|
+
* consumer (typed columns, populated for the DOOH tablet fleet) existed the
|
|
16
|
+
* whole time and no producer reached it. So this is a producer, and it rides the
|
|
17
|
+
* beacon that already works (`ConnectorStatusClient` → `POST
|
|
18
|
+
* /v2/earner/cameras/connector-status`) rather than being a second one.
|
|
19
|
+
*
|
|
20
|
+
* ── Two rules that decide every field below ─────────────────────────────────
|
|
21
|
+
*
|
|
22
|
+
* 1. **NULL, never 0.** A `0` core count scores perfectly on any fill-rate
|
|
23
|
+
* monitor and is indistinguishable from a measurement. The audio stack's own
|
|
24
|
+
* sentinel reads `-1` on 100% of rows for precisely this reason
|
|
25
|
+
* (`docs/runbooks/audio-sensing-substrate.md`), and every coverage check on
|
|
26
|
+
* it passes. `os.cpus()` returns `[]` inside some containers and on some
|
|
27
|
+
* hardened Windows hosts; that is "we could not tell", and it must be
|
|
28
|
+
* representable as such.
|
|
29
|
+
*
|
|
30
|
+
* 2. **A probe that fails must SAY so.** `probeError` is the difference between
|
|
31
|
+
* a connector that could not read its own specs and a connector that has not
|
|
32
|
+
* reported yet — the second is `device_specs_updated_at IS NULL`, the first
|
|
33
|
+
* is a stamped row with a reason on it. The connector's recurring defect is a
|
|
34
|
+
* signal that cannot report its own failure
|
|
35
|
+
* (`docs/runbooks/cctv-connector-runtime-edge-cases.md`); this must not add
|
|
36
|
+
* another.
|
|
37
|
+
*
|
|
38
|
+
* ── What is deliberately NOT collected ──────────────────────────────────────
|
|
39
|
+
*
|
|
40
|
+
* Hostname, username, install paths, network topology, camera URLs, IPs, MAC
|
|
41
|
+
* addresses, serial numbers. Every field here is a property of the CHIP or the
|
|
42
|
+
* OS BUILD — the same class of fact the DOOH tablet fleet already reports —
|
|
43
|
+
* and none of it identifies a person, a site or a network. `os.hostname()` and
|
|
44
|
+
* `os.networkInterfaces()` are never read by this module.
|
|
45
|
+
*/
|
|
46
|
+
/** One machine's hardware, as that machine sees itself. Any field may be null. */
|
|
47
|
+
export interface ConnectorHostSpecs {
|
|
48
|
+
/** `process.platform` verbatim: 'win32' | 'darwin' | 'linux'. Never null. */
|
|
49
|
+
platform: string;
|
|
50
|
+
/**
|
|
51
|
+
* `process.arch` verbatim: 'x64' | 'arm64'. Never null.
|
|
52
|
+
*
|
|
53
|
+
* This one field settles the open question in the hardware-floor runbook —
|
|
54
|
+
* "x86 is UNMEASURED on the shipped path" — because it is the only thing
|
|
55
|
+
* separating an Apple-Silicon desk from the cheap mini-PC we would actually
|
|
56
|
+
* sell, and a CI runner cannot answer it for the field.
|
|
57
|
+
*/
|
|
58
|
+
arch: string;
|
|
59
|
+
/** `os.release()` — the kernel/OS build string. Null if it came back empty. */
|
|
60
|
+
osRelease: string | null;
|
|
61
|
+
/** e.g. 'Apple M4 Max', 'Intel(R) N100', 'AMD Ryzen 5 5600G'. */
|
|
62
|
+
cpuModel: string | null;
|
|
63
|
+
/** Logical CPUs (`os.cpus().length`). Null when the list is empty. */
|
|
64
|
+
cpuCoresLogical: number | null;
|
|
65
|
+
/**
|
|
66
|
+
* PHYSICAL cores, which is the number inference tracks. Null whenever the
|
|
67
|
+
* per-platform probe did not produce a usable answer — an 8-logical/4-physical
|
|
68
|
+
* box reported as 8 is the "looks like a measurement" failure rule 1 forbids.
|
|
69
|
+
*/
|
|
70
|
+
cpuCoresPhysical: number | null;
|
|
71
|
+
/** `os.totalmem()` in GiB, 2dp. Null when it reported nothing usable. */
|
|
72
|
+
totalMemoryGb: number | null;
|
|
73
|
+
/**
|
|
74
|
+
* Why a field above is null, when we know. Null means every probe answered.
|
|
75
|
+
* Carries no paths, no host names and no command output beyond an error
|
|
76
|
+
* message we generate ourselves.
|
|
77
|
+
*/
|
|
78
|
+
probeError: string | null;
|
|
79
|
+
}
|
|
80
|
+
/** Injectable seams, so the probes are testable without the host they describe. */
|
|
81
|
+
export interface HostSpecsProbeDeps {
|
|
82
|
+
platform?: string;
|
|
83
|
+
arch?: string;
|
|
84
|
+
release?: () => string;
|
|
85
|
+
cpus?: () => Array<{
|
|
86
|
+
model?: string;
|
|
87
|
+
}>;
|
|
88
|
+
totalmem?: () => number;
|
|
89
|
+
/** Runs a bounded, non-interactive command. Throws on failure. */
|
|
90
|
+
run?: (file: string, args: string[]) => string;
|
|
91
|
+
/** Reads a text file. Throws when absent. */
|
|
92
|
+
readTextFile?: (path: string) => string;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* How long a physical-core probe may take before it is abandoned.
|
|
96
|
+
*
|
|
97
|
+
* Small on purpose. This runs once per process on a box whose entire job is to
|
|
98
|
+
* keep looking at cameras; a spec probe that blocks the start of sensing has
|
|
99
|
+
* inverted the priority. A timeout is not a failure of the connector, it is a
|
|
100
|
+
* `null` core count and a `probeError` saying so.
|
|
101
|
+
*/
|
|
102
|
+
export declare const HOST_SPEC_PROBE_TIMEOUT_MS = 4000;
|
|
103
|
+
/**
|
|
104
|
+
* Read this host's specs. Pure with respect to `deps`, so a test can describe
|
|
105
|
+
* any machine — including a broken one — without being on it.
|
|
106
|
+
*
|
|
107
|
+
* NEVER throws. A connector whose spec probe threw would stop reporting its
|
|
108
|
+
* VERSION too, and the fleet view we do have is worth more than the one we are
|
|
109
|
+
* adding.
|
|
110
|
+
*/
|
|
111
|
+
export declare function readConnectorHostSpecs(deps?: HostSpecsProbeDeps): ConnectorHostSpecs;
|
|
112
|
+
export declare function connectorHostSpecs(deps?: HostSpecsProbeDeps): ConnectorHostSpecs;
|
|
113
|
+
/** Drop the memoised reading (tests only). */
|
|
114
|
+
export declare function resetConnectorHostSpecsCache(): void;
|
|
115
|
+
//# sourceMappingURL=hostSpecs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hostSpecs.d.ts","sourceRoot":"","sources":["../src/hostSpecs.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,kFAAkF;AAClF,MAAM,WAAW,kBAAkB;IACjC,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;OAOG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iEAAiE;IACjE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,sEAAsE;IACtE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,yEAAyE;IACzE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;;OAIG;IACH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,mFAAmF;AACnF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,KAAK,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,MAAM,CAAC;IACxB,kEAAkE;IAClE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;IAC/C,6CAA6C;IAC7C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,OAAQ,CAAC;AAmHhD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,kBAAuB,GAAG,kBAAkB,CA0ExF;AAYD,wBAAgB,kBAAkB,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,kBAAkB,CAIhF;AAED,8CAA8C;AAC9C,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD"}
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.HOST_SPEC_PROBE_TIMEOUT_MS = void 0;
|
|
37
|
+
exports.readConnectorHostSpecs = readConnectorHostSpecs;
|
|
38
|
+
exports.connectorHostSpecs = connectorHostSpecs;
|
|
39
|
+
exports.resetConnectorHostSpecsCache = resetConnectorHostSpecsCache;
|
|
40
|
+
const child_process_1 = require("child_process");
|
|
41
|
+
const fs_1 = require("fs");
|
|
42
|
+
const os = __importStar(require("os"));
|
|
43
|
+
/**
|
|
44
|
+
* How long a physical-core probe may take before it is abandoned.
|
|
45
|
+
*
|
|
46
|
+
* Small on purpose. This runs once per process on a box whose entire job is to
|
|
47
|
+
* keep looking at cameras; a spec probe that blocks the start of sensing has
|
|
48
|
+
* inverted the priority. A timeout is not a failure of the connector, it is a
|
|
49
|
+
* `null` core count and a `probeError` saying so.
|
|
50
|
+
*/
|
|
51
|
+
exports.HOST_SPEC_PROBE_TIMEOUT_MS = 4000;
|
|
52
|
+
/** Bytes in a GiB. `os.totalmem()` is bytes; `device_memory_gb` is GB. */
|
|
53
|
+
const BYTES_PER_GB = 1024 * 1024 * 1024;
|
|
54
|
+
/**
|
|
55
|
+
* A CPU model string long enough to be something other than a model string.
|
|
56
|
+
* Bounded because it lands in a TEXT column that a human reads in a fleet table.
|
|
57
|
+
*/
|
|
58
|
+
const MAX_CPU_MODEL_LEN = 128;
|
|
59
|
+
/** Nothing above this is a core count; it is a parse that went wrong. */
|
|
60
|
+
const MAX_PLAUSIBLE_CORES = 1024;
|
|
61
|
+
function defaultRun(file, args) {
|
|
62
|
+
return (0, child_process_1.execFileSync)(file, args, {
|
|
63
|
+
timeout: exports.HOST_SPEC_PROBE_TIMEOUT_MS,
|
|
64
|
+
encoding: 'utf8',
|
|
65
|
+
// Never surface a console window on a Windows store PC.
|
|
66
|
+
windowsHide: true,
|
|
67
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Parse a count out of a probe's stdout.
|
|
72
|
+
*
|
|
73
|
+
* Rejects 0 explicitly rather than letting it through as a number: zero
|
|
74
|
+
* physical cores is not a machine, it is a probe that answered with something
|
|
75
|
+
* we did not understand, and rule 1 says that must be `null`.
|
|
76
|
+
*/
|
|
77
|
+
function parseCount(raw) {
|
|
78
|
+
if (typeof raw !== 'string')
|
|
79
|
+
return null;
|
|
80
|
+
const match = raw.trim().match(/\d+/);
|
|
81
|
+
if (!match)
|
|
82
|
+
return null;
|
|
83
|
+
const n = Number.parseInt(match[0], 10);
|
|
84
|
+
if (!Number.isFinite(n) || n <= 0 || n > MAX_PLAUSIBLE_CORES)
|
|
85
|
+
return null;
|
|
86
|
+
return n;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Physical cores on Linux, from `/proc/cpuinfo`.
|
|
90
|
+
*
|
|
91
|
+
* Counts DISTINCT `physical id`:`core id` pairs — the only way to see through
|
|
92
|
+
* hyperthreading, since `os.cpus().length` counts threads. Many ARM SoCs emit
|
|
93
|
+
* neither key, and there the honest answer is `null`: an ARM board that reports
|
|
94
|
+
* no topology is not a board with zero cores, and it is not one where logical
|
|
95
|
+
* happens to equal physical either — we simply do not know.
|
|
96
|
+
*/
|
|
97
|
+
function linuxPhysicalCores(readTextFile) {
|
|
98
|
+
const text = readTextFile('/proc/cpuinfo');
|
|
99
|
+
const pairs = new Set();
|
|
100
|
+
let physicalId = null;
|
|
101
|
+
let coreId = null;
|
|
102
|
+
for (const line of text.split('\n')) {
|
|
103
|
+
const idx = line.indexOf(':');
|
|
104
|
+
if (idx < 0) {
|
|
105
|
+
// A blank line ends one processor block.
|
|
106
|
+
physicalId = null;
|
|
107
|
+
coreId = null;
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
const key = line.slice(0, idx).trim();
|
|
111
|
+
const value = line.slice(idx + 1).trim();
|
|
112
|
+
if (key === 'physical id')
|
|
113
|
+
physicalId = value;
|
|
114
|
+
else if (key === 'core id')
|
|
115
|
+
coreId = value;
|
|
116
|
+
if (physicalId !== null && coreId !== null) {
|
|
117
|
+
pairs.add(`${physicalId}:${coreId}`);
|
|
118
|
+
physicalId = null;
|
|
119
|
+
coreId = null;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return pairs.size > 0 && pairs.size <= MAX_PLAUSIBLE_CORES ? pairs.size : null;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Physical cores, per platform. Returns `{ cores, error }` so a failure is
|
|
126
|
+
* carried out rather than swallowed — the whole point of `probeError`.
|
|
127
|
+
*
|
|
128
|
+
* On Windows this shells out to PowerShell, which is what `enterpriseTrust.ts`
|
|
129
|
+
* already does for the certificate store: `powershell -Command` is the form a
|
|
130
|
+
* GPO `AllSigned` execution policy cannot block, because there is no script
|
|
131
|
+
* file to sign. `-NoProfile -NonInteractive` so a store PC's login profile can
|
|
132
|
+
* neither slow it down nor prompt.
|
|
133
|
+
*/
|
|
134
|
+
function probePhysicalCores(deps) {
|
|
135
|
+
try {
|
|
136
|
+
if (deps.platform === 'darwin') {
|
|
137
|
+
return { cores: parseCount(deps.run('sysctl', ['-n', 'hw.physicalcpu'])), error: null };
|
|
138
|
+
}
|
|
139
|
+
if (deps.platform === 'linux') {
|
|
140
|
+
return { cores: linuxPhysicalCores(deps.readTextFile), error: null };
|
|
141
|
+
}
|
|
142
|
+
if (deps.platform === 'win32') {
|
|
143
|
+
const out = deps.run('powershell', [
|
|
144
|
+
'-NoProfile',
|
|
145
|
+
'-NonInteractive',
|
|
146
|
+
'-Command',
|
|
147
|
+
'(Get-CimInstance -ClassName Win32_Processor | Measure-Object -Property NumberOfCores -Sum).Sum',
|
|
148
|
+
]);
|
|
149
|
+
return { cores: parseCount(out), error: null };
|
|
150
|
+
}
|
|
151
|
+
return { cores: null, error: `no physical-core probe for platform ${deps.platform}` };
|
|
152
|
+
}
|
|
153
|
+
catch (err) {
|
|
154
|
+
return {
|
|
155
|
+
cores: null,
|
|
156
|
+
error: `physical-core probe failed: ${err instanceof Error ? err.message : String(err)}`,
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Read this host's specs. Pure with respect to `deps`, so a test can describe
|
|
162
|
+
* any machine — including a broken one — without being on it.
|
|
163
|
+
*
|
|
164
|
+
* NEVER throws. A connector whose spec probe threw would stop reporting its
|
|
165
|
+
* VERSION too, and the fleet view we do have is worth more than the one we are
|
|
166
|
+
* adding.
|
|
167
|
+
*/
|
|
168
|
+
function readConnectorHostSpecs(deps = {}) {
|
|
169
|
+
const platform = deps.platform ?? process.platform;
|
|
170
|
+
const arch = deps.arch ?? process.arch;
|
|
171
|
+
const release = deps.release ?? (() => os.release());
|
|
172
|
+
const cpus = deps.cpus ?? (() => os.cpus());
|
|
173
|
+
const totalmem = deps.totalmem ?? (() => os.totalmem());
|
|
174
|
+
const run = deps.run ?? defaultRun;
|
|
175
|
+
const readTextFile = deps.readTextFile ?? ((p) => (0, fs_1.readFileSync)(p, 'utf8'));
|
|
176
|
+
const problems = [];
|
|
177
|
+
let osRelease = null;
|
|
178
|
+
try {
|
|
179
|
+
const raw = release();
|
|
180
|
+
osRelease = typeof raw === 'string' && raw.trim() ? raw.trim().slice(0, MAX_CPU_MODEL_LEN) : null;
|
|
181
|
+
}
|
|
182
|
+
catch (err) {
|
|
183
|
+
problems.push(`os.release() failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
184
|
+
}
|
|
185
|
+
if (osRelease === null && problems.length === 0)
|
|
186
|
+
problems.push('os.release() returned nothing');
|
|
187
|
+
let cpuModel = null;
|
|
188
|
+
let cpuCoresLogical = null;
|
|
189
|
+
try {
|
|
190
|
+
const list = cpus();
|
|
191
|
+
if (Array.isArray(list) && list.length > 0) {
|
|
192
|
+
cpuCoresLogical = list.length <= MAX_PLAUSIBLE_CORES ? list.length : null;
|
|
193
|
+
const model = typeof list[0]?.model === 'string' ? list[0].model.trim() : '';
|
|
194
|
+
// Collapse the run of spaces Intel pads its brand strings with, so
|
|
195
|
+
// 'Intel(R) Core(TM) i5' and 'Intel(R) Core(TM) i5' are ONE group in a
|
|
196
|
+
// fleet table instead of two.
|
|
197
|
+
cpuModel = model ? model.replace(/\s+/g, ' ').slice(0, MAX_CPU_MODEL_LEN) : null;
|
|
198
|
+
if (!cpuModel)
|
|
199
|
+
problems.push('os.cpus() reported no CPU model string');
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
// Real, and the reason rule 1 exists: `[]` here would become `0` cores
|
|
203
|
+
// under any `list.length` that is not guarded.
|
|
204
|
+
problems.push('os.cpus() returned an empty list');
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
catch (err) {
|
|
208
|
+
problems.push(`os.cpus() failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
209
|
+
}
|
|
210
|
+
let totalMemoryGb = null;
|
|
211
|
+
try {
|
|
212
|
+
const bytes = totalmem();
|
|
213
|
+
if (Number.isFinite(bytes) && bytes > 0) {
|
|
214
|
+
totalMemoryGb = Math.round((bytes / BYTES_PER_GB) * 100) / 100;
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
problems.push('os.totalmem() returned no usable value');
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
catch (err) {
|
|
221
|
+
problems.push(`os.totalmem() failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
222
|
+
}
|
|
223
|
+
const physical = probePhysicalCores({ platform, run, readTextFile });
|
|
224
|
+
if (physical.error)
|
|
225
|
+
problems.push(physical.error);
|
|
226
|
+
else if (physical.cores === null) {
|
|
227
|
+
// The probe RAN and produced nothing usable — an ARM `/proc/cpuinfo` with no
|
|
228
|
+
// topology keys, or output we could not parse. Distinct from a throw, and
|
|
229
|
+
// still a reason the column is null.
|
|
230
|
+
problems.push('physical-core probe produced no usable count');
|
|
231
|
+
}
|
|
232
|
+
return {
|
|
233
|
+
platform,
|
|
234
|
+
arch,
|
|
235
|
+
osRelease,
|
|
236
|
+
cpuModel,
|
|
237
|
+
cpuCoresLogical,
|
|
238
|
+
cpuCoresPhysical: physical.cores,
|
|
239
|
+
totalMemoryGb,
|
|
240
|
+
// Joined rather than kept as a list: the column is one TEXT field a human
|
|
241
|
+
// reads, and every entry is a sentence we wrote.
|
|
242
|
+
probeError: problems.length ? problems.join('; ').slice(0, 500) : null,
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* The process-wide reading, probed at most once.
|
|
247
|
+
*
|
|
248
|
+
* Hardware does not change under a running process, and the Windows arm spawns
|
|
249
|
+
* PowerShell — doing that on every hourly report would be a recurring cost for
|
|
250
|
+
* an answer that cannot have changed. Exposed with a reset seam so tests do not
|
|
251
|
+
* inherit each other's machine.
|
|
252
|
+
*/
|
|
253
|
+
let cached = null;
|
|
254
|
+
function connectorHostSpecs(deps) {
|
|
255
|
+
if (cached)
|
|
256
|
+
return cached;
|
|
257
|
+
cached = readConnectorHostSpecs(deps);
|
|
258
|
+
return cached;
|
|
259
|
+
}
|
|
260
|
+
/** Drop the memoised reading (tests only). */
|
|
261
|
+
function resetConnectorHostSpecsCache() {
|
|
262
|
+
cached = null;
|
|
263
|
+
}
|
|
264
|
+
//# sourceMappingURL=hostSpecs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hostSpecs.js","sourceRoot":"","sources":["../src/hostSpecs.ts"],"names":[],"mappings":"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"}
|