@trillboards/edge-sdk 0.2.52 → 0.2.53

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.
@@ -19,6 +19,7 @@ What lands on disk (home-domain, **no sudo / no admin password**):
19
19
  edge-sdk), WITHOUT the heavy local-inference stack
20
20
  share/com.trillboards.edge.plist LaunchAgent template
21
21
  share/ensure-litertlm.sh background local-AI retry supervisor
22
+ share/apply-update.sh signed-pkg updater with rollback
22
23
  share/models/gemma-4-E2B-it.litertlm required customer local VLM (removed after import)
23
24
  ~/Applications/Trillboards CCTV Setup.app native customer setup window (opened automatically)
24
25
  ~/Library/Application Support/Trillboards/trillboards.config.json (after pair, 0600)
@@ -31,8 +32,9 @@ bootstrapped automatically on first successful pair. The device token is
31
32
  delivered **only by pairing** — it is never baked into the `.pkg`.
32
33
 
33
34
  > The customer build includes Gemma and completes its local health check before
34
- > pairing. Cloud inference requires explicit configuration. `--skip-model` is
35
- > available only for engineering checks and must not be published.
35
+ > pairing. Cloud inference requires explicit configuration. The release lane
36
+ > also builds a signed, notarized `--skip-model` package for automatic upgrades;
37
+ > it is accepted only on an already-provisioned machine whose model is healthy.
36
38
 
37
39
  ---
38
40
 
@@ -83,13 +85,26 @@ Options:
83
85
  | `--arch arm64\|x64` | host arch | target architecture |
84
86
  | `--node-version vX.Y.Z` | `v22.22.0` | pinned Node runtime to bundle |
85
87
  | `--bundle-model` | on | include the pinned ~2.4 GB Gemma model required by customer setup |
86
- | `--skip-model` | off | build a slim engineering artifact that must not be published to customers |
88
+ | `--skip-model` | off | build the slim code-only upgrade package; it is not a valid first installer |
87
89
  | `--offline` | off | skip the official Node download; copy the host `node` |
88
90
  | `--sign-installer "Developer ID Installer: …"` | unset | `productsign` the pkg |
89
91
 
90
92
  The build is idempotent (it wipes its staging tree each run) and **smoke-tests
91
93
  the staged bundle** (`trillboards-edge version`) before packaging.
92
94
 
95
+ ### Automatic updates
96
+
97
+ Every paired connector checks the macOS version manifest at launch and every
98
+ six hours. Once a release has baked for six hours, the connector downloads the
99
+ content-addressed code-only package while sensing remains online. Before it can
100
+ be staged, macOS must validate the exact Aethercorp Developer ID Installer
101
+ identity, the notarization staple, Gatekeeper acceptance, size, and SHA-256.
102
+ The connector waits for a safe sensing point, exits cleanly, installs the
103
+ package, smoke-tests the new version, and relaunches the LaunchAgent. The old
104
+ tree remains as `~/Library/Trillboards/edge.previous` and is restored
105
+ automatically if installation, smoke testing, or relaunch fails. Existing
106
+ pairing and the local model are preserved; the setup window does not reopen.
107
+
93
108
  ### Local end-to-end test
94
109
 
95
110
  ```bash
@@ -0,0 +1,225 @@
1
+ #!/bin/bash
2
+ #
3
+ # Stage and apply the signed, notarized macOS connector update package.
4
+ # The running connector chooses the safe point; this detached helper owns the
5
+ # download, macOS trust checks, LaunchAgent handoff, swap, smoke test, and
6
+ # `.previous` rollback.
7
+
8
+ set -u
9
+
10
+ LABEL='com.trillboards.edge'
11
+ EXPECTED_SIGNER='Developer ID Installer: Aethercorp Inc (78JQ7882U9)'
12
+ MODE=''
13
+ INSTALL_DIR=''
14
+ UPDATE_URL=''
15
+ EXPECTED_VERSION=''
16
+ CURRENT_VERSION=''
17
+ EXPECTED_SHA256=''
18
+ EXPECTED_SIZE=''
19
+ WAIT_PID=''
20
+
21
+ while [ "$#" -gt 0 ]; do
22
+ case "$1" in
23
+ --stage|--commit) MODE="$1"; shift ;;
24
+ --install-dir) INSTALL_DIR="${2:-}"; shift 2 ;;
25
+ --update-url) UPDATE_URL="${2:-}"; shift 2 ;;
26
+ --expected-version) EXPECTED_VERSION="${2:-}"; shift 2 ;;
27
+ --current-version) CURRENT_VERSION="${2:-}"; shift 2 ;;
28
+ --expected-sha256) EXPECTED_SHA256="${2:-}"; shift 2 ;;
29
+ --expected-size) EXPECTED_SIZE="${2:-}"; shift 2 ;;
30
+ --wait-pid) WAIT_PID="${2:-}"; shift 2 ;;
31
+ *) printf '[apply-update] unknown argument: %s\n' "$1" >&2; exit 2 ;;
32
+ esac
33
+ done
34
+
35
+ log() {
36
+ /usr/bin/logger -t com.trillboards.edge "apply-update: $*" 2>/dev/null || true
37
+ printf '[apply-update] %s\n' "$*"
38
+ }
39
+
40
+ case "$EXPECTED_VERSION" in
41
+ [0-9]*.[0-9]*.[0-9]*) ;;
42
+ *) log 'invalid expected version'; exit 2 ;;
43
+ esac
44
+
45
+ # The updater is intentionally scoped to the one home-domain path the package
46
+ # installs. This makes every later rm/mv target resolved and bounded.
47
+ EXPECTED_INSTALL_DIR="${HOME}/Library/Trillboards/edge"
48
+ if [ "$INSTALL_DIR" != "$EXPECTED_INSTALL_DIR" ]; then
49
+ log "refusing unexpected install root: $INSTALL_DIR"
50
+ exit 2
51
+ fi
52
+
53
+ PARENT_DIR="$(dirname "$INSTALL_DIR")"
54
+ UPDATE_DIR="$PARENT_DIR/.edge-auto-update"
55
+ ARCHIVE="$UPDATE_DIR/connector-update.pkg"
56
+ MARKER="$UPDATE_DIR/staged.json"
57
+ OUTCOME="$UPDATE_DIR/outcome.json"
58
+ LOCK_DIR="$UPDATE_DIR/lock"
59
+ PREVIOUS="$PARENT_DIR/edge.previous"
60
+ PLIST="$HOME/Library/LaunchAgents/$LABEL.plist"
61
+
62
+ mkdir -p "$UPDATE_DIR" || exit 1
63
+ if ! mkdir "$LOCK_DIR" 2>/dev/null; then
64
+ log 'another update transaction is already running'
65
+ exit 0
66
+ fi
67
+ trap 'rmdir "$LOCK_DIR" 2>/dev/null || true' EXIT
68
+
69
+ json_escape() {
70
+ printf '%s' "$1" | /usr/bin/sed 's/\\/\\\\/g; s/"/\\"/g'
71
+ }
72
+
73
+ write_outcome() {
74
+ local result="$1" detail="$2" tmp="$OUTCOME.tmp.$$"
75
+ printf '{"attemptedAt":"%s","result":"%s","detail":"%s"}\n' \
76
+ "$(date -u +%Y-%m-%dT%H:%M:%SZ)" "$result" "$(json_escape "$detail")" > "$tmp" \
77
+ && mv -f "$tmp" "$OUTCOME"
78
+ }
79
+
80
+ fail_stage() {
81
+ log "$1"
82
+ rm -f "$ARCHIVE.download" "$MARKER.tmp.$$"
83
+ exit 1
84
+ }
85
+
86
+ configure_proxy() {
87
+ if [ -n "${HTTPS_PROXY:-}" ] || [ -n "${https_proxy:-}" ] || [ -n "${ALL_PROXY:-}" ]; then
88
+ return
89
+ fi
90
+ local proxy_conf enabled host port
91
+ proxy_conf="$(/usr/sbin/scutil --proxy 2>/dev/null || true)"
92
+ enabled="$(printf '%s\n' "$proxy_conf" | /usr/bin/awk '/HTTPSEnable/ {print $3}')"
93
+ [ "$enabled" = '1' ] || return
94
+ host="$(printf '%s\n' "$proxy_conf" | /usr/bin/awk '/HTTPSProxy/ {print $3}')"
95
+ port="$(printf '%s\n' "$proxy_conf" | /usr/bin/awk '/HTTPSPort/ {print $3}')"
96
+ [ -n "$host" ] || return
97
+ HTTPS_PROXY="http://$host${port:+:$port}"
98
+ export HTTPS_PROXY HTTP_PROXY="$HTTPS_PROXY"
99
+ }
100
+
101
+ verify_pkg() {
102
+ local pkg="$1" sha="$2" size="$3" actual_size actual_sha sig_out
103
+ [ -f "$pkg" ] || return 1
104
+ case "$size" in *[!0-9]*|'') return 1 ;; esac
105
+ printf '%s' "$sha" | /usr/bin/grep -Eq '^[0-9a-f]{64}$' || return 1
106
+
107
+ actual_size="$(/usr/bin/wc -c < "$pkg" | tr -d ' ')"
108
+ [ "$actual_size" = "$size" ] || { log "payload size mismatch: expected $size, got $actual_size"; return 1; }
109
+ actual_sha="$(/usr/bin/shasum -a 256 "$pkg" | /usr/bin/awk '{print $1}')"
110
+ [ "$actual_sha" = "$sha" ] || { log 'payload SHA-256 mismatch'; return 1; }
111
+
112
+ sig_out="$UPDATE_DIR/signature.txt"
113
+ /usr/sbin/pkgutil --check-signature "$pkg" > "$sig_out" 2>&1 || { log 'package signature is invalid'; return 1; }
114
+ /usr/bin/grep -Fq "$EXPECTED_SIGNER" "$sig_out" || { log 'package signer is not Aethercorp'; return 1; }
115
+ /usr/bin/xcrun stapler validate "$pkg" >/dev/null 2>&1 || { log 'package has no valid notarization staple'; return 1; }
116
+ /usr/sbin/spctl -a -vv --type install "$pkg" >/dev/null 2>&1 || { log 'Gatekeeper rejected the update package'; return 1; }
117
+ return 0
118
+ }
119
+
120
+ if [ "$MODE" = '--stage' ]; then
121
+ case "$UPDATE_URL" in https://*) ;; *) fail_stage 'update URL must use HTTPS' ;; esac
122
+ configure_proxy
123
+ log "downloading connector $EXPECTED_VERSION while sensing stays online"
124
+ /usr/bin/curl --fail --location --silent --show-error --proto '=https' --tlsv1.2 \
125
+ --connect-timeout 30 --max-time 3600 --output "$ARCHIVE.download" "$UPDATE_URL" \
126
+ || fail_stage 'update download failed'
127
+ verify_pkg "$ARCHIVE.download" "$EXPECTED_SHA256" "$EXPECTED_SIZE" \
128
+ || fail_stage 'update package verification failed'
129
+ mv -f "$ARCHIVE.download" "$ARCHIVE" || fail_stage 'could not retain verified package'
130
+ marker_tmp="$MARKER.tmp.$$"
131
+ printf '{"version":"%s","currentVersion":"%s","sha256":"%s","sizeBytes":%s}\n' \
132
+ "$EXPECTED_VERSION" "$CURRENT_VERSION" "$EXPECTED_SHA256" "$EXPECTED_SIZE" > "$marker_tmp" \
133
+ || fail_stage 'could not write staged marker'
134
+ mv -f "$marker_tmp" "$MARKER" || fail_stage 'could not publish staged marker'
135
+ log "connector $EXPECTED_VERSION is staged, signed, notarized, and verified"
136
+ exit 0
137
+ fi
138
+
139
+ if [ "$MODE" != '--commit' ]; then
140
+ log 'exactly one of --stage or --commit is required'
141
+ exit 2
142
+ fi
143
+
144
+ marker_version="$(/usr/bin/plutil -extract version raw "$MARKER" 2>/dev/null || true)"
145
+ marker_sha="$(/usr/bin/plutil -extract sha256 raw "$MARKER" 2>/dev/null || true)"
146
+ marker_size="$(/usr/bin/plutil -extract sizeBytes raw "$MARKER" 2>/dev/null || true)"
147
+ if [ "$marker_version" != "$EXPECTED_VERSION" ]; then
148
+ write_outcome 'rejected' 'staged version did not match the requested version'
149
+ log 'staged version mismatch; refusing update'
150
+ exit 1
151
+ fi
152
+ verify_pkg "$ARCHIVE" "$marker_sha" "$marker_size" || {
153
+ write_outcome 'rejected' 'staged package failed commit-time verification'
154
+ rm -f "$MARKER" "$ARCHIVE"
155
+ exit 1
156
+ }
157
+
158
+ # The connector launches us and then exits cleanly. Do not touch its mapped
159
+ # binaries until that PID is gone; a timeout leaves the current install intact.
160
+ if [ -n "$WAIT_PID" ]; then
161
+ waited=0
162
+ while kill -0 "$WAIT_PID" 2>/dev/null && [ "$waited" -lt 120 ]; do
163
+ sleep 1
164
+ waited=$((waited + 1))
165
+ done
166
+ if kill -0 "$WAIT_PID" 2>/dev/null; then
167
+ write_outcome 'failed' 'connector did not exit before the update deadline'
168
+ log 'connector did not exit; leaving current install untouched'
169
+ exit 1
170
+ fi
171
+ fi
172
+
173
+ restart_agent() {
174
+ [ -f "$PLIST" ] || return 1
175
+ /bin/launchctl bootout "gui/$(id -u)/$LABEL" >/dev/null 2>&1 || true
176
+ local attempt=1
177
+ while [ "$attempt" -le 10 ]; do
178
+ /bin/launchctl bootstrap "gui/$(id -u)" "$PLIST" >/dev/null 2>&1 || true
179
+ if /bin/launchctl print "gui/$(id -u)/$LABEL" >/dev/null 2>&1; then
180
+ /bin/launchctl kickstart -k "gui/$(id -u)/$LABEL" >/dev/null 2>&1 || true
181
+ return 0
182
+ fi
183
+ sleep 1
184
+ attempt=$((attempt + 1))
185
+ done
186
+ return 1
187
+ }
188
+
189
+ rollback() {
190
+ local detail="$1"
191
+ /bin/launchctl bootout "gui/$(id -u)/$LABEL" >/dev/null 2>&1 || true
192
+ rm -rf "$INSTALL_DIR"
193
+ if [ -d "$PREVIOUS" ]; then
194
+ mv "$PREVIOUS" "$INSTALL_DIR" || true
195
+ fi
196
+ if restart_agent; then
197
+ write_outcome 'failed' "$detail; previous version restored"
198
+ else
199
+ write_outcome 'failed' "$detail; previous files restored but the agent did not restart"
200
+ fi
201
+ rm -f "$MARKER" "$ARCHIVE"
202
+ log "$detail; rolled back"
203
+ exit 1
204
+ }
205
+
206
+ log "applying connector $EXPECTED_VERSION"
207
+ /bin/launchctl bootout "gui/$(id -u)/$LABEL" >/dev/null 2>&1 || true
208
+ rm -rf "$PREVIOUS"
209
+ mv "$INSTALL_DIR" "$PREVIOUS" || {
210
+ write_outcome 'failed' 'could not preserve the current install for rollback'
211
+ exit 1
212
+ }
213
+
214
+ /usr/sbin/installer -pkg "$ARCHIVE" -target CurrentUserHomeDirectory >/dev/null 2>&1 \
215
+ || rollback 'macOS Installer rejected the update'
216
+
217
+ installed_version="$($INSTALL_DIR/bin/trillboards-edge version 2>/dev/null || true)"
218
+ printf '%s' "$installed_version" | /usr/bin/grep -Fq "edge-sdk v$EXPECTED_VERSION" \
219
+ || rollback 'updated connector failed its version smoke test'
220
+
221
+ restart_agent || rollback 'updated connector installed but its LaunchAgent did not restart'
222
+ write_outcome 'success' "updated from $CURRENT_VERSION to $EXPECTED_VERSION"
223
+ rm -f "$MARKER" "$ARCHIVE" "$UPDATE_DIR/signature.txt"
224
+ log "connector $EXPECTED_VERSION installed and relaunched"
225
+ exit 0
@@ -31,7 +31,7 @@
31
31
  # [--sign-app "Developer ID Application: …"]
32
32
  # [--sign-installer "Developer ID Installer: …"]
33
33
  # [--bundle-model] (default; include the pinned ~2.4 GB VLM)
34
- # [--skip-model] (engineering-only slim build)
34
+ # [--skip-model] (code-only upgrade; not a first installer)
35
35
  # [--offline] (skip the official Node + ffmpeg downloads,
36
36
  # copy the host `node`/`ffmpeg` instead — for
37
37
  # air-gapped CI)
@@ -150,8 +150,8 @@ while [ $# -gt 0 ]; do
150
150
  esac
151
151
  done
152
152
 
153
- # Offline customer builds must provide the model cache explicitly. Slim builds
154
- # remain available only for focused engineering checks.
153
+ # Offline first-install builds must provide the model cache explicitly. Slim
154
+ # builds are the release lane's code-only upgrade artifact.
155
155
  if [ "$OFFLINE" -eq 1 ] && [ "$BUNDLE_MODEL" -eq 1 ] && [ -z "$GEMMA_MODEL_FILE" ]; then
156
156
  echo "--offline with the customer model bundle requires GEMMA_MODEL_FILE" >&2
157
157
  exit 2
@@ -398,7 +398,9 @@ cp "$PKG_ROOT/deploy/macos/com.trillboards.edge.plist" "$PAYLOAD/share/com.trill
398
398
  cp "$PKG_ROOT/deploy/macos/com.trillboards.litertlm.plist" "$PAYLOAD/share/com.trillboards.litertlm.plist"
399
399
  cp "$PKG_ROOT/deploy/macos/scripts/setup-litertlm.sh" "$PAYLOAD/share/setup-litertlm.sh"
400
400
  cp "$PKG_ROOT/deploy/macos/scripts/ensure-litertlm.sh" "$PAYLOAD/share/ensure-litertlm.sh"
401
- chmod +x "$PAYLOAD/share/setup-litertlm.sh" "$PAYLOAD/share/ensure-litertlm.sh"
401
+ cp "$PKG_ROOT/deploy/macos/apply-update.sh" "$PAYLOAD/share/apply-update.sh"
402
+ chmod +x "$PAYLOAD/share/setup-litertlm.sh" "$PAYLOAD/share/ensure-litertlm.sh" \
403
+ "$PAYLOAD/share/apply-update.sh"
402
404
 
403
405
  # ─── 7b. Stage the pre-bundled Gemma model (.litertlm) into the payload ───────
404
406
  # Stage the redistributable (Apache-2.0) Gemma 4 E2B LiteRT-LM model and verify
@@ -423,7 +425,7 @@ if [ "$BUNDLE_MODEL" -eq 1 ]; then
423
425
  printf '%s %s\n' "$GEMMA_MODEL_SHA256" "$GEMMA_MODEL_ID" > "$PAYLOAD/share/models/$GEMMA_MODEL_ID.sha256"
424
426
  log "Staged + SHA-verified bundled Gemma model ($(du -h "$GEMMA_OUT" | cut -f1))"
425
427
  else
426
- warn "Building an engineering-only slim package without local AI. Do not publish this artifact to customers."
428
+ warn "Building the code-only upgrade package without bundled local AI; it requires an already-provisioned Mac."
427
429
  fi
428
430
 
429
431
  # ─── 7c. Build the native customer setup application ─────────────────────────
@@ -603,12 +605,12 @@ else
603
605
  warn "cert (pass --sign-installer) then notarize (see deploy/macos/README.md)."
604
606
  fi
605
607
 
606
- # Keep deliberately slim engineering builds bounded so an unrelated payload
607
- # regression cannot masquerade as the bundled customer package.
608
+ # Keep code-only upgrade builds bounded so an unrelated payload regression
609
+ # cannot turn an automatic update into another multi-gigabyte first install.
608
610
  PKG_BYTES="$(stat -f%z "$PKG_OUT")"
609
611
  MAX_SLIM_PKG_BYTES="${MAX_SLIM_PKG_BYTES:-262144000}"
610
612
  if [ "$BUNDLE_MODEL" -eq 0 ] && [ "$PKG_BYTES" -gt "$MAX_SLIM_PKG_BYTES" ]; then
611
- die "slim engineering installer is $PKG_BYTES bytes; maximum is $MAX_SLIM_PKG_BYTES bytes"
613
+ die "code-only update package is $PKG_BYTES bytes; maximum is $MAX_SLIM_PKG_BYTES bytes"
612
614
  fi
613
615
 
614
616
  # ─── Done ────────────────────────────────────────────────────────────────────
@@ -8,7 +8,8 @@
8
8
  # - ensure the runtime dirs exist (Application Support config dir + Logs dir)
9
9
  # - make the bundled binaries executable (pkg payloads can lose +x)
10
10
  # - install and health-check the bundled local AI model
11
- # - open camera pairing only after local AI is ready
11
+ # - open camera pairing only after local AI is ready on a first install
12
+ # - keep an already-paired update headless
12
13
  # - DO NOT start the LaunchAgent: there is no paired config yet, and a
13
14
  # config-less cloud-sense crash-loops. The agent is bootstrapped only after
14
15
  # a successful setup (the installed pairing engine does that).
@@ -42,6 +43,9 @@ fi
42
43
  EDGE_ROOT="$USER_HOME/Library/Trillboards/edge"
43
44
  APP_SUPPORT="$USER_HOME/Library/Application Support/Trillboards"
44
45
  LOG_DIR="$USER_HOME/Library/Logs/Trillboards"
46
+ PAIRED_CONFIG="$APP_SUPPORT/trillboards.config.json"
47
+ IS_UPGRADE=0
48
+ [ -s "$PAIRED_CONFIG" ] && IS_UPGRADE=1
45
49
 
46
50
  log() { /usr/bin/logger -t com.trillboards.edge "postinstall: $*" 2>/dev/null || true; printf '[trillboards postinstall] %s\n' "$*"; }
47
51
 
@@ -118,7 +122,9 @@ APPS_DIR="$USER_HOME/Applications"
118
122
  SETUP_APP="$APPS_DIR/Trillboards CCTV Setup.app"
119
123
  LEGACY_PAIR_LAUNCHER="$APPS_DIR/Trillboards Pair.command"
120
124
  rm -f "$LEGACY_PAIR_LAUNCHER" 2>/dev/null || true
121
- if [ -d "$SETUP_APP" ] && [ -x "$EDGE_ROOT/bin/trillboards-pair" ]; then
125
+ if [ "$IS_UPGRADE" -eq 1 ]; then
126
+ log "paired connector upgrade detected; setup remains closed"
127
+ elif [ -d "$SETUP_APP" ] && [ -x "$EDGE_ROOT/bin/trillboards-pair" ]; then
122
128
  log "native setup app ready: \"$SETUP_APP\" (opening it)"
123
129
  if [ "$(id -u)" = "0" ] && [ -n "$OWNER" ] && [ "$OWNER" != "root" ]; then
124
130
  LAUNCH_UID="$(id -u "$OWNER" 2>/dev/null || echo '')"
@@ -149,5 +155,9 @@ else
149
155
  log "WARNING: launcher not executable at $EDGE_ROOT/bin/trillboards-edge"
150
156
  fi
151
157
 
152
- log "done. Connector and local AI installed; Trillboards CCTV Setup opened automatically."
158
+ if [ "$IS_UPGRADE" -eq 1 ]; then
159
+ log "done. Connector update installed; existing pairing preserved."
160
+ else
161
+ log "done. Connector and local AI installed; Trillboards CCTV Setup opened automatically."
162
+ fi
153
163
  exit 0
package/dist/EdgeAgent.js CHANGED
@@ -44,7 +44,7 @@ const edge_ads_1 = require("@trillboards/edge-ads");
44
44
  const CommandRouter_1 = require("./CommandRouter");
45
45
  const config_1 = require("./config");
46
46
  const dataDir_1 = require("./dataDir");
47
- const SDK_VERSION = '0.2.52';
47
+ const SDK_VERSION = '0.2.53';
48
48
  class EdgeAgent extends events_1.EventEmitter {
49
49
  constructor(config, deps) {
50
50
  super();
@@ -12,10 +12,11 @@
12
12
  * customer happened to re-download 2.6 GB and re-run the installer.
13
13
  *
14
14
  * THIS FILE ONLY CHECKS AND REPORTS. Applying an update is a separate,
15
- * platform-specific transaction — see `deploy/windows/apply-update.ps1` and
16
- * `connectorUpdateApply.ts`. The split is deliberate: "am I stale?" is a
17
- * question every platform can answer over one 401-byte GET, while "swap the
18
- * running binaries" is a Windows scheduled-task transaction with a rollback.
15
+ * platform-specific transaction — see `deploy/windows/apply-update.ps1`,
16
+ * `deploy/macos/apply-update.sh`, and their TypeScript appliers. The split is
17
+ * deliberate: "am I stale?" is a question every packaged platform can answer
18
+ * over one small GET, while "swap the running binaries" is an OS-specific
19
+ * service transaction with a rollback.
19
20
  *
20
21
  * ── WHY A 200 IS NOT AN ANSWER ──────────────────────────────────────────────
21
22
  * The CDN in front of these objects serves the marketing SPA as its default
@@ -73,11 +74,12 @@ export declare const CONNECTOR_UPDATE_MIN_RELEASE_AGE_MS: number;
73
74
  /**
74
75
  * The published manifest, after strict validation.
75
76
  *
76
- * `updateUrl`/`updateCatalogUrl` are the code-only update payload and its
77
- * Authenticode-signed hash catalog. They are OPTIONAL because a manifest
78
- * published before the applier shipped carries neither, and an install that
79
- * finds a newer version with no update payload must report the drift rather
80
- * than fail — reporting is the half that works on every platform.
77
+ * Update fields are OPTIONAL because manifests published before the appliers
78
+ * shipped carry none. Windows uses `updateUrl` plus an Authenticode-signed
79
+ * `updateCatalogUrl`; macOS uses `updateUrl` plus the code-only package's size
80
+ * and hash, while its Developer ID package signature is the trust anchor. An
81
+ * install that finds a newer version with no usable update payload reports the
82
+ * drift rather than failing.
81
83
  */
82
84
  export interface ConnectorVersionManifest {
83
85
  schemaVersion: number;
@@ -90,6 +92,10 @@ export interface ConnectorVersionManifest {
90
92
  downloadUrl: string;
91
93
  updateUrl?: string;
92
94
  updateCatalogUrl?: string;
95
+ /** macOS code-only package hash (the package signature is the trust anchor). */
96
+ updateSha256?: string;
97
+ /** macOS code-only package size, checked before its hash and signature. */
98
+ updateSizeBytes?: number;
93
99
  }
94
100
  /** A parsed `MAJOR.MINOR.PATCH`. */
95
101
  export interface ParsedConnectorVersion {
@@ -244,13 +250,14 @@ export declare function checkForConnectorUpdate(installedVersion: string, client
244
250
  * 2.4 GB model download. It is wrong here: this GET is 401 bytes, and deferring
245
251
  * it six hours would mean a store PC that reboots nightly never reports its
246
252
  * version at all — the fleet view would be blind to exactly the machines most
247
- * likely to be stale. Sixty seconds is long enough for sensing to come up first
248
- * and short enough that every start contributes a report.
253
+ * likely to be stale. The check is tiny and non-blocking, so schedule it on the
254
+ * next event-loop turn: every paired connector checks at launch without
255
+ * delaying sensing.
249
256
  *
250
257
  * A fresh release still cannot be applied on that first check: the bake window
251
258
  * is enforced separately, on `publishedAt`.
252
259
  */
253
- export declare const CONNECTOR_UPDATE_INITIAL_DELAY_MS = 60000;
260
+ export declare const CONNECTOR_UPDATE_INITIAL_DELAY_MS = 0;
254
261
  /** How often the apply state machine looks at the world while an update is in flight. */
255
262
  export declare const CONNECTOR_UPDATE_POLL_INTERVAL_MS = 60000;
256
263
  /**
@@ -288,8 +295,8 @@ export interface ConnectorUpdateServiceDeps {
288
295
  deviceTokens: string[];
289
296
  /**
290
297
  * The connector's current irrecoverable-work reading. Omit to CHECK and
291
- * REPORT without ever applying — which is what every platform but Windows
292
- * does, and what a caller with no manager to ask should do.
298
+ * REPORT without ever applying, which is what a caller with no manager to ask
299
+ * should do.
293
300
  */
294
301
  busyness?: () => ConnectorBusyness;
295
302
  /**
@@ -298,7 +305,7 @@ export interface ConnectorUpdateServiceDeps {
298
305
  * their existing shutdown closure so cameras are closed first.
299
306
  */
300
307
  requestExit?: () => void;
301
- /** Windows applier. Omit (or pass null) to check and report only. */
308
+ /** Platform applier. Omit (or pass null) to check and report only. */
302
309
  applier?: ConnectorUpdateApplier | null;
303
310
  log?: (message: string) => void;
304
311
  client?: ConnectorManifestClient;
@@ -317,7 +324,7 @@ export interface ConnectorUpdateServiceDeps {
317
324
  }
318
325
  /**
319
326
  * The whole update loop: check the manifest, tell the server where this install
320
- * stands, and — on Windows, with a verified payload and a quiet moment — apply.
327
+ * stands, and — with a verified payload and a quiet moment — apply.
321
328
  *
322
329
  * Every branch is best-effort. A failed check, a failed report, an applier that
323
330
  * will not launch: each is one log line, and sensing continues. The one thing
@@ -1 +1 @@
1
- {"version":3,"file":"connectorUpdate.d.ts","sourceRoot":"","sources":["../src/connectorUpdate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAIH,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAErE,qEAAqE;AACrE,eAAO,MAAM,yBAAyB,6CAA6C,CAAC;AAEpF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kCAAkC,QAAqB,CAAC;AAErE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,mCAAmC,QAAqB,CAAC;AAQtE;;;;;;;;GAQG;AACH,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,oCAAoC;AACpC,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,sBAAsB,GAAG,IAAI,CAKjF;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAOvF;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIzE;AAED,iDAAiD;AACjD,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,MAAkC,GAC1C,MAAM,GAAG,IAAI,CAIf;AAMD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,GAAG,IAAI,CAoClF;AAED,6DAA6D;AAC7D,MAAM,MAAM,eAAe,GAAG,CAC5B,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,KACd,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEnD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,sBAAsB,EAAE,eA4CjC,CAAC;AAEL,qDAAqD;AACrD,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;gBAGxC,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,EACnE,OAAO,CAAC,EAAE,eAAe;IAO3B,0EAA0E;IAC1E,WAAW,IAAI,MAAM,GAAG,IAAI;IAI5B;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC;CAWhE;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAExE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GACxF,iBAAiB,CAOnB;AAED,oDAAoD;AACpD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,wBAAwB,EAClC,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,MAA4C,GACrD,OAAO,CAMT;AAED,gCAAgC;AAChC,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,sEAAsE;IACtE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,2CAA2C;IAC3C,QAAQ,EAAE,wBAAwB,GAAG,IAAI,CAAC;CAC3C;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,oBAAoB,CAAC,CAY/B;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iCAAiC,QAAS,CAAC;AAExD,yFAAyF;AACzF,eAAO,MAAM,iCAAiC,QAAS,CAAC;AAExD;;;;;GAKG;AACH,eAAO,MAAM,kCAAkC,QAAiB,CAAC;AAEjE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uCAAuC,QAAqB,CAAC;AAE1E,uEAAuE;AACvE,MAAM,WAAW,4BAA4B;IAC3C,IAAI,IAAI,IAAI,CAAC;CACd;AAED,MAAM,WAAW,0BAA0B;IACzC,qEAAqE;IACrE,gBAAgB,EAAE,MAAM,CAAC;IACzB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,iBAAiB,CAAC;IACnC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,qEAAqE;IACrE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACxC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,qBAAqB,CAAC;IAC5C,YAAY,CAAC,EAAE,OAAO,UAAU,CAAC;IACjC,cAAc,CAAC,EAAE,OAAO,YAAY,CAAC;IACrC,aAAa,CAAC,EAAE,OAAO,WAAW,CAAC;IACnC,eAAe,CAAC,EAAE,OAAO,aAAa,CAAC;CACxC;AAID;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,0BAA0B,GAC/B,4BAA4B,GAAG,IAAI,CAsMrC;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;CAClD,GAAG,MAAM,EAAE,CAOX;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,MAAM,EAAE;QACN,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,KAAK,CAAC;YAAE,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,GAAG,IAAI,CAAC;KAClD,CAAC;IACF,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,iBAAiB,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,4BAA4B,GAAG,IAAI,CAmCtC"}
1
+ {"version":3,"file":"connectorUpdate.d.ts","sourceRoot":"","sources":["../src/connectorUpdate.ts"],"names":[],"mappings":"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"}
@@ -13,10 +13,11 @@
13
13
  * customer happened to re-download 2.6 GB and re-run the installer.
14
14
  *
15
15
  * THIS FILE ONLY CHECKS AND REPORTS. Applying an update is a separate,
16
- * platform-specific transaction — see `deploy/windows/apply-update.ps1` and
17
- * `connectorUpdateApply.ts`. The split is deliberate: "am I stale?" is a
18
- * question every platform can answer over one 401-byte GET, while "swap the
19
- * running binaries" is a Windows scheduled-task transaction with a rollback.
16
+ * platform-specific transaction — see `deploy/windows/apply-update.ps1`,
17
+ * `deploy/macos/apply-update.sh`, and their TypeScript appliers. The split is
18
+ * deliberate: "am I stale?" is a question every packaged platform can answer
19
+ * over one small GET, while "swap the running binaries" is an OS-specific
20
+ * service transaction with a rollback.
20
21
  *
21
22
  * ── WHY A 200 IS NOT AN ANSWER ──────────────────────────────────────────────
22
23
  * The CDN in front of these objects serves the marketing SPA as its default
@@ -227,6 +228,19 @@ function parseVersionManifest(body) {
227
228
  manifest.updateUrl = o.updateUrl;
228
229
  if (isNonEmptyString(o.updateCatalogUrl))
229
230
  manifest.updateCatalogUrl = o.updateCatalogUrl;
231
+ if ('updateSha256' in o) {
232
+ if (typeof o.updateSha256 !== 'string' || !/^[0-9a-f]{64}$/.test(o.updateSha256))
233
+ return null;
234
+ manifest.updateSha256 = o.updateSha256;
235
+ }
236
+ if ('updateSizeBytes' in o) {
237
+ if (typeof o.updateSizeBytes !== 'number' ||
238
+ !Number.isInteger(o.updateSizeBytes) ||
239
+ o.updateSizeBytes <= 0) {
240
+ return null;
241
+ }
242
+ manifest.updateSizeBytes = o.updateSizeBytes;
243
+ }
230
244
  return manifest;
231
245
  }
232
246
  /**
@@ -396,13 +410,14 @@ async function checkForConnectorUpdate(installedVersion, client) {
396
410
  * 2.4 GB model download. It is wrong here: this GET is 401 bytes, and deferring
397
411
  * it six hours would mean a store PC that reboots nightly never reports its
398
412
  * version at all — the fleet view would be blind to exactly the machines most
399
- * likely to be stale. Sixty seconds is long enough for sensing to come up first
400
- * and short enough that every start contributes a report.
413
+ * likely to be stale. The check is tiny and non-blocking, so schedule it on the
414
+ * next event-loop turn: every paired connector checks at launch without
415
+ * delaying sensing.
401
416
  *
402
417
  * A fresh release still cannot be applied on that first check: the bake window
403
418
  * is enforced separately, on `publishedAt`.
404
419
  */
405
- exports.CONNECTOR_UPDATE_INITIAL_DELAY_MS = 60000;
420
+ exports.CONNECTOR_UPDATE_INITIAL_DELAY_MS = 0;
406
421
  /** How often the apply state machine looks at the world while an update is in flight. */
407
422
  exports.CONNECTOR_UPDATE_POLL_INTERVAL_MS = 60000;
408
423
  /**
@@ -427,7 +442,7 @@ exports.CONNECTOR_UPDATE_STAGE_DEADLINE_MS = 60 * 60 * 1000;
427
442
  exports.CONNECTOR_UPDATE_SAFE_POINT_DEADLINE_MS = 2 * 60 * 60 * 1000;
428
443
  /**
429
444
  * The whole update loop: check the manifest, tell the server where this install
430
- * stands, and — on Windows, with a verified payload and a quiet moment — apply.
445
+ * stands, and — with a verified payload and a quiet moment — apply.
431
446
  *
432
447
  * Every branch is best-effort. A failed check, a failed report, an applier that
433
448
  * will not launch: each is one log line, and sensing continues. The one thing
@@ -591,8 +606,8 @@ function startConnectorUpdateService(deps) {
591
606
  return;
592
607
  if (phase !== 'idle')
593
608
  return;
594
- if (!check.manifest.updateUrl || !check.manifest.updateCatalogUrl) {
595
- log('[update] the published manifest carries no update payload — reported only');
609
+ if (!applier.canStage(check.manifest)) {
610
+ log('[update] the published manifest carries no usable update payload — reported only');
596
611
  return;
597
612
  }
598
613
  if (!isReleaseBakedEnough(check.manifest, now(), deps.minReleaseAgeMs)) {
@@ -681,6 +696,18 @@ function startConnectorUpdates(opts) {
681
696
  applier = null;
682
697
  }
683
698
  }
699
+ else if (platform === 'darwin') {
700
+ try {
701
+ // macOS uses a signed-pkg transaction and LaunchAgent handoff.
702
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
703
+ const mod = require('./connectorUpdateApplyMac');
704
+ const candidate = new mod.MacConnectorUpdateApplier({ log: opts.log });
705
+ applier = candidate.installRoot() ? candidate : null;
706
+ }
707
+ catch {
708
+ applier = null;
709
+ }
710
+ }
684
711
  try {
685
712
  return startConnectorUpdateService({
686
713
  installedVersion: opts.installedVersion,
@@ -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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"}
@@ -40,6 +40,8 @@ export declare const OUTCOME_FILE_NAME = "outcome.json";
40
40
  export interface ConnectorUpdateApplier {
41
41
  /** The packaged install root, or null when this is not a packaged install. */
42
42
  installRoot(): string | null;
43
+ /** Whether this platform has every manifest field required to stage safely. */
44
+ canStage(manifest: ConnectorVersionManifest): boolean;
43
45
  /** Start the download+verify phase, detached. Returns false if it could not start. */
44
46
  stage(opts: {
45
47
  manifest: ConnectorVersionManifest;
@@ -96,6 +98,7 @@ export declare class WindowsConnectorUpdateApplier implements ConnectorUpdateApp
96
98
  private readonly log;
97
99
  constructor(deps?: WindowsApplierDeps);
98
100
  installRoot(): string | null;
101
+ canStage(manifest: ConnectorVersionManifest): boolean;
99
102
  private updateDir;
100
103
  /**
101
104
  * Launch `apply-update.ps1` and forget about it.
@@ -1 +1 @@
1
- {"version":3,"file":"connectorUpdateApply.d.ts","sourceRoot":"","sources":["../src/connectorUpdateApply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGtC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEtE,yEAAyE;AACzE,eAAO,MAAM,eAAe,iBAAiB,CAAC;AAE9C,qEAAqE;AACrE,eAAO,MAAM,kBAAkB,gBAAgB,CAAC;AAEhD,wEAAwE;AACxE,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAEhD,8EAA8E;AAC9E,MAAM,WAAW,sBAAsB;IACrC,8EAA8E;IAC9E,WAAW,IAAI,MAAM,GAAG,IAAI,CAAC;IAC7B,sFAAsF;IACtF,KAAK,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,wBAAwB,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;IACrF,wEAAwE;IACxE,aAAa,IAAI,MAAM,GAAG,IAAI,CAAC;IAC/B,qEAAqE;IACrE,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;IACnE,iDAAiD;IACjD,WAAW,IAAI,sBAAsB,GAAG,IAAI,CAAC;IAC7C,+EAA+E;IAC/E,YAAY,IAAI,IAAI,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,GAAE,MAAyB,EACnC,MAAM,GAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAiC,GACvD,MAAM,GAAG,IAAI,CAMf;AAQD,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAc7E;AAED,gCAAgC;AAChC,qBAAa,6BAA8B,YAAW,sBAAsB;IAC1E,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAwB;gBAEhC,IAAI,GAAE,kBAAuB;IASzC,WAAW,IAAI,MAAM,GAAG,IAAI;IAI5B,OAAO,CAAC,SAAS;IAIjB;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM;IAmBd,KAAK,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,wBAAwB,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;IAcpF,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;IAUlE,aAAa,IAAI,MAAM,GAAG,IAAI;IAa9B,WAAW,IAAI,sBAAsB,GAAG,IAAI;IAY5C,YAAY,IAAI,IAAI;CASrB"}
1
+ {"version":3,"file":"connectorUpdateApply.d.ts","sourceRoot":"","sources":["../src/connectorUpdateApply.ts"],"names":[],"mappings":"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"}
@@ -139,6 +139,9 @@ class WindowsConnectorUpdateApplier {
139
139
  installRoot() {
140
140
  return this.root;
141
141
  }
142
+ canStage(manifest) {
143
+ return Boolean(manifest.updateUrl && manifest.updateCatalogUrl);
144
+ }
142
145
  updateDir() {
143
146
  return this.root ? path.join(this.root, exports.UPDATE_DIR_NAME) : null;
144
147
  }
@@ -1 +1 @@
1
- {"version":3,"file":"connectorUpdateApply.js","sourceRoot":"","sources":["../src/connectorUpdateApply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connectorUpdateApply.js","sourceRoot":"","sources":["../src/connectorUpdateApply.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * macOS connector updater handoff.
3
+ *
4
+ * The connector owns the safe-point decision. The shipped shell helper owns
5
+ * the signed-pkg transaction because it must use macOS trust, Installer, and
6
+ * launchd. Both stage and commit are detached so a download never blocks
7
+ * sensing and the commit helper survives the connector process it replaces.
8
+ */
9
+ import { spawn } from 'child_process';
10
+ import type { ConnectorVersionManifest } from './connectorUpdate';
11
+ import { type ConnectorUpdateApplier } from './connectorUpdateApply';
12
+ import type { ConnectorUpdateOutcome } from './ConnectorStatusClient';
13
+ export declare const MAC_UPDATE_DIR_NAME = ".edge-auto-update";
14
+ /** A packaged macOS install has node in <root>/bin and the helper in share/. */
15
+ export declare function resolveMacInstallRoot(execPath?: string, exists?: (p: string) => boolean): string | null;
16
+ export interface MacApplierDeps {
17
+ installRoot?: string | null;
18
+ spawnFn?: typeof spawn;
19
+ readFileFn?: (p: string) => string;
20
+ existsFn?: (p: string) => boolean;
21
+ unlinkFn?: (p: string) => void;
22
+ pid?: number;
23
+ log?: (msg: string) => void;
24
+ }
25
+ export declare class MacConnectorUpdateApplier implements ConnectorUpdateApplier {
26
+ private readonly root;
27
+ private readonly spawnFn;
28
+ private readonly readFileFn;
29
+ private readonly existsFn;
30
+ private readonly unlinkFn;
31
+ private readonly pid;
32
+ private readonly log;
33
+ constructor(deps?: MacApplierDeps);
34
+ installRoot(): string | null;
35
+ canStage(manifest: ConnectorVersionManifest): boolean;
36
+ private updateDir;
37
+ private launch;
38
+ stage(opts: {
39
+ manifest: ConnectorVersionManifest;
40
+ currentVersion: string;
41
+ }): boolean;
42
+ commit(opts: {
43
+ version: string;
44
+ currentVersion: string;
45
+ }): boolean;
46
+ stagedVersion(): string | null;
47
+ readOutcome(): ConnectorUpdateOutcome | null;
48
+ clearOutcome(): void;
49
+ }
50
+ //# sourceMappingURL=connectorUpdateApplyMac.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectorUpdateApplyMac.d.ts","sourceRoot":"","sources":["../src/connectorUpdateApplyMac.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGtC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAIL,KAAK,sBAAsB,EAC5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEtE,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AAEvD,gFAAgF;AAChF,wBAAgB,qBAAqB,CACnC,QAAQ,GAAE,MAAyB,EACnC,MAAM,GAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAiC,GACvD,MAAM,GAAG,IAAI,CAMf;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,qBAAa,yBAA0B,YAAW,sBAAsB;IACtE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwB;IACnD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAwB;gBAEhC,IAAI,GAAE,cAAmB;IAUrC,WAAW,IAAI,MAAM,GAAG,IAAI;IAI5B,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,GAAG,OAAO;IAIrD,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,MAAM;IAoBd,KAAK,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,wBAAwB,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;IAapF,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;IAWlE,aAAa,IAAI,MAAM,GAAG,IAAI;IAa9B,WAAW,IAAI,sBAAsB,GAAG,IAAI;IAY5C,YAAY,IAAI,IAAI;CASrB"}
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ /**
3
+ * macOS connector updater handoff.
4
+ *
5
+ * The connector owns the safe-point decision. The shipped shell helper owns
6
+ * the signed-pkg transaction because it must use macOS trust, Installer, and
7
+ * launchd. Both stage and commit are detached so a download never blocks
8
+ * sensing and the commit helper survives the connector process it replaces.
9
+ */
10
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ var desc = Object.getOwnPropertyDescriptor(m, k);
13
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
14
+ desc = { enumerable: true, get: function() { return m[k]; } };
15
+ }
16
+ Object.defineProperty(o, k2, desc);
17
+ }) : (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ o[k2] = m[k];
20
+ }));
21
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
22
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
23
+ }) : function(o, v) {
24
+ o["default"] = v;
25
+ });
26
+ var __importStar = (this && this.__importStar) || (function () {
27
+ var ownKeys = function(o) {
28
+ ownKeys = Object.getOwnPropertyNames || function (o) {
29
+ var ar = [];
30
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
31
+ return ar;
32
+ };
33
+ return ownKeys(o);
34
+ };
35
+ return function (mod) {
36
+ if (mod && mod.__esModule) return mod;
37
+ var result = {};
38
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
39
+ __setModuleDefault(result, mod);
40
+ return result;
41
+ };
42
+ })();
43
+ Object.defineProperty(exports, "__esModule", { value: true });
44
+ exports.MacConnectorUpdateApplier = exports.MAC_UPDATE_DIR_NAME = void 0;
45
+ exports.resolveMacInstallRoot = resolveMacInstallRoot;
46
+ const child_process_1 = require("child_process");
47
+ const fs = __importStar(require("fs"));
48
+ const path = __importStar(require("path"));
49
+ const connectorUpdateApply_1 = require("./connectorUpdateApply");
50
+ exports.MAC_UPDATE_DIR_NAME = '.edge-auto-update';
51
+ /** A packaged macOS install has node in <root>/bin and the helper in share/. */
52
+ function resolveMacInstallRoot(execPath = process.execPath, exists = (p) => fs.existsSync(p)) {
53
+ const binDir = path.dirname(execPath);
54
+ const root = path.dirname(binDir);
55
+ if (!root || root === binDir)
56
+ return null;
57
+ if (!exists(path.join(root, 'share', 'apply-update.sh')))
58
+ return null;
59
+ return root;
60
+ }
61
+ class MacConnectorUpdateApplier {
62
+ constructor(deps = {}) {
63
+ this.root = deps.installRoot !== undefined ? deps.installRoot : resolveMacInstallRoot();
64
+ this.spawnFn = deps.spawnFn ?? child_process_1.spawn;
65
+ this.readFileFn = deps.readFileFn ?? ((p) => fs.readFileSync(p, 'utf-8'));
66
+ this.existsFn = deps.existsFn ?? ((p) => fs.existsSync(p));
67
+ this.unlinkFn = deps.unlinkFn ?? ((p) => fs.unlinkSync(p));
68
+ this.pid = deps.pid ?? process.pid;
69
+ this.log = deps.log ?? (() => { });
70
+ }
71
+ installRoot() {
72
+ return this.root;
73
+ }
74
+ canStage(manifest) {
75
+ return Boolean(manifest.updateUrl && manifest.updateSha256 && manifest.updateSizeBytes);
76
+ }
77
+ updateDir() {
78
+ return this.root ? path.join(path.dirname(this.root), exports.MAC_UPDATE_DIR_NAME) : null;
79
+ }
80
+ launch(args) {
81
+ if (!this.root)
82
+ return false;
83
+ const script = path.join(this.root, 'share', 'apply-update.sh');
84
+ if (!this.existsFn(script))
85
+ return false;
86
+ try {
87
+ const child = this.spawnFn('/bin/bash', [script, ...args], {
88
+ detached: true,
89
+ stdio: 'ignore',
90
+ });
91
+ child.once('error', (err) => this.log(`[update] macOS applier failed to start: ${err.message}`));
92
+ child.unref();
93
+ return true;
94
+ }
95
+ catch (err) {
96
+ this.log(`[update] macOS applier could not be launched: ${err instanceof Error ? err.message : String(err)}`);
97
+ return false;
98
+ }
99
+ }
100
+ stage(opts) {
101
+ if (!this.root || !this.canStage(opts.manifest))
102
+ return false;
103
+ return this.launch([
104
+ '--stage',
105
+ '--install-dir', this.root,
106
+ '--update-url', opts.manifest.updateUrl,
107
+ '--expected-version', opts.manifest.connectorVersion,
108
+ '--current-version', opts.currentVersion,
109
+ '--expected-sha256', opts.manifest.updateSha256,
110
+ '--expected-size', String(opts.manifest.updateSizeBytes),
111
+ ]);
112
+ }
113
+ commit(opts) {
114
+ if (!this.root)
115
+ return false;
116
+ return this.launch([
117
+ '--commit',
118
+ '--install-dir', this.root,
119
+ '--expected-version', opts.version,
120
+ '--current-version', opts.currentVersion,
121
+ '--wait-pid', String(this.pid),
122
+ ]);
123
+ }
124
+ stagedVersion() {
125
+ const dir = this.updateDir();
126
+ if (!dir)
127
+ return null;
128
+ const marker = path.join(dir, connectorUpdateApply_1.STAGED_MARKER_NAME);
129
+ if (!this.existsFn(marker))
130
+ return null;
131
+ try {
132
+ const parsed = JSON.parse(this.readFileFn(marker));
133
+ return typeof parsed.version === 'string' && parsed.version.length > 0 ? parsed.version : null;
134
+ }
135
+ catch {
136
+ return null;
137
+ }
138
+ }
139
+ readOutcome() {
140
+ const dir = this.updateDir();
141
+ if (!dir)
142
+ return null;
143
+ const file = path.join(dir, connectorUpdateApply_1.OUTCOME_FILE_NAME);
144
+ if (!this.existsFn(file))
145
+ return null;
146
+ try {
147
+ return (0, connectorUpdateApply_1.parseUpdateOutcome)(this.readFileFn(file));
148
+ }
149
+ catch {
150
+ return null;
151
+ }
152
+ }
153
+ clearOutcome() {
154
+ const dir = this.updateDir();
155
+ if (!dir)
156
+ return;
157
+ try {
158
+ this.unlinkFn(path.join(dir, connectorUpdateApply_1.OUTCOME_FILE_NAME));
159
+ }
160
+ catch {
161
+ // Re-reporting is harmless; crashing the connector is not.
162
+ }
163
+ }
164
+ }
165
+ exports.MacConnectorUpdateApplier = MacConnectorUpdateApplier;
166
+ //# sourceMappingURL=connectorUpdateApplyMac.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectorUpdateApplyMac.js","sourceRoot":"","sources":["../src/connectorUpdateApplyMac.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ export interface DiagnosticReport {
31
31
  skipped: number;
32
32
  };
33
33
  }
34
- declare const SDK_VERSION = "0.2.52";
34
+ declare const SDK_VERSION = "0.2.53";
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.52';
66
+ const SDK_VERSION = '0.2.53';
67
67
  exports._SDK_VERSION = SDK_VERSION;
68
68
  // ---------------------------------------------------------------------------
69
69
  // ANSI helpers (no external deps)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trillboards/edge-sdk",
3
- "version": "0.2.52",
3
+ "version": "0.2.53",
4
4
  "description": "Composable cross-platform Edge AI SDK for audience sensing on DOOH/CTV devices",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",