@trillboards/edge-sdk 0.2.7 → 0.2.9
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/windows/README.md
CHANGED
|
@@ -55,16 +55,21 @@ serves every Windows 10/11 — no per-arch builds.
|
|
|
55
55
|
|
|
56
56
|
Requires NSIS and 7-Zip on PATH (`choco install nsis 7zip -y`). The release workflow publishes
|
|
57
57
|
the `.exe` to `s3://trillboards-screen-static/connector/trillboards-connector-windows.exe`
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
plus `trillboards-connector-windows.version.json`, containing the exact connector
|
|
59
|
+
version, production commit, SHA-256, file size, and publication time. It then
|
|
60
|
+
invalidates the `screen.trillboards.com` CloudFront distribution, so the portal's
|
|
61
|
+
stable download URL never changes while field tests remain artifact-verifiable.
|
|
60
62
|
|
|
61
63
|
## Notes
|
|
62
64
|
|
|
63
65
|
- Production `.exe` artifacts are signed with Azure Trusted Signing and checked
|
|
64
66
|
with `Get-AuthenticodeSignature` before CDN publication.
|
|
65
|
-
- The one-file wrapper uses the official
|
|
66
|
-
|
|
67
|
-
|
|
67
|
+
- The one-file wrapper uses `7zSD.sfx` from the official LZMA SDK, which Igor
|
|
68
|
+
Pavlov places in the public domain. It launches the signed inner installer
|
|
69
|
+
directly with an empty SFX directory prefix so its absolute temporary path is
|
|
70
|
+
not rewritten as a relative command. The release workflow executes that final
|
|
71
|
+
wrapper before CDN publication. Source and license information are at
|
|
72
|
+
https://www.7-zip.org/.
|
|
68
73
|
- The legacy `install-service.ps1` (local-inference: requires system Node + npm
|
|
69
74
|
install + ONNX models + a hand-edited deviceToken) is a different, older path.
|
|
70
75
|
This local-first installer supersedes it for BYO-CCTV onboarding.
|
|
@@ -17,8 +17,8 @@ param(
|
|
|
17
17
|
[string]$ModelPath = "",
|
|
18
18
|
[string]$ModelUrl = "https://huggingface.co/litert-community/gemma-4-E2B-it-litert-lm/resolve/main/gemma-4-E2B-it.litertlm",
|
|
19
19
|
[string]$ModelSha256 = "181938105e0eefd105961417e8da75903eacda102c4fce9ce90f50b97139a63c",
|
|
20
|
-
[string]$SevenZipSdkUrl = "https://www.7-zip.org/a/
|
|
21
|
-
[string]$SevenZipSdkSha256 = "
|
|
20
|
+
[string]$SevenZipSdkUrl = "https://www.7-zip.org/a/lzma2602.7z",
|
|
21
|
+
[string]$SevenZipSdkSha256 = "2878c85f5f43a4a4e0952b1fd4e5fe097c1c143997a8047c7e1e788892aa9357"
|
|
22
22
|
)
|
|
23
23
|
|
|
24
24
|
$ErrorActionPreference = "Stop"
|
|
@@ -84,27 +84,12 @@ if (-not $sfxModule) { Fail "official 7zSD.sfx installer module was not found" }
|
|
|
84
84
|
$innerName = "TrillboardsEdgeSetup-core.exe"
|
|
85
85
|
Copy-Item -LiteralPath $InnerInstaller -Destination (Join-Path $Stage $innerName) -Force
|
|
86
86
|
$sevenZipNotice = @'
|
|
87
|
-
This installer uses
|
|
88
|
-
|
|
87
|
+
This installer uses 7zSD.sfx from the LZMA SDK.
|
|
88
|
+
The LZMA SDK is placed in the public domain by Igor Pavlov.
|
|
89
89
|
Source and license information: https://www.7-zip.org/
|
|
90
90
|
'@
|
|
91
91
|
[System.IO.File]::WriteAllText((Join-Path $Stage "7zip-NOTICE.txt"), $sevenZipNotice, [System.Text.UTF8Encoding]::new($false))
|
|
92
92
|
|
|
93
|
-
$launcher = @'
|
|
94
|
-
Option Explicit
|
|
95
|
-
Dim shell, fso, base, installer, model, command, result
|
|
96
|
-
Set shell = CreateObject("WScript.Shell")
|
|
97
|
-
Set fso = CreateObject("Scripting.FileSystemObject")
|
|
98
|
-
base = fso.GetParentFolderName(WScript.ScriptFullName)
|
|
99
|
-
installer = fso.BuildPath(base, "TrillboardsEdgeSetup-core.exe")
|
|
100
|
-
model = fso.BuildPath(base, "gemma-4-E2B-it.litertlm")
|
|
101
|
-
shell.Environment("Process")("TRILLBOARDS_BUNDLED_MODEL_PATH") = model
|
|
102
|
-
command = Chr(34) & installer & Chr(34) & " /MODEL_SOURCE=" & Chr(34) & model & Chr(34)
|
|
103
|
-
result = shell.Run(command, 1, True)
|
|
104
|
-
WScript.Quit result
|
|
105
|
-
'@
|
|
106
|
-
[System.IO.File]::WriteAllText((Join-Path $Stage "install-bundled-ai.vbs"), $launcher, [System.Text.UTF8Encoding]::new($false))
|
|
107
|
-
|
|
108
93
|
$archive = Join-Path $Scratch "trillboards-cctv.7z"
|
|
109
94
|
Push-Location $Stage
|
|
110
95
|
try {
|
|
@@ -123,7 +108,8 @@ $config = @'
|
|
|
123
108
|
Title="Trillboards CCTV Setup"
|
|
124
109
|
Progress="yes"
|
|
125
110
|
GUIMode="1"
|
|
126
|
-
|
|
111
|
+
Directory=""
|
|
112
|
+
RunProgram="\"%%T\TrillboardsEdgeSetup-core.exe\" /MODEL_SOURCE=\"%%T\gemma-4-E2B-it.litertlm\""
|
|
127
113
|
;!@InstallEnd@!
|
|
128
114
|
'@
|
|
129
115
|
$configPath = Join-Path $Scratch "sfx-config.txt"
|
|
@@ -57,18 +57,43 @@ BrandingText "Trillboards"
|
|
|
57
57
|
!insertmacro MUI_LANGUAGE "English"
|
|
58
58
|
|
|
59
59
|
Function .onInit
|
|
60
|
-
; The SFX launcher
|
|
61
|
-
;
|
|
62
|
-
; recovery fallback.
|
|
60
|
+
; The SFX launcher passes its absolute extraction path. Keep the environment
|
|
61
|
+
; value as an engineering and recovery fallback for the signed inner package.
|
|
63
62
|
ReadEnvStr $ModelSource "TRILLBOARDS_BUNDLED_MODEL_PATH"
|
|
64
63
|
${If} $ModelSource == ""
|
|
65
64
|
${GetParameters} $0
|
|
66
65
|
${GetOptions} $0 "/MODEL_SOURCE=" $ModelSource
|
|
67
66
|
${EndIf}
|
|
68
67
|
${If} $ModelSource == ""
|
|
68
|
+
ReadEnvStr $1 "TRILLBOARDS_BUNDLE_RELEASE_SMOKE_MARKER"
|
|
69
|
+
${If} $1 != ""
|
|
70
|
+
SetErrorLevel 2
|
|
71
|
+
Quit
|
|
72
|
+
${EndIf}
|
|
69
73
|
MessageBox MB_ICONSTOP|MB_OK "This installer is missing its included local AI model. Download the complete Trillboards CCTV installer and try again."
|
|
70
74
|
Abort
|
|
71
75
|
${EndIf}
|
|
76
|
+
|
|
77
|
+
; The production release runs the final signed customer SFX once before CDN
|
|
78
|
+
; publication. This branch proves that the wrapper extracted the model and
|
|
79
|
+
; launched this exact signed inner installer without modifying the machine.
|
|
80
|
+
ReadEnvStr $1 "TRILLBOARDS_BUNDLE_RELEASE_SMOKE_MARKER"
|
|
81
|
+
${If} $1 != ""
|
|
82
|
+
${IfNot} ${FileExists} "$ModelSource"
|
|
83
|
+
SetErrorLevel 2
|
|
84
|
+
Quit
|
|
85
|
+
${EndIf}
|
|
86
|
+
ClearErrors
|
|
87
|
+
FileOpen $2 "$1" w
|
|
88
|
+
IfErrors bundle_smoke_failed
|
|
89
|
+
FileWrite $2 "Trillboards customer bundle launch OK$\r$\n"
|
|
90
|
+
FileClose $2
|
|
91
|
+
SetErrorLevel 0
|
|
92
|
+
Quit
|
|
93
|
+
bundle_smoke_failed:
|
|
94
|
+
SetErrorLevel 3
|
|
95
|
+
Quit
|
|
96
|
+
${EndIf}
|
|
72
97
|
FunctionEnd
|
|
73
98
|
|
|
74
99
|
Section "Install"
|
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.9';
|
|
48
48
|
class EdgeAgent extends events_1.EventEmitter {
|
|
49
49
|
constructor(config, deps) {
|
|
50
50
|
super();
|
package/dist/diagnose.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export interface DiagnosticReport {
|
|
|
21
21
|
warnings: number;
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
-
declare const SDK_VERSION = "0.2.
|
|
24
|
+
declare const SDK_VERSION = "0.2.9";
|
|
25
25
|
declare function checkNodeVersion(): CheckResult;
|
|
26
26
|
declare function checkPlatform(): CheckResult;
|
|
27
27
|
declare function checkMemory(): CheckResult;
|
package/dist/diagnose.js
CHANGED
|
@@ -59,7 +59,7 @@ const modelIntegrity_1 = require("./modelIntegrity");
|
|
|
59
59
|
// ---------------------------------------------------------------------------
|
|
60
60
|
// SDK version — mirrors package.json; kept in sync by CI
|
|
61
61
|
// ---------------------------------------------------------------------------
|
|
62
|
-
const SDK_VERSION = '0.2.
|
|
62
|
+
const SDK_VERSION = '0.2.9';
|
|
63
63
|
exports._SDK_VERSION = SDK_VERSION;
|
|
64
64
|
// ---------------------------------------------------------------------------
|
|
65
65
|
// ANSI helpers (no external deps)
|