@trillboards/edge-sdk 0.2.102 → 0.2.106

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.
Files changed (42) hide show
  1. package/deploy/detector/README.md +33 -0
  2. package/deploy/detector/ram-budget.js +225 -0
  3. package/deploy/detector/ram-budget.json +76 -0
  4. package/deploy/detector/tests/test_ram_budget.py +124 -0
  5. package/deploy/macos/com.trillboards.detector.plist +14 -3
  6. package/deploy/macos/scripts/setup-detector.sh +34 -0
  7. package/deploy/systemd/install.sh +14 -1
  8. package/deploy/systemd/setup-detector.sh +71 -0
  9. package/deploy/systemd/trillboards-detector.service +14 -5
  10. package/deploy/systemd/trillboards-edge.service +43 -2
  11. package/deploy/windows/install-update.ps1 +60 -0
  12. package/deploy/windows/register-detector-task.ps1 +45 -1
  13. package/deploy/windows/setup-detector.ps1 +53 -1
  14. package/dist/EdgeAgent.js +1 -1
  15. package/dist/autoSense.d.ts +6 -0
  16. package/dist/autoSense.d.ts.map +1 -1
  17. package/dist/autoSense.js +20 -1
  18. package/dist/autoSense.js.map +1 -1
  19. package/dist/cli.js +9 -1
  20. package/dist/cli.js.map +1 -1
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/config.js +13 -1
  23. package/dist/config.js.map +1 -1
  24. package/dist/dataDir.d.ts +50 -1
  25. package/dist/dataDir.d.ts.map +1 -1
  26. package/dist/dataDir.js +88 -2
  27. package/dist/dataDir.js.map +1 -1
  28. package/dist/diagnose.d.ts +1 -1
  29. package/dist/diagnose.js +1 -1
  30. package/dist/gemmaModelOta.d.ts.map +1 -1
  31. package/dist/gemmaModelOta.js +2 -1
  32. package/dist/gemmaModelOta.js.map +1 -1
  33. package/dist/mcp-server.d.ts.map +1 -1
  34. package/dist/mcp-server.js +17 -4
  35. package/dist/mcp-server.js.map +1 -1
  36. package/dist/modelOta.d.ts.map +1 -1
  37. package/dist/modelOta.js +6 -5
  38. package/dist/modelOta.js.map +1 -1
  39. package/dist/sensingRunMode.d.ts.map +1 -1
  40. package/dist/sensingRunMode.js +18 -2
  41. package/dist/sensingRunMode.js.map +1 -1
  42. package/package.json +1 -1
@@ -42,12 +42,21 @@ PrivateDevices=true
42
42
  IPAddressAllow=localhost
43
43
  IPAddressDeny=any
44
44
 
45
- # HOME decides where the model artifact is read from: setup-detector.sh and
46
- # `modelpath.py` both resolve ${TRILLBOARDS_DATA_DIR:-$HOME/.trillboards}/models,
47
- # matching config.ts's `DEFAULTS.dataDir`. If this and the connector's HOME ever
48
- # disagree, the detector is permanently unhealthy on a box whose artifact is
49
- # sitting right there.
45
+ # HOME is where the uv-installed tool and its venv live (see ExecStart). It is
46
+ # NOT where the model is read from any more.
50
47
  Environment=HOME=/opt/trillboards
48
+ # THE MODEL STORE, and it must equal trillboards-edge.service's.
49
+ #
50
+ # `modelpath.py` resolves ${TRILLBOARDS_DATA_DIR:-$HOME/.trillboards}/models and
51
+ # the connector's `resolveOnnxModelPath` resolves the identical expression — so
52
+ # the two agree by construction as long as they are handed the same value, and
53
+ # are permanently broken in silence if they are not. Leaving both on $HOME was
54
+ # not an option: the connector is the process that WRITES the artifact, and its
55
+ # unit is sandboxed to /var/lib/trillboards.
56
+ #
57
+ # READ-ONLY here, deliberately. ProtectSystem=strict leaves /var readable and
58
+ # this service only ever opens the .onnx; the connector owns every write to it.
59
+ Environment=TRILLBOARDS_DATA_DIR=/var/lib/trillboards
51
60
  EnvironmentFile=-/etc/trillboards/env
52
61
 
53
62
  [Install]
@@ -17,7 +17,21 @@ ExecStartPre=/usr/bin/node -e "require('@trillboards/edge-sdk')"
17
17
  # setup-litertlm.sh + trillboards-litertlm.service) and runs on-device; while the
18
18
  # model is still importing it WAITS and beacons rather than metering the cloud.
19
19
  # The paired config is written by install.sh; the token is never baked.
20
- ExecStart=/usr/bin/npx trillboards-edge auto-sense --config /etc/trillboards/config.json
20
+ #
21
+ # `--data-dir` IS ON THE COMMAND LINE AND MUST STAY THERE.
22
+ #
23
+ # `ReadWritePaths=` below is a literal — it cannot follow a variable — while
24
+ # `EnvironmentFile=` OUTRANKS `Environment=` in the same unit. Measured on
25
+ # systemd 252 with the two directives in both orders: the file wins either way.
26
+ # So a line in `/etc/trillboards/env` can always name a data directory this
27
+ # sandbox does not grant, and the connector would then die on the first write
28
+ # with a read-only-filesystem error naming a path nobody chose.
29
+ #
30
+ # An ExecStart argument is the one channel this unit fully controls: no
31
+ # environment file can reach it, and `resolveDataDir` ranks an explicit value
32
+ # above the environment. `TRILLBOARDS_DATA_DIR` below stays as well — it is what
33
+ # the DETECTOR reads, and it keeps the two processes' model store in agreement.
34
+ ExecStart=/usr/bin/npx trillboards-edge auto-sense --config /etc/trillboards/config.json --data-dir /var/lib/trillboards
21
35
  Restart=always
22
36
  RestartSec=10
23
37
  StartLimitInterval=300
@@ -30,7 +44,21 @@ SyslogIdentifier=trillboards-edge
30
44
  NoNewPrivileges=true
31
45
  ProtectSystem=strict
32
46
  ProtectHome=true
33
- ReadWritePaths=/var/lib/trillboards /opt/trillboards/models
47
+ # ONE writable path, and it is the one the connector actually writes.
48
+ #
49
+ # `/opt/trillboards/models` was here until 2026-08-26 and it was fatal. It is the
50
+ # DOCKER/k8s convention for `config.models.dir` (the legacy blazeface/yamnet ONNX
51
+ # pair — see deploy/docker/Dockerfile and deploy/helm/values.yaml); nothing on the
52
+ # systemd path ever writes it, and `install.sh` never created it. systemd REFUSES
53
+ # to start a unit whose ReadWritePaths names a path that does not exist —
54
+ # `status=226/NAMESPACE`, before ExecStart, so nothing in the connector's own logs
55
+ # says why — and this unit crash-looped there on every fresh Linux install.
56
+ #
57
+ # The fix is not to `mkdir` a directory nothing uses, and not to loosen
58
+ # ProtectSystem. It is that everything the connector writes now hangs off ONE
59
+ # state root, and TRILLBOARDS_DATA_DIR below points that root at exactly this
60
+ # path. `install.sh` already creates and chowns it.
61
+ ReadWritePaths=/var/lib/trillboards
34
62
  PrivateTmp=true
35
63
 
36
64
  # Resource limits
@@ -43,6 +71,19 @@ SupplementaryGroups=video audio
43
71
  # Environment
44
72
  Environment=NODE_ENV=production
45
73
  Environment=NODE_OPTIONS=--max-old-space-size=1536
74
+ # THE STATE ROOT, and it must equal trillboards-detector.service's.
75
+ #
76
+ # Without it the connector resolves its data root from $HOME — which systemd
77
+ # takes from the service account's passwd entry, `/opt/trillboards` — so the
78
+ # evidence spool, the OTA manifests and the downloaded `models/<id>/model.onnx`
79
+ # all land under `/opt/trillboards/.trillboards`, on a mount ProtectSystem=strict
80
+ # has made read-only. Every one of those writes is EROFS.
81
+ #
82
+ # `/var/lib/trillboards` is where machine-local variable state belongs, it is
83
+ # what ReadWritePaths grants, and install.sh has always created it. The detector
84
+ # unit sets the SAME value: the two processes must agree on the model store or
85
+ # the detector is permanently 503 on a box whose artifact is sitting right there.
86
+ Environment=TRILLBOARDS_DATA_DIR=/var/lib/trillboards
46
87
  EnvironmentFile=-/etc/trillboards/env
47
88
 
48
89
  [Install]
@@ -43,6 +43,65 @@ function Register-Connector([string]$Root) {
43
43
  if ($LASTEXITCODE -ne 0) { throw "Scheduled-task registration failed." }
44
44
  }
45
45
 
46
+ <#
47
+ Carry the detector's RAM ceiling onto an EXISTING install.
48
+
49
+ WHY THE UPDATE TRANSACTION HAS TO DO THIS. Nothing else on an upgraded box
50
+ will. This script only calls Register-Connector, and trillboards-edge.cmd
51
+ re-runs setup-detector.ps1 only when the task is MISSING or /health answers
52
+ 000 - so a HEALTHY detector keeps the task action it was registered with. A
53
+ box that updates normally would therefore keep an action with no
54
+ `--ram-budget-mb` for ever, every delivered specialist would stay `idle`, and
55
+ the fix would reach NEW INSTALLS ONLY. That is the exact shape of the
56
+ 2026-08-19 Windows BOM incident, and it is why this is here rather than left
57
+ to the repair path.
58
+
59
+ RE-REGISTER, NOT RE-PROVISION. `setup-detector.ps1` runs `uv tool install
60
+ --force`, which rebuilds a venv and needs the network; putting that inside an
61
+ update transaction would give the upgrade a new way to be slow and a new way
62
+ to fail. Re-registering the task is the whole of what has to change, and
63
+ register-detector-task.ps1 already stops the running service, replaces the
64
+ action and starts it again - so this both migrates and restarts it.
65
+
66
+ BEST EFFORT, ALWAYS. The detector is a cost optimisation: without it every
67
+ frame goes to the VLM exactly as it does today. It must never be able to fail
68
+ a customer's upgrade, so every path here returns quietly.
69
+ #>
70
+ function Update-DetectorTask([string]$Root) {
71
+ try {
72
+ $task = Get-ScheduledTask -TaskName "TrillboardsDetector" -ErrorAction SilentlyContinue
73
+ if (-not $task) { return } # nothing registered yet; the cmd repair path owns that case
74
+ # The interpreter path comes off the task we are replacing rather than being
75
+ # re-derived - setup-detector.ps1 resolved it under the USER profile, and
76
+ # re-deriving here could resolve somewhere else entirely. Same rule
77
+ # register-task.ps1 states for its own repair.
78
+ $exe = ($task.Actions | Select-Object -First 1).Execute
79
+ if (-not $exe) { return }
80
+
81
+ $register = Join-Path $Root "bin\register-detector-task.ps1"
82
+ if (-not (Test-Path -LiteralPath $register)) { return }
83
+
84
+ # Re-DERIVED, not carried: the box may have gained memory since it was
85
+ # installed, and the reservations this is computed from are committed values
86
+ # that move with a release. If it cannot be derived we pass nothing, and
87
+ # register-detector-task.ps1 keeps whatever ceiling the old action carried.
88
+ $budget = ""
89
+ $budgetScript = Join-Path $Root "bin\detector\ram-budget.js"
90
+ $nodeExe = Join-Path $Root "bin\node.exe"
91
+ if ((Test-Path -LiteralPath $budgetScript) -and (Test-Path -LiteralPath $nodeExe)) {
92
+ $derived = ("" + (& $nodeExe $budgetScript)).Trim()
93
+ if ($LASTEXITCODE -eq 0 -and $derived -match '^\d+$') { $budget = $derived }
94
+ }
95
+
96
+ $registerArgs = @('-DetectorPath', $exe)
97
+ if ($budget) { $registerArgs += @('-RamBudgetMb', $budget) }
98
+ & $register @registerArgs | Out-Null
99
+ Write-Host "Detector task migrated$(if ($budget) { " (RAM ceiling $budget MiB)" })."
100
+ } catch {
101
+ Write-Warning "Could not migrate the detector task: $($_.Exception.Message). Sensing is unaffected; every frame keeps going to the VLM."
102
+ }
103
+ }
104
+
46
105
  function Assert-ConnectorScheduled {
47
106
  # stop-existing.ps1 DISABLES the task so restart-on-failure cannot relaunch
48
107
  # node.exe mid-swap. A disabled task suppresses the AtLogOn trigger too, so
@@ -92,6 +151,7 @@ try {
92
151
  Assert-ConnectorVersion $InstallDir
93
152
  Register-Connector $InstallDir
94
153
  Assert-ConnectorScheduled
154
+ Update-DetectorTask $InstallDir
95
155
  if (Test-Path (Join-Path $InstallDir "trillboards.config.json")) {
96
156
  Start-ScheduledTask -TaskName "TrillboardsEdge" -ErrorAction Stop
97
157
  }
@@ -35,13 +35,48 @@
35
35
  param(
36
36
  [Parameter(Mandatory = $true)][string]$DetectorPath,
37
37
  [string]$Port = "9380",
38
- [string]$LogFile = ""
38
+ [string]$LogFile = "",
39
+ # The portfolio RAM ceiling, in MiB, DERIVED FROM THIS MACHINE by
40
+ # deploy/detector/ram-budget.js and passed in by setup-detector.ps1.
41
+ #
42
+ # EMPTY IS A REAL VALUE AND MUST STAY REACHABLE. `registry.py::_admit` treats
43
+ # an absent ceiling as "nobody has told me one" and refuses to make a second
44
+ # model resident rather than inventing a number, which is the correct thing
45
+ # for this task to say when the box could not be measured. A default here
46
+ # would make this file a second allocation authority - and one that cannot see
47
+ # how much memory the machine has.
48
+ [string]$RamBudgetMb = ""
39
49
  )
40
50
  $ErrorActionPreference = "Stop"
41
51
 
42
52
  $TaskName = "TrillboardsDetector"
43
53
  $UserId = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
44
54
 
55
+ # RECOVER THE CEILING FROM THE TASK WE ARE REPLACING, when the caller did not
56
+ # supply one.
57
+ #
58
+ # register-task.ps1 repairs a non-headless TrillboardsDetector inside its own
59
+ # elevated pass and calls us with ONLY -DetectorPath. Without this, the empty
60
+ # default would win and the replacement action would silently lose
61
+ # --ram-budget-mb -- turning a box that HAD a ceiling back into one that refuses
62
+ # every specialist, on a path whose whole purpose is repair.
63
+ #
64
+ # It is the same idiom that caller already applies to the interpreter path:
65
+ # "Recover ... from the task we are replacing rather than re-deriving it".
66
+ # Re-deriving here would also be wrong for a subtler reason -- an elevated
67
+ # repair pass may not see the same machine state the original derivation did,
68
+ # and a repair must not quietly change a value nobody asked it to change.
69
+ if ([string]::IsNullOrWhiteSpace($RamBudgetMb)) {
70
+ try {
71
+ $existingAction = (Get-ScheduledTask -TaskName $TaskName -ErrorAction Stop).Actions |
72
+ Select-Object -First 1
73
+ if ($existingAction -and $existingAction.Arguments -match '--ram-budget-mb\s+(\d+)') {
74
+ $RamBudgetMb = $Matches[1]
75
+ Write-Host "Carrying the existing RAM ceiling ($RamBudgetMb MiB) onto the replacement task."
76
+ }
77
+ } catch { }
78
+ }
79
+
45
80
  if ([string]::IsNullOrWhiteSpace($LogFile)) {
46
81
  $LogFile = Join-Path (Join-Path $env:LOCALAPPDATA "Trillboards\logs") "detector.service.log"
47
82
  }
@@ -51,6 +86,15 @@ try { New-Item -ItemType Directory -Force -Path (Split-Path -Parent $LogFile) |
51
86
  # Loopback only -- LocalDetectorClient is local; nothing off-box has any
52
87
  # business reaching this.
53
88
  $argument = 'serve --host 127.0.0.1 --port ' + $Port + ' --log-file "' + $LogFile + '"'
89
+ # Appended only when it was derived, and validated here rather than trusted:
90
+ # this string becomes a command line, and a malformed one would either fail the
91
+ # service's own argument parse on every restart or - worse - be silently
92
+ # reinterpreted. Digits only.
93
+ if ($RamBudgetMb -match '^\d+$') {
94
+ $argument += ' --ram-budget-mb ' + $RamBudgetMb
95
+ } elseif (-not [string]::IsNullOrWhiteSpace($RamBudgetMb)) {
96
+ Write-Warning "Ignoring a RAM ceiling that is not a whole number of MiB: '$RamBudgetMb'. The detector will hold its pinned model and refuse to make a second one resident."
97
+ }
54
98
  $Action = New-ScheduledTaskAction -Execute $DetectorPath -Argument $argument
55
99
 
56
100
  # NOT AT LOGON ONLY -- see register-task.ps1 for the full rationale, including
@@ -140,6 +140,48 @@ if (-not (Test-Path -LiteralPath $detectorPath)) {
140
140
  }
141
141
  Log "trillboards-detector installed at $detectorPath"
142
142
 
143
+ # --- 2b. The RAM ceiling, derived from THIS machine --------------------------
144
+ #
145
+ # Without it the service holds its pinned model and refuses to make any second
146
+ # model resident - `registry.py::_admit`, "no RAM ceiling was injected, so this
147
+ # service has no basis for a portfolio decision and will not invent one". The
148
+ # refusal is correct; the injection was missing from all six supervisor
149
+ # definitions until 2026-08-26, so every delivered specialist stayed `idle`.
150
+ #
151
+ # A TASK ARGUMENT, not an environment variable. A Scheduled Task action has no
152
+ # environment block of its own, and setting a User-scope variable would put a
153
+ # per-machine tuning knob into global machine state where nothing associates it
154
+ # with this service. macOS also takes an argument (its plist is generated too);
155
+ # only Linux, whose unit is a static file with an EnvironmentFile already
156
+ # declared, uses the variable. ONE derivation, three transports.
157
+ #
158
+ # EMPTY WHEN IT CANNOT BE DERIVED, never a placeholder: "nobody has told me a
159
+ # ceiling" is a state the detector handles correctly and loudly.
160
+ $ramBudgetMb = ""
161
+ $budgetScript = Join-Path $source "ram-budget.js"
162
+ $nodeExe = Join-Path $Here "node.exe"
163
+ if (-not (Test-Path -LiteralPath $nodeExe)) {
164
+ $foundNode = Get-Command node -ErrorAction SilentlyContinue
165
+ if ($foundNode) { $nodeExe = $foundNode.Source } else { $nodeExe = $null }
166
+ }
167
+ if (-not $nodeExe) {
168
+ Log "WARN: no node runtime found, so no RAM ceiling is derived; the detector will refuse a second resident model"
169
+ } elseif (-not (Test-Path -LiteralPath $budgetScript)) {
170
+ Log "WARN: $budgetScript is missing, so no RAM ceiling is derived"
171
+ } else {
172
+ # `--explain` writes the subtraction to stderr and the bare integer to stdout,
173
+ # so the log carries WHY and the variable carries only the number. 2>&1 is
174
+ # deliberately NOT used: it would fold the explanation into the value.
175
+ $derived = & $nodeExe $budgetScript "--explain" 2>> $LogPath
176
+ $derived = ("$derived").Trim()
177
+ if ($LASTEXITCODE -eq 0 -and $derived -match '^\d+$') {
178
+ $ramBudgetMb = $derived
179
+ Log "RAM ceiling $ramBudgetMb MiB (derived from this machine; see the log above for the subtraction)"
180
+ } else {
181
+ Log "WARN: could not derive a RAM ceiling for this machine (see $LogPath); the detector will refuse a second resident model"
182
+ }
183
+ }
184
+
143
185
  # --- 3. The Scheduled Task ---------------------------------------------------
144
186
  $registration = Join-Path $Here "register-detector-task.ps1"
145
187
  if (-not (Test-Path -LiteralPath $registration)) {
@@ -147,7 +189,17 @@ if (-not (Test-Path -LiteralPath $registration)) {
147
189
  exit 0
148
190
  }
149
191
  Log "registering the detector Scheduled Task on :$Port"
150
- & powershell.exe -NoProfile -ExecutionPolicy Bypass -File $registration -DetectorPath $detectorPath -Port $Port *>> $LogPath
192
+ # OMITTED, not passed empty, when nothing was derived. Windows PowerShell drops
193
+ # an empty-string argument to a native command, so `-RamBudgetMb ""` arrives as a
194
+ # bare `-RamBudgetMb` with nothing after it and the whole registration dies with
195
+ # "Missing an argument for parameter" - turning an undeterminable ceiling into an
196
+ # unsupervised detector. The task script's own default covers the omission.
197
+ $registrationArgs = @(
198
+ '-NoProfile', '-ExecutionPolicy', 'Bypass', '-File', $registration,
199
+ '-DetectorPath', $detectorPath, '-Port', $Port
200
+ )
201
+ if ($ramBudgetMb) { $registrationArgs += @('-RamBudgetMb', $ramBudgetMb) }
202
+ & powershell.exe @registrationArgs *>> $LogPath
151
203
  if ($LASTEXITCODE -ne 0) {
152
204
  Log "ERROR: the detector Scheduled Task could not be registered; the cascade stays off"
153
205
  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.102';
47
+ const SDK_VERSION = '0.2.106';
48
48
  class EdgeAgent extends events_1.EventEmitter {
49
49
  constructor(config, deps) {
50
50
  super();
@@ -250,6 +250,12 @@ export interface AutoSenseDeps {
250
250
  probe?: (baseUrl: string, timeoutMs: number, expectedModel: string) => Promise<LiteRtHealthResult>;
251
251
  /** Loads the connector config. Defaults to loadConfig. */
252
252
  loadConfig?: (configPath: string) => EdgeAgentConfig;
253
+ /**
254
+ * Proves the resolved data root is writable before anything writes to it.
255
+ * Defaults to `ensureDataDirWritable`; injected only so a test can drive both
256
+ * outcomes without needing a read-only mount.
257
+ */
258
+ ensureDataDirWritable?: (configured?: string) => string;
253
259
  /** Build (NOT start) the local manager. Defaults to buildLocalSensingManager(config). */
254
260
  buildLocalManager?: () => SensingManager | null;
255
261
  /** Log sink (tests capture it). Defaults to console.log. */
@@ -1 +1 @@
1
- {"version":3,"file":"autoSense.d.ts","sourceRoot":"","sources":["../src/autoSense.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"autoSense.d.ts","sourceRoot":"","sources":["../src/autoSense.ts"],"names":[],"mappings":"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"}
package/dist/autoSense.js CHANGED
@@ -40,6 +40,7 @@ const http = __importStar(require("http"));
40
40
  const https = __importStar(require("https"));
41
41
  const url_1 = require("url");
42
42
  const config_1 = require("./config");
43
+ const dataDir_1 = require("./dataDir");
43
44
  const LiteRtVlmProvider_1 = require("./LiteRtVlmProvider");
44
45
  const sensingRunMode_1 = require("./sensingRunMode");
45
46
  const modelOta_1 = require("./modelOta");
@@ -634,7 +635,25 @@ async function runAutoSense(args, deps = {}) {
634
635
  const sleep = deps.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms)));
635
636
  const configIdx = args.indexOf('--config');
636
637
  const configPath = configIdx >= 0 && args[configIdx + 1] ? args[configIdx + 1] : 'trillboards.config.json';
637
- const config = load(configPath);
638
+ const loaded = load(configPath);
639
+ // `--data-dir` OUTRANKS THE ENVIRONMENT, AND THAT IS THE POINT OF IT.
640
+ //
641
+ // `ReadWritePaths=` in a systemd unit is a literal and cannot follow a
642
+ // variable, while `EnvironmentFile=` outranks `Environment=` in the same unit
643
+ // — measured on systemd 252, in both orderings, the file wins either way. So a
644
+ // line in `/etc/trillboards/env` could always move this connector's state root
645
+ // outside the sandbox that grants it, and the failure landed as an EROFS deep
646
+ // inside the evidence spool. An ExecStart argument is the one channel the unit
647
+ // fully controls: no environment file can reach it.
648
+ //
649
+ // It stays a normal CLI flag on every platform, because `config.dataDir` has
650
+ // always been settable and this is the same value by a shorter route.
651
+ const dataDirIdx = args.indexOf('--data-dir');
652
+ const dataDirArg = dataDirIdx >= 0 && args[dataDirIdx + 1] ? args[dataDirIdx + 1] : null;
653
+ const config = dataDirArg ? { ...loaded, dataDir: dataDirArg } : loaded;
654
+ // Prove the root before anything writes to it. See `ensureDataDirWritable` for
655
+ // why this is a precondition and not a try/catch at the first write.
656
+ (deps.ensureDataDirWritable ?? dataDir_1.ensureDataDirWritable)(config.dataDir);
638
657
  // Best-effort ONVIF LAN scan, fire-and-forget. This used to run only on
639
658
  // `cloud-sense`; deleting that mode left it with zero call sites, which no type
640
659
  // checker can see. `auto-sense` is what every platform runs now, so it is the
@@ -1 +1 @@
1
- {"version":3,"file":"autoSense.js","sourceRoot":"","sources":["../src/autoSense.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"autoSense.js","sourceRoot":"","sources":["../src/autoSense.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -1109,7 +1109,15 @@ Usage:
1109
1109
  trillboards-edge demo Try it instantly — no token, no camera, no setup
1110
1110
  trillboards-edge init Interactive setup wizard
1111
1111
  trillboards-edge start [--config <path>] Start the edge agent
1112
- trillboards-edge auto-sense [--config <path>] Use on-device VLM; wait locally while its model prepares
1112
+ trillboards-edge auto-sense [--config <path>] [--data-dir <path>]
1113
+ Use on-device VLM; wait locally while its model
1114
+ prepares. --data-dir is the state root (evidence
1115
+ spool, signal buffer, OTA manifests, model
1116
+ artifacts). It outranks TRILLBOARDS_DATA_DIR,
1117
+ which is why the systemd unit passes it: a
1118
+ sandbox grants a LITERAL path, and an
1119
+ EnvironmentFile can override an Environment= but
1120
+ not an ExecStart argument.
1113
1121
  trillboards-edge sense [--config <path>] Run the ONNX zoo AND the VLM together (APK parity)
1114
1122
  trillboards-edge setup [--config <path>] Validate-first onboarding: opens the portal and keeps a code fallback
1115
1123
  trillboards-edge pair --code <XXXX-XXXX> Pair with a portal claim code (writes config)