@trillboards/edge-sdk 0.2.73 → 0.2.76
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/detector/README.md +133 -0
- package/deploy/detector/bench/verify_against_reference.py +120 -0
- package/deploy/detector/pyproject.toml +49 -0
- package/deploy/detector/tests/__init__.py +0 -0
- package/deploy/detector/tests/test_modelpath.py +108 -0
- package/deploy/detector/tests/test_server.py +577 -0
- package/deploy/detector/tests/test_session.py +242 -0
- package/deploy/detector/trillboards_detector/__init__.py +8 -0
- package/deploy/detector/trillboards_detector/__main__.py +4 -0
- package/deploy/detector/trillboards_detector/cli.py +141 -0
- package/deploy/detector/trillboards_detector/errors.py +16 -0
- package/deploy/detector/trillboards_detector/labels.py +107 -0
- package/deploy/detector/trillboards_detector/loader.py +257 -0
- package/deploy/detector/trillboards_detector/modelpath.py +74 -0
- package/deploy/detector/trillboards_detector/server.py +460 -0
- package/deploy/detector/trillboards_detector/session.py +354 -0
- package/deploy/macos/build-macos-pkg.sh +48 -0
- package/deploy/macos/com.trillboards.detector.plist +61 -0
- package/deploy/macos/scripts/ensure-detector.sh +85 -0
- package/deploy/macos/scripts/postinstall +28 -0
- package/deploy/macos/scripts/setup-detector.sh +185 -0
- package/deploy/systemd/install.sh +35 -0
- package/deploy/systemd/setup-detector.sh +130 -0
- package/deploy/systemd/trillboards-detector.service +54 -0
- package/deploy/windows/build-windows.ps1 +38 -0
- package/deploy/windows/installer.nsi +24 -1
- package/deploy/windows/register-detector-task.ps1 +161 -0
- package/deploy/windows/register-task.ps1 +27 -0
- package/deploy/windows/setup-detector.ps1 +176 -0
- package/deploy/windows/stop-existing.ps1 +1 -0
- package/deploy/windows/trillboards-edge.cmd +25 -0
- package/dist/AudienceAnalyzeClient.d.ts +6 -0
- package/dist/AudienceAnalyzeClient.d.ts.map +1 -1
- package/dist/AudienceAnalyzeClient.js +14 -0
- package/dist/AudienceAnalyzeClient.js.map +1 -1
- package/dist/EdgeAgent.js +1 -1
- package/dist/LocalDetectorClient.d.ts +92 -0
- package/dist/LocalDetectorClient.d.ts.map +1 -0
- package/dist/LocalDetectorClient.js +241 -0
- package/dist/LocalDetectorClient.js.map +1 -0
- package/dist/diagnose.d.ts +1 -1
- package/dist/diagnose.js +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -1
- package/dist/index.js.map +1 -1
- package/dist/localSensing.d.ts.map +1 -1
- package/dist/localSensing.js +6 -0
- package/dist/localSensing.js.map +1 -1
- package/dist/zoneContainment.d.ts +148 -0
- package/dist/zoneContainment.d.ts.map +1 -0
- package/dist/zoneContainment.js +172 -0
- package/dist/zoneContainment.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
<#
|
|
2
|
+
register-detector-task.ps1 -- register the Scheduled Task that runs the
|
|
3
|
+
on-device OBJECT DETECTOR service (RF-DETR Medium, fp32 ONNX, :9380) with
|
|
4
|
+
crash-restart. Mirrors register-litertlm-task.ps1 rung for rung: the same
|
|
5
|
+
degradation ladder, the same S4U-not-SystemAccount principal, the same
|
|
6
|
+
stop-before-re-register, the same restart settings.
|
|
7
|
+
|
|
8
|
+
It never prompts. Headless costs one elevation on Windows (S4U needs
|
|
9
|
+
SeBatchLogonRight, which Task Scheduler grants only to an administrator
|
|
10
|
+
caller), and a second UAC dialog in one install is not acceptable -- so
|
|
11
|
+
ensure-sensing.ps1 owns the single prompt and register-task.ps1 repairs THIS
|
|
12
|
+
task inside that same elevated pass, exactly as it already does for
|
|
13
|
+
TrillboardsLiteRtLm. Invoked by setup-detector.ps1.
|
|
14
|
+
|
|
15
|
+
WHERE IT DIFFERS FROM THE LITERT-LM TASK, AND WHY:
|
|
16
|
+
|
|
17
|
+
--log-file A Scheduled Task has no stdout, so litert-lm's own log is
|
|
18
|
+
discarded on Windows and NOWHERE ELSE -- which is why the
|
|
19
|
+
2026-08-19 windows-latest failure is still undiagnosed:
|
|
20
|
+
"the one process that knows why wrote its explanation to a
|
|
21
|
+
handle nobody was holding". litert-lm cannot be fixed from
|
|
22
|
+
here (it has no --log-file, and wrapping it in cmd.exe would
|
|
23
|
+
break the stop path's image-name filter). THIS binary is
|
|
24
|
+
ours and takes the flag, so the same blindness does not get
|
|
25
|
+
inherited. The file is size-capped and rotated by the
|
|
26
|
+
service itself.
|
|
27
|
+
|
|
28
|
+
boot delay PT30S, not litert-lm's PT1M. That one memory-maps a ~2.4 GB
|
|
29
|
+
model off a disk still busy with the rest of boot. This one
|
|
30
|
+
loads a ~128 MB ONNX -- and if the artifact is not there yet
|
|
31
|
+
it does not fail, it reports itself unhealthy and picks the
|
|
32
|
+
file up when it lands, so an early start is self-healing.
|
|
33
|
+
#>
|
|
34
|
+
[CmdletBinding()]
|
|
35
|
+
param(
|
|
36
|
+
[Parameter(Mandatory = $true)][string]$DetectorPath,
|
|
37
|
+
[string]$Port = "9380",
|
|
38
|
+
[string]$LogFile = ""
|
|
39
|
+
)
|
|
40
|
+
$ErrorActionPreference = "Stop"
|
|
41
|
+
|
|
42
|
+
$TaskName = "TrillboardsDetector"
|
|
43
|
+
$UserId = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
|
|
44
|
+
|
|
45
|
+
if ([string]::IsNullOrWhiteSpace($LogFile)) {
|
|
46
|
+
$LogFile = Join-Path (Join-Path $env:LOCALAPPDATA "Trillboards\logs") "detector.service.log"
|
|
47
|
+
}
|
|
48
|
+
try { New-Item -ItemType Directory -Force -Path (Split-Path -Parent $LogFile) | Out-Null } catch { }
|
|
49
|
+
|
|
50
|
+
# trillboards-detector serve --host 127.0.0.1 --port <port> --log-file <path>
|
|
51
|
+
# Loopback only -- LocalDetectorClient is local; nothing off-box has any
|
|
52
|
+
# business reaching this.
|
|
53
|
+
$argument = 'serve --host 127.0.0.1 --port ' + $Port + ' --log-file "' + $LogFile + '"'
|
|
54
|
+
$Action = New-ScheduledTaskAction -Execute $DetectorPath -Argument $argument
|
|
55
|
+
|
|
56
|
+
# NOT AT LOGON ONLY -- see register-task.ps1 for the full rationale, including
|
|
57
|
+
# why the REPEATING trigger (not the boot trigger) is the load-bearing one: only
|
|
58
|
+
# an Administrators-group member can create a task with a boot trigger, and this
|
|
59
|
+
# runs from a no-admin installer.
|
|
60
|
+
$RepeatTrigger = New-ScheduledTaskTrigger -Once -At ((Get-Date).AddMinutes(1)) `
|
|
61
|
+
-RepetitionInterval (New-TimeSpan -Minutes 5) -RepetitionDuration (New-TimeSpan -Days 3650)
|
|
62
|
+
$BootTrigger = New-ScheduledTaskTrigger -AtStartup
|
|
63
|
+
# Best-effort, exactly as in register-task.ps1: never fail registration over it.
|
|
64
|
+
try { $BootTrigger.Delay = "PT30S" } catch { Write-Warning "Could not set the boot-trigger delay: $($_.Exception.Message)" }
|
|
65
|
+
$LogonTrigger = New-ScheduledTaskTrigger -AtLogOn -User $UserId
|
|
66
|
+
|
|
67
|
+
# RestartCount/Interval == the plist's ThrottleInterval crash-loop guard; Zero
|
|
68
|
+
# time limit == the always-on service. MultipleInstances IgnoreNew matters now
|
|
69
|
+
# that several triggers exist: a second instance would fail to bind $Port anyway
|
|
70
|
+
# -- and it MUST fail, which is why DetectorServer turns SO_REUSEADDR off on
|
|
71
|
+
# Windows, where that flag otherwise lets a second process steal a live port.
|
|
72
|
+
$Settings = New-ScheduledTaskSettingsSet -RestartCount 3 -RestartInterval (New-TimeSpan -Minutes 1) `
|
|
73
|
+
-AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -StartWhenAvailable `
|
|
74
|
+
-MultipleInstances IgnoreNew `
|
|
75
|
+
-ExecutionTimeLimit ([TimeSpan]::Zero)
|
|
76
|
+
|
|
77
|
+
# S4U, NOT SystemAccount: trillboards-detector.exe lives under the user profile
|
|
78
|
+
# ($env:USERPROFILE\.local\bin) and reads its model from
|
|
79
|
+
# $env:USERPROFILE\.trillboards\models. SYSTEM would resolve both to
|
|
80
|
+
# C:\Windows\system32\config\systemprofile -- the binary would not be found and,
|
|
81
|
+
# if it were, it would look for the artifact in a directory the connector never
|
|
82
|
+
# writes to and report itself permanently unhealthy.
|
|
83
|
+
function New-DetectorPrincipal([string]$LogonType) {
|
|
84
|
+
New-ScheduledTaskPrincipal -UserId $UserId -LogonType $LogonType -RunLevel Limited
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
$Description = "Trillboards object detector - on-device RF-DETR cascade gate (:$Port)"
|
|
88
|
+
|
|
89
|
+
# Same degradation ladder as register-task.ps1 / register-litertlm-task.ps1.
|
|
90
|
+
$Attempts = @(
|
|
91
|
+
@{ Label = "S4U + boot + repeat"; LogonType = "S4U"; Triggers = @($BootTrigger, $RepeatTrigger, $LogonTrigger) },
|
|
92
|
+
@{ Label = "S4U + repeat"; LogonType = "S4U"; Triggers = @($RepeatTrigger, $LogonTrigger) },
|
|
93
|
+
@{ Label = "Interactive + repeat"; LogonType = "Interactive"; Triggers = @($RepeatTrigger, $LogonTrigger) },
|
|
94
|
+
@{ Label = "Interactive + logon only"; LogonType = "Interactive"; Triggers = @($LogonTrigger) }
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
# STOP THE RUNNING SERVICE BEFORE RE-REGISTERING, and wait for it to actually go.
|
|
98
|
+
#
|
|
99
|
+
# Unregistering a task is not documented to terminate a running instance, and
|
|
100
|
+
# this is a long-lived process holding :$Port. Left alive it keeps ANSWERING --
|
|
101
|
+
# so an upgrade would install the new tool, re-register the task, fail to bind,
|
|
102
|
+
# and leave the OLD build serving while every health probe passed. That is the
|
|
103
|
+
# incident register-litertlm-task.ps1 records, and it is worse here: a stale
|
|
104
|
+
# detector answering /detect is a stale MODEL grading a customer's frames.
|
|
105
|
+
#
|
|
106
|
+
# Done ONCE, before the ladder below, which may unregister and re-register
|
|
107
|
+
# several times.
|
|
108
|
+
Stop-ScheduledTask -TaskName $TaskName -ErrorAction SilentlyContinue
|
|
109
|
+
|
|
110
|
+
# Belt and braces: kill any detector process still listening on the port. Scoped
|
|
111
|
+
# to THIS user's processes whose command line carries our port AND our tool
|
|
112
|
+
# name, so a developer's unrelated python is never touched.
|
|
113
|
+
try {
|
|
114
|
+
Get-CimInstance Win32_Process -Filter "Name = 'trillboards-detector.exe' OR Name = 'python.exe' OR Name = 'pythonw.exe'" -ErrorAction SilentlyContinue |
|
|
115
|
+
Where-Object { $_.CommandLine -and $_.CommandLine -match 'trillboards.detector' -and $_.CommandLine -match ('--port\s+' + [regex]::Escape($Port)) } |
|
|
116
|
+
ForEach-Object {
|
|
117
|
+
Write-Host "stopping previous detector service (pid $($_.ProcessId)) before re-registering"
|
|
118
|
+
Stop-Process -Id $_.ProcessId -Force -ErrorAction SilentlyContinue
|
|
119
|
+
}
|
|
120
|
+
} catch { }
|
|
121
|
+
|
|
122
|
+
for ($i = 0; $i -lt 15; $i++) {
|
|
123
|
+
$inUse = $null
|
|
124
|
+
try { $inUse = Get-NetTCPConnection -LocalPort ([int]$Port) -State Listen -ErrorAction SilentlyContinue } catch { }
|
|
125
|
+
if (-not $inUse) { break }
|
|
126
|
+
Start-Sleep -Seconds 1
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
$Landed = $null
|
|
130
|
+
foreach ($attempt in $Attempts) {
|
|
131
|
+
Unregister-ScheduledTask -TaskName $TaskName -Confirm:$false -ErrorAction SilentlyContinue
|
|
132
|
+
try {
|
|
133
|
+
Register-ScheduledTask -TaskName $TaskName -Action $Action -Trigger $attempt.Triggers -Settings $Settings `
|
|
134
|
+
-Principal (New-DetectorPrincipal $attempt.LogonType) -Description $Description -ErrorAction Stop | Out-Null
|
|
135
|
+
$Landed = $attempt
|
|
136
|
+
break
|
|
137
|
+
} catch {
|
|
138
|
+
Write-Host "Registration attempt '$($attempt.Label)' was refused: $($_.Exception.Message)"
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
if (-not $Landed) {
|
|
142
|
+
Write-Error "Scheduled task '$TaskName' could not be registered in ANY supported shape."
|
|
143
|
+
exit 1
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
$registered = Get-ScheduledTask -TaskName $TaskName -ErrorAction SilentlyContinue
|
|
147
|
+
if (-not $registered) {
|
|
148
|
+
Write-Error "Scheduled task '$TaskName' did NOT register (Get-ScheduledTask found nothing)."
|
|
149
|
+
exit 1
|
|
150
|
+
}
|
|
151
|
+
$definition = Export-ScheduledTask -TaskName $TaskName
|
|
152
|
+
$logonType = if ($definition -match "<LogonType>([^<]+)</LogonType>") { $Matches[1] } else { "unknown" }
|
|
153
|
+
if (($definition -notmatch "<BootTrigger>") -and ($definition -notmatch "<Repetition>")) {
|
|
154
|
+
Write-Warning "Scheduled task '$TaskName' registered with a LOGON-ONLY trigger - after a reboot the connector would come back with no detector and send every frame to the VLM."
|
|
155
|
+
}
|
|
156
|
+
if ($logonType -eq "InteractiveToken") {
|
|
157
|
+
Write-Warning "Scheduled task '$TaskName' registered with an INTERACTIVE principal - the detector will only run while $UserId is logged on."
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
Start-ScheduledTask -TaskName $TaskName
|
|
161
|
+
Write-Host "Registered scheduled task '$TaskName' (trillboards-detector serve on :$Port, shape '$($Landed.Label)', logon type $logonType, restarts on failure, log $LogFile)."
|
|
@@ -194,4 +194,31 @@ if (Test-IsElevated) {
|
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
|
+
|
|
198
|
+
# The object detector's task, repaired in the SAME pass and for the same
|
|
199
|
+
# reason. It is a third task, not a third prompt: ensure-sensing.ps1 owns the
|
|
200
|
+
# single UAC dialog, and anything that asked for its own would make a clean
|
|
201
|
+
# install cost two.
|
|
202
|
+
#
|
|
203
|
+
# A logon-only detector is a milder failure than a logon-only model server --
|
|
204
|
+
# the connector still senses, it just sends every frame to the VLM instead of
|
|
205
|
+
# ~15.3% of them -- but it is the same defect and it is free to fix here.
|
|
206
|
+
$detectorTask = Get-ScheduledTask -TaskName "TrillboardsDetector" -ErrorAction SilentlyContinue
|
|
207
|
+
if ($detectorTask) {
|
|
208
|
+
$detectorXml = Export-ScheduledTask -TaskName "TrillboardsDetector"
|
|
209
|
+
$detectorHeadless = (($detectorXml -match "<BootTrigger>") -or ($detectorXml -match "<Repetition>")) -and
|
|
210
|
+
($detectorXml -notmatch "<LogonType>InteractiveToken</LogonType>")
|
|
211
|
+
if (-not $detectorHeadless) {
|
|
212
|
+
# Recover the interpreter path from the task we are replacing rather than
|
|
213
|
+
# re-deriving it: setup-detector.ps1 resolved it under the USER profile,
|
|
214
|
+
# and an elevated re-derivation could resolve somewhere else entirely.
|
|
215
|
+
$detectorExe = ($detectorTask.Actions | Select-Object -First 1).Execute
|
|
216
|
+
$detectorRegister = Join-Path $InstallDir "bin\register-detector-task.ps1"
|
|
217
|
+
if ($detectorExe -and (Test-Path $detectorRegister)) {
|
|
218
|
+
Write-Host "Repairing 'TrillboardsDetector' in the same elevated pass."
|
|
219
|
+
try { & $detectorRegister -DetectorPath $detectorExe | Out-Null }
|
|
220
|
+
catch { Write-Warning "Could not repair the detector task: $($_.Exception.Message)" }
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
197
224
|
}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
<#
|
|
2
|
+
setup-detector.ps1 -- provision the on-device OBJECT DETECTOR service
|
|
3
|
+
(RF-DETR Medium, fp32 ONNX, 127.0.0.1:9380) for the BYO-CCTV connector.
|
|
4
|
+
|
|
5
|
+
Runs as the signed-in user, is safe to retry, and never prompts.
|
|
6
|
+
|
|
7
|
+
WHAT IT DOES:
|
|
8
|
+
1. Ensure `uv`, with the same enterprise-TLS and proxy handling as
|
|
9
|
+
setup-litertlm.ps1 -- behind a TLS-inspecting proxy `uv tool install` is
|
|
10
|
+
the step that dies, and it dies naming the wrong component.
|
|
11
|
+
2. `uv tool install` the staged trillboards-detector package under ITS OWN
|
|
12
|
+
TOOL NAME, so uv gives it its own venv. Never a package added into
|
|
13
|
+
litert-lm's: `uv tool install --force` rebuilds that venv from scratch on
|
|
14
|
+
any version drift or health failure and would take the addition with it.
|
|
15
|
+
3. Register the Scheduled Task (register-detector-task.ps1) on :9380.
|
|
16
|
+
litert-lm's :9379 is not touched.
|
|
17
|
+
4. Verify the service ANSWERS.
|
|
18
|
+
|
|
19
|
+
WHAT IT DELIBERATELY DOES NOT DO:
|
|
20
|
+
* Fetch the model. The 124 MB fp32 ONNX is OTA'd by edge-core's
|
|
21
|
+
ModelManager on the same channel as Gemma's weights.
|
|
22
|
+
* Write a config file. There is nothing to configure -- which is also why
|
|
23
|
+
this script cannot repeat the 2026-08-19 BOM incident, where
|
|
24
|
+
`Set-Content -Encoding UTF8` (BOM-ful on Windows PowerShell 5.1) wrote a
|
|
25
|
+
config litert-lm's json.load refuses and every inference 500'd while
|
|
26
|
+
/v1/models still answered 200. The detector takes its settings on the
|
|
27
|
+
command line, so there is no file whose encoding could be wrong.
|
|
28
|
+
* Fail the install. Gemma is required because without it the connector
|
|
29
|
+
cannot sense at all; the detector removes ~84.7% of VLM calls for ~2.1%
|
|
30
|
+
of events, and without it every frame simply goes to the VLM as it does
|
|
31
|
+
today. This script exits 0 on every failure path with a logged reason.
|
|
32
|
+
|
|
33
|
+
WHY "ANSWERS" AND NOT "READY" IS THE BAR HERE:
|
|
34
|
+
at install time the model has not been downloaded yet, so /health is 503 BY
|
|
35
|
+
DESIGN. Demanding 200 would fail every fresh install. What distinguishes a
|
|
36
|
+
working install from a broken one is that the service is listening and
|
|
37
|
+
speaking JSON at all -- and the log says WHICH of the two states it is in, so
|
|
38
|
+
an operator can tell "waiting for the model" from "did not start". That is
|
|
39
|
+
the exact pair litert-lm's /v1/models check cannot distinguish.
|
|
40
|
+
#>
|
|
41
|
+
[CmdletBinding()]
|
|
42
|
+
param(
|
|
43
|
+
[string]$Port = "9380",
|
|
44
|
+
[string]$DetectorPython = $(if ($env:TRILLBOARDS_DETECTOR_PYTHON) { $env:TRILLBOARDS_DETECTOR_PYTHON } else { "3.12" }),
|
|
45
|
+
[string]$SourcePath = ""
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
$ErrorActionPreference = "Continue"
|
|
49
|
+
$Here = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
50
|
+
$LocalBin = Join-Path $env:USERPROFILE ".local\bin"
|
|
51
|
+
$LogDir = Join-Path $env:LOCALAPPDATA "Trillboards\logs"
|
|
52
|
+
New-Item -ItemType Directory -Force -Path $LogDir | Out-Null
|
|
53
|
+
$LogPath = Join-Path $LogDir "detector-setup.log"
|
|
54
|
+
|
|
55
|
+
function Log([string]$Message) {
|
|
56
|
+
$line = "[trillboards setup-detector] {0} {1}" -f (Get-Date -Format "HH:mm:ss"), $Message
|
|
57
|
+
Write-Host $line
|
|
58
|
+
try { Add-Content -LiteralPath $LogPath -Value $line -Encoding UTF8 } catch { }
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function Resolve-DetectorSource {
|
|
62
|
+
if ($SourcePath -and (Test-Path -LiteralPath (Join-Path $SourcePath "pyproject.toml"))) { return (Resolve-Path -LiteralPath $SourcePath).Path }
|
|
63
|
+
foreach ($c in @(
|
|
64
|
+
(Join-Path $Here "detector"),
|
|
65
|
+
(Join-Path $Here "..\detector"),
|
|
66
|
+
(Join-Path $Here "..\..\detector")
|
|
67
|
+
)) {
|
|
68
|
+
if (Test-Path -LiteralPath (Join-Path $c "pyproject.toml")) { return (Resolve-Path -LiteralPath $c).Path }
|
|
69
|
+
}
|
|
70
|
+
return $null
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
Log "starting detector provisioning"
|
|
74
|
+
|
|
75
|
+
# --- Enterprise TLS + proxy for uv -------------------------------------------
|
|
76
|
+
# uv does NOT use Schannel and does NOT auto-discover a Windows proxy. It ships
|
|
77
|
+
# bundled Mozilla roots and reads proxy settings only from environment
|
|
78
|
+
# variables. Both names are set because an unknown env var is ignored, while a
|
|
79
|
+
# CLI flag would fail outright on a version that lacks it.
|
|
80
|
+
$env:UV_SYSTEM_CERTS = "1"
|
|
81
|
+
$env:UV_NATIVE_TLS = "1"
|
|
82
|
+
if (-not ($env:HTTPS_PROXY -or $env:https_proxy -or $env:ALL_PROXY)) {
|
|
83
|
+
try {
|
|
84
|
+
$probe = [Uri]"https://api.trillboards.com"
|
|
85
|
+
$systemProxy = [System.Net.WebRequest]::GetSystemWebProxy()
|
|
86
|
+
if ($null -ne $systemProxy -and -not $systemProxy.IsBypassed($probe)) {
|
|
87
|
+
$resolved = $systemProxy.GetProxy($probe)
|
|
88
|
+
if ($null -ne $resolved -and $resolved.AbsoluteUri -ne $probe.AbsoluteUri) {
|
|
89
|
+
$env:HTTPS_PROXY = $resolved.AbsoluteUri.TrimEnd("/")
|
|
90
|
+
$env:HTTP_PROXY = $env:HTTPS_PROXY
|
|
91
|
+
Log "using this machine's configured proxy for detector downloads: $($env:HTTPS_PROXY)"
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
} catch { }
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
# --- 1. uv -------------------------------------------------------------------
|
|
98
|
+
$env:PATH = "$LocalBin;$env:PATH"
|
|
99
|
+
$uvCmd = Get-Command uv -ErrorAction SilentlyContinue
|
|
100
|
+
if (-not $uvCmd) {
|
|
101
|
+
Log "uv not found - installing via astral.sh standalone installer (no admin)"
|
|
102
|
+
try {
|
|
103
|
+
& powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "irm https://astral.sh/uv/install.ps1 | iex" *>> $LogPath
|
|
104
|
+
} catch { Log "WARN: uv install failed: $_" }
|
|
105
|
+
$env:PATH = "$LocalBin;$env:LOCALAPPDATA\uv\bin;$env:PATH"
|
|
106
|
+
$uvCmd = Get-Command uv -ErrorAction SilentlyContinue
|
|
107
|
+
}
|
|
108
|
+
if (-not $uvCmd) {
|
|
109
|
+
Log "ERROR: uv unavailable; the detector cascade stays off and every frame goes to the VLM"
|
|
110
|
+
exit 0
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
# --- 2. The tool -------------------------------------------------------------
|
|
114
|
+
# Reinstalled unconditionally. The source is tens of KB, the dependency versions
|
|
115
|
+
# are PINNED in pyproject.toml, and uv skips work it has already done - so
|
|
116
|
+
# --force costs nothing on a healthy machine and repairs a drifted one. Gating
|
|
117
|
+
# it behind a health check is how a repaired-and-healthy box keeps a broken venv
|
|
118
|
+
# while reporting fine; setup-litertlm.ps1's shim carries the same note, from
|
|
119
|
+
# the same mistake.
|
|
120
|
+
$source = Resolve-DetectorSource
|
|
121
|
+
if (-not $source) {
|
|
122
|
+
Log "ERROR: detector package source not found near $Here"
|
|
123
|
+
exit 0
|
|
124
|
+
}
|
|
125
|
+
Log "installing/repairing trillboards-detector from $source with uv-managed Python $DetectorPython"
|
|
126
|
+
& $uvCmd.Source tool install --python $DetectorPython --managed-python --force "$source" *>> $LogPath
|
|
127
|
+
if ($LASTEXITCODE -ne 0) {
|
|
128
|
+
Log "ERROR: trillboards-detector install failed; the cascade stays off (the VLM still runs every frame)"
|
|
129
|
+
exit 0
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
$detectorPath = Join-Path $LocalBin "trillboards-detector.exe"
|
|
133
|
+
if (-not (Test-Path -LiteralPath $detectorPath)) {
|
|
134
|
+
$found = Get-Command trillboards-detector -ErrorAction SilentlyContinue
|
|
135
|
+
if ($found) { $detectorPath = $found.Source }
|
|
136
|
+
}
|
|
137
|
+
if (-not (Test-Path -LiteralPath $detectorPath)) {
|
|
138
|
+
Log "ERROR: trillboards-detector binary missing after install"
|
|
139
|
+
exit 0
|
|
140
|
+
}
|
|
141
|
+
Log "trillboards-detector installed at $detectorPath"
|
|
142
|
+
|
|
143
|
+
# --- 3. The Scheduled Task ---------------------------------------------------
|
|
144
|
+
$registration = Join-Path $Here "register-detector-task.ps1"
|
|
145
|
+
if (-not (Test-Path -LiteralPath $registration)) {
|
|
146
|
+
Log "ERROR: register-detector-task.ps1 is missing; the detector cannot be supervised"
|
|
147
|
+
exit 0
|
|
148
|
+
}
|
|
149
|
+
Log "registering the detector Scheduled Task on :$Port"
|
|
150
|
+
& powershell.exe -NoProfile -ExecutionPolicy Bypass -File $registration -DetectorPath $detectorPath -Port $Port *>> $LogPath
|
|
151
|
+
if ($LASTEXITCODE -ne 0) {
|
|
152
|
+
Log "ERROR: the detector Scheduled Task could not be registered; the cascade stays off"
|
|
153
|
+
exit 0
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
# --- 4. Does it ANSWER? ------------------------------------------------------
|
|
157
|
+
# Not "is it ready". Invoke-WebRequest THROWS on a 503, so the status code is
|
|
158
|
+
# read out of the exception rather than treated as a failure - a 503 here is the
|
|
159
|
+
# designed answer of a correctly-installed service whose model has not landed.
|
|
160
|
+
$code = 0
|
|
161
|
+
for ($attempt = 0; $attempt -lt 30 -and $code -eq 0; $attempt++) {
|
|
162
|
+
try {
|
|
163
|
+
$res = Invoke-WebRequest -Uri "http://127.0.0.1:$Port/health" -UseBasicParsing -TimeoutSec 3
|
|
164
|
+
$code = [int]$res.StatusCode
|
|
165
|
+
} catch {
|
|
166
|
+
if ($_.Exception.Response) { $code = [int]$_.Exception.Response.StatusCode } else { Start-Sleep -Seconds 1 }
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
switch ($code) {
|
|
170
|
+
200 { Log "detector is READY (model already present)" }
|
|
171
|
+
503 { Log "detector is running and AWAITING ITS MODEL - the OTA will land it and the service picks it up without a restart" }
|
|
172
|
+
default { Log "WARN: the detector service did not answer /health (code $code); every frame keeps going to the VLM" }
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
Log "done"
|
|
176
|
+
exit 0
|
|
@@ -52,6 +52,31 @@ if /I "%~1"=="auto-sense" (
|
|
|
52
52
|
"!HIDDEN_RUN!" "%BIN%trillboards-hidden-run.vbs" "powershell.exe" "-NoProfile" "-ExecutionPolicy" "Bypass" "-WindowStyle" "Hidden" "-File" "%BIN%setup-litertlm.ps1" "-RequireBundledModel"
|
|
53
53
|
)
|
|
54
54
|
)
|
|
55
|
+
|
|
56
|
+
REM The on-device OBJECT DETECTOR, repaired on the same logon trigger. TWO
|
|
57
|
+
REM signals only -- the task exists, and the service answers on :9380.
|
|
58
|
+
REM
|
|
59
|
+
REM THE HEALTH PROBE ASKS WHETHER IT ANSWERS, NOT WHETHER IT IS READY, and
|
|
60
|
+
REM that is why there is no `--fail` here. The detector's model is OTA'd, so a
|
|
61
|
+
REM correctly-installed service reports 503 for as long as the artifact has not
|
|
62
|
+
REM landed -- minutes on a fresh install, indefinitely on a box that cannot
|
|
63
|
+
REM reach the CDN. Treating 503 as broken would reinstall a working tool on
|
|
64
|
+
REM every single logon. `curl.exe -o NUL -w %%{http_code}` returns 000 only
|
|
65
|
+
REM when nothing answered at all, which is the state worth repairing.
|
|
66
|
+
REM
|
|
67
|
+
REM There is deliberately no config-file check to match the litert-lm BOM test
|
|
68
|
+
REM above: this service is configured entirely on its command line, so it has
|
|
69
|
+
REM no file whose encoding could silently break it.
|
|
70
|
+
set "NEEDS_DETECTOR=0"
|
|
71
|
+
schtasks /Query /TN "TrillboardsDetector" >nul 2>&1
|
|
72
|
+
if errorlevel 1 set "NEEDS_DETECTOR=1"
|
|
73
|
+
for /f %%C in ('curl.exe --silent --output NUL --write-out "%%{http_code}" --max-time 2 http://127.0.0.1:9380/health 2^>nul') do set "DETECTOR_CODE=%%C"
|
|
74
|
+
if not defined DETECTOR_CODE set "NEEDS_DETECTOR=1"
|
|
75
|
+
if "!DETECTOR_CODE!"=="000" set "NEEDS_DETECTOR=1"
|
|
76
|
+
if "!NEEDS_DETECTOR!"=="1" if exist "%BIN%setup-detector.ps1" (
|
|
77
|
+
set "HIDDEN_RUN=%WINDIR%\System32\wscript.exe"
|
|
78
|
+
"!HIDDEN_RUN!" "%BIN%trillboards-hidden-run.vbs" "powershell.exe" "-NoProfile" "-ExecutionPolicy" "Bypass" "-WindowStyle" "Hidden" "-File" "%BIN%setup-detector.ps1"
|
|
79
|
+
)
|
|
55
80
|
)
|
|
56
81
|
|
|
57
82
|
"%BIN%node.exe" "%BIN%..\lib\edge-sdk\dist\cli.js" %*
|
|
@@ -204,6 +204,12 @@ export declare class AudienceAnalyzeClient {
|
|
|
204
204
|
* `localAnalyzeMs` for why it is sent.
|
|
205
205
|
*/
|
|
206
206
|
analyzeMs?: number;
|
|
207
|
+
/**
|
|
208
|
+
* The exact prompt this box put to the on-device model for THIS frame.
|
|
209
|
+
* Sent so `vision_call_log.prompt_text` stops being 0% populated on
|
|
210
|
+
* local-vlm rows while the cloud path is 100%.
|
|
211
|
+
*/
|
|
212
|
+
promptText?: string;
|
|
207
213
|
}): Promise<AudienceAnalyzeResponse>;
|
|
208
214
|
/**
|
|
209
215
|
* POST a FRAMELESS camera-health beacon. This is used when the connector can
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudienceAnalyzeClient.d.ts","sourceRoot":"","sources":["../src/AudienceAnalyzeClient.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"AudienceAnalyzeClient.d.ts","sourceRoot":"","sources":["../src/AudienceAnalyzeClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -216,6 +216,20 @@ class AudienceAnalyzeClient {
|
|
|
216
216
|
&& request.analyzeMs > 0
|
|
217
217
|
? { localAnalyzeMs: Math.round(request.analyzeMs) }
|
|
218
218
|
: {}),
|
|
219
|
+
// The QUESTION that produced `preAnalyzed`, reported by the box that
|
|
220
|
+
// asked it. Same defect as `localAnalyzeMs` above and the same fix: the
|
|
221
|
+
// connector computes this on every analysis (localSensing caches it as
|
|
222
|
+
// `cachedPrompt`) and then drops it, so the only way to see what we asked
|
|
223
|
+
// a customer's camera was to read the builder at whatever commit that box
|
|
224
|
+
// is running. That reconstruction has already been wrong once, and the
|
|
225
|
+
// prompt was the bug.
|
|
226
|
+
//
|
|
227
|
+
// Guarded, not trusted: the server sanitises again at the trust boundary
|
|
228
|
+
// (utils/localPromptText). Sending a non-string or an empty string would
|
|
229
|
+
// put a value that is not a prompt under a column name that says it is.
|
|
230
|
+
...(typeof request.promptText === 'string' && request.promptText.trim() !== ''
|
|
231
|
+
? { localPromptText: request.promptText }
|
|
232
|
+
: {}),
|
|
219
233
|
// Same last-spread override semantics as analyze(); see the note there.
|
|
220
234
|
...(request.extra || {}),
|
|
221
235
|
...(evidenceId ? { evidenceId } : {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudienceAnalyzeClient.js","sourceRoot":"","sources":["../src/AudienceAnalyzeClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AudienceAnalyzeClient.js","sourceRoot":"","sources":["../src/AudienceAnalyzeClient.ts"],"names":[],"mappings":"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"}
|
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.
|
|
47
|
+
const SDK_VERSION = '0.2.76';
|
|
48
48
|
class EdgeAgent extends events_1.EventEmitter {
|
|
49
49
|
constructor(config, deps) {
|
|
50
50
|
super();
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/** Where the detector service listens. Distinct port from litert-lm's 9379. */
|
|
2
|
+
export declare const DEFAULT_DETECTOR_PORT = 9380;
|
|
3
|
+
/** One detected object, in the coordinate space the frame was submitted in. */
|
|
4
|
+
export interface Detection {
|
|
5
|
+
/** Class label as the model names it, e.g. 'person'. Never an index. */
|
|
6
|
+
label: string;
|
|
7
|
+
/** 0..1 confidence. */
|
|
8
|
+
confidence: number;
|
|
9
|
+
/**
|
|
10
|
+
* Pixel-space box in the SUBMITTED frame's dimensions.
|
|
11
|
+
*
|
|
12
|
+
* Pixel, not normalised, because the submitted frame's size is known here and
|
|
13
|
+
* a normalised box would have to be de-normalised against a resolution this
|
|
14
|
+
* client would then have to carry. The zone test that consumes these compares
|
|
15
|
+
* against a NORMALISED `[0,1]` rectangle (`sensing_route_screens.focus_*`), so
|
|
16
|
+
* exactly one conversion is needed and it belongs at that comparison, once,
|
|
17
|
+
* where both the box and the frame size are in hand.
|
|
18
|
+
*/
|
|
19
|
+
box: {
|
|
20
|
+
x: number;
|
|
21
|
+
y: number;
|
|
22
|
+
width: number;
|
|
23
|
+
height: number;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export interface DetectResult {
|
|
27
|
+
detections: Detection[];
|
|
28
|
+
/** Wall-clock ms the service spent on inference, as the service reports it. */
|
|
29
|
+
inferenceMs: number | null;
|
|
30
|
+
/** The artifact that produced this, so a result can be attributed. */
|
|
31
|
+
model: string | null;
|
|
32
|
+
}
|
|
33
|
+
/** Injectable HTTP transport — lets tests stub the service entirely. */
|
|
34
|
+
export interface DetectorHttpPoster {
|
|
35
|
+
(url: string, options: {
|
|
36
|
+
method: string;
|
|
37
|
+
headers: Record<string, string>;
|
|
38
|
+
timeoutMs: number;
|
|
39
|
+
}, body: string | null): Promise<{
|
|
40
|
+
statusCode: number;
|
|
41
|
+
body: string;
|
|
42
|
+
}>;
|
|
43
|
+
}
|
|
44
|
+
export interface LocalDetectorClientOptions {
|
|
45
|
+
baseUrl?: string;
|
|
46
|
+
timeoutMs?: number;
|
|
47
|
+
/**
|
|
48
|
+
* Classes to return. Empty means every class the model knows.
|
|
49
|
+
*
|
|
50
|
+
* This is where `sensing_profiles.classes` lands — the array an LLM already
|
|
51
|
+
* writes on every profile from a COCO vocabulary, and which nothing has ever
|
|
52
|
+
* read. Filtering at the SERVICE keeps the wire small; filtering here would
|
|
53
|
+
* ship every box across loopback to throw most away.
|
|
54
|
+
*/
|
|
55
|
+
classes?: string[];
|
|
56
|
+
/** Minimum confidence. The service applies it; nothing re-filters downstream. */
|
|
57
|
+
minConfidence?: number;
|
|
58
|
+
}
|
|
59
|
+
/** The service was unreachable or answered non-2xx. Distinct from "no objects". */
|
|
60
|
+
export declare class DetectorUnavailableError extends Error {
|
|
61
|
+
}
|
|
62
|
+
export declare class LocalDetectorClient {
|
|
63
|
+
private readonly detectEndpoint;
|
|
64
|
+
private readonly healthEndpoint;
|
|
65
|
+
private readonly timeoutMs;
|
|
66
|
+
private readonly classes;
|
|
67
|
+
private readonly minConfidence;
|
|
68
|
+
private readonly poster;
|
|
69
|
+
constructor(options?: LocalDetectorClientOptions, poster?: DetectorHttpPoster);
|
|
70
|
+
getDetectEndpoint(): string;
|
|
71
|
+
/**
|
|
72
|
+
* Is the service up? A CHEAP probe — it must not run inference.
|
|
73
|
+
*
|
|
74
|
+
* Returns false rather than throwing: a connector whose detector is down must
|
|
75
|
+
* fall through to the VLM, not stop sensing. The runtime edge-cases runbook is
|
|
76
|
+
* a catalogue of the opposite mistake, where a failure could not report itself;
|
|
77
|
+
* this returns a boolean the caller is forced to look at.
|
|
78
|
+
*/
|
|
79
|
+
isHealthy(): Promise<boolean>;
|
|
80
|
+
/**
|
|
81
|
+
* Detect objects in one JPEG.
|
|
82
|
+
*
|
|
83
|
+
* Throws `DetectorUnavailableError` when the SERVICE failed. An empty
|
|
84
|
+
* `detections` array is a RESULT — the frame genuinely had nothing — and the
|
|
85
|
+
* two must never collapse into one another: a gate that reads "service down"
|
|
86
|
+
* as "nothing there" suppresses every alert while looking healthy.
|
|
87
|
+
*/
|
|
88
|
+
detect(jpeg: Buffer): Promise<DetectResult>;
|
|
89
|
+
}
|
|
90
|
+
/** Node built-ins only — no new dependency, matching LiteRtVlmProvider. */
|
|
91
|
+
export declare const defaultDetectorPoster: DetectorHttpPoster;
|
|
92
|
+
//# sourceMappingURL=LocalDetectorClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalDetectorClient.d.ts","sourceRoot":"","sources":["../src/LocalDetectorClient.ts"],"names":[],"mappings":"AA6DA,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,+EAA+E;AAC/E,MAAM,WAAW,SAAS;IACxB,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;;;;OASG;IACH,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9D;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,+EAA+E;IAC/E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,sEAAsE;IACtE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,wEAAwE;AACxE,MAAM,WAAW,kBAAkB;IACjC,CACE,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAC/E,IAAI,EAAE,MAAM,GAAG,IAAI,GAClB,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAmBD,mFAAmF;AACnF,qBAAa,wBAAyB,SAAQ,KAAK;CAAG;AAEtD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;gBAEhC,OAAO,GAAE,0BAA+B,EAAE,MAAM,CAAC,EAAE,kBAAkB;IAUjF,iBAAiB,IAAI,MAAM;IAE3B;;;;;;;OAOG;IACG,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAanC;;;;;;;OAOG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAmFlD;AAED,2EAA2E;AAC3E,eAAO,MAAM,qBAAqB,EAAE,kBA+ChC,CAAC"}
|