@trillboards/edge-sdk 0.2.132 → 0.2.135

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.
@@ -125,20 +125,39 @@ CONFIG_JSON="$LITERT_DIR/config.json"
125
125
  LITERTLM_PROBE_JPEG_B64="/9j/4AAQSkZJRgABAgAAAQABAAD//gAPTGF2YzYzLjEuMTAxAP/bAEMACD4+ST5JVVVVVVVVZF1kaGhoZGRkZGhoaHBwcIODg3BwcGhocHB8fIODj5OPh4eDh5OTm5uburqystnZ4P/////EAEoAAQAAAAAAAAAAAAAAAAAAAAABAQAAAAAAAAAAAAAAAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAARAQAAAAAAAAAAAAAAAAAAAAD/wAARCAAgACADASIAAhEAAxEA/9oADAMBAAIRAxEAPwAAAAAAAAD/2Q=="
126
126
 
127
127
  # Write config.json. $1 = "gpu" pins the vision encoder; empty leaves it on the
128
- # CPU default. speculative_decoding is written EITHER WAY -- it is delegate
129
- # independent and byte-identical, so it survives the fallback.
128
+ # CPU default. $2 = "true"/"false" for speculative decoding.
129
+ #
130
+ # BOTH ARE ALWAYS WRITTEN EXPLICITLY, AND THE SECOND ONE IS NEW.
131
+ #
132
+ # `speculative_decoding` used to be written unconditionally `true` under a
133
+ # comment asserting it is "delegate independent, so it survives the fallback".
134
+ # The evidence for that is two arms on ONE machine — an M4 Max, GPU/Metal for the
135
+ # headline 1.433x, and its own CPU arm for the 2026-08-19 A/B in
136
+ # `cctv-local-inference-hardware-floor.md`. Neither is a measurement of any box
137
+ # we sell, and this file already refuses to leave an unverified `vision_backend`
138
+ # on disk for exactly that reason. The rung below applies the same rule to this
139
+ # key: prove it on THIS box, and back it out if the serve cannot answer with it.
140
+ #
141
+ # EXPLICIT `false` RATHER THAN OMITTING THE KEY, and that is measured too:
142
+ # litert-lm 0.16.0 logs `Using speculative_decoding from config for model
143
+ # '<id>': <bool>` on every request when the key is PRESENT and says NOTHING AT
144
+ # ALL when it is absent (checked on a c4-standard-8, 2026-09-04). A box whose
145
+ # state is unreadable from its own log is a box whose next incident is diagnosed
146
+ # by guessing — which is what happened when a GCE box SEGV-looped on 2026-09-02
147
+ # and the config had to be edited by hand to find out what it had been doing.
130
148
  write_litertlm_config() {
131
149
  _vision="$1"
150
+ _speculative="${2:-true}"
132
151
  mkdir -p "$LITERT_DIR" 2>/dev/null || true
133
152
  if [ -n "$_vision" ]; then
134
- printf '{"models":{"%s":{"vision_backend":"%s","speculative_decoding":true}}}\n' \
135
- "$MODEL_ID" "$_vision" > "$CONFIG_JSON.tmp" 2>/dev/null || return 1
153
+ printf '{"models":{"%s":{"vision_backend":"%s","speculative_decoding":%s}}}\n' \
154
+ "$MODEL_ID" "$_vision" "$_speculative" > "$CONFIG_JSON.tmp" 2>/dev/null || return 1
136
155
  else
137
- printf '{"models":{"%s":{"speculative_decoding":true}}}\n' \
138
- "$MODEL_ID" > "$CONFIG_JSON.tmp" 2>/dev/null || return 1
156
+ printf '{"models":{"%s":{"speculative_decoding":%s}}}\n' \
157
+ "$MODEL_ID" "$_speculative" > "$CONFIG_JSON.tmp" 2>/dev/null || return 1
139
158
  fi
140
159
  mv -f "$CONFIG_JSON.tmp" "$CONFIG_JSON" 2>/dev/null || return 1
141
- log "wrote $CONFIG_JSON (vision_backend=${_vision:-cpu-default}, speculative_decoding=true)"
160
+ log "wrote $CONFIG_JSON (vision_backend=${_vision:-cpu-default}, speculative_decoding=$_speculative)"
142
161
  }
143
162
 
144
163
  # -- The one knob config.json cannot express -----------------------------------
@@ -237,6 +256,26 @@ verify_litertlm_vision() {
237
256
  [ "$_code" = "200" ]
238
257
  }
239
258
 
259
+ # The same probe, but asking for NO delegate suffix rather than `,gpu`.
260
+ #
261
+ # WHY A SECOND FUNCTION AND NOT A FLAG: `verify_litertlm_vision` posts
262
+ # `$MODEL_ID,gpu`, which is what the connector sends, and litert-lm returns 200
263
+ # for a delegate token it cannot honour — so on the later rungs that suffix would
264
+ # prove nothing about the thing being tested and could mask it. Here the model id
265
+ # carries no suffix at all, so a 200 means the box built an engine and ran a real
266
+ # image through it under the config now on disk, which is exactly the claim each
267
+ # rung needs.
268
+ verify_litertlm_plain_inference() {
269
+ _body="$LITERT_DIR/.plain-probe.json"
270
+ printf '{"model":"%s","messages":[{"role":"user","content":[{"type":"text","text":"Reply with the single word: ok"},{"type":"image_url","image_url":{"url":"data:image/jpeg;base64,%s"}}]}],"max_completion_tokens":8,"temperature":0}' \
271
+ "$MODEL_ID" "$LITERTLM_PROBE_JPEG_B64" > "$_body" 2>/dev/null || return 1
272
+ _code=$(curl -s -o /dev/null -w '%{http_code}' --max-time 180 \
273
+ -X POST "http://127.0.0.1:$SERVE_PORT/v1/chat/completions" \
274
+ -H 'Content-Type: application/json' --data-binary @"$_body" 2>/dev/null)
275
+ rm -f "$_body" 2>/dev/null || true
276
+ [ "$_code" = "200" ]
277
+ }
278
+
240
279
  local_ai_healthy() {
241
280
  curl -fsS --max-time 3 "http://127.0.0.1:$SERVE_PORT/v1/models" 2>/dev/null \
242
281
  | grep -Fq "$MODEL_ID"
@@ -483,7 +522,7 @@ if [ -f "$TEMPLATE" ]; then
483
522
  -e "s#__PORT__#$SERVE_PORT#g" \
484
523
  -e "s#__LOG_DIR__#$LOG_DIR#g" \
485
524
  "$TEMPLATE" > "$TARGET" 2>/dev/null || log "WARN: could not render serve plist"
486
- write_litertlm_config "gpu" || log "WARN: could not write $CONFIG_JSON - the serve will use its defaults"
525
+ write_litertlm_config "gpu" "true" || log "WARN: could not write $CONFIG_JSON - the serve will use its defaults"
487
526
  restart_launch_agent \
488
527
  || { [ "$REQUIRE_BUNDLED_MODEL" = "1" ] && fail "local AI service could not be started"; log "WARN: launchctl bootstrap failed for serve agent"; }
489
528
  else
@@ -491,26 +530,66 @@ else
491
530
  log "WARN: serve plist template missing at $TEMPLATE"
492
531
  fi
493
532
 
494
- # The GPU-vision cascade. `local_ai_healthy` only proves /v1/models answers, and
495
- # that route never builds an engine - so it cannot see a GPU vision encoder that
496
- # fails on first USE. One real image inference is the only thing that can, and if
497
- # it does not answer we fall back to the CPU encoder rather than leave the host
498
- # unable to sense at all.
533
+ # The engine-settings cascade. `local_ai_healthy` only proves /v1/models answers,
534
+ # and that route never builds an engine - so it cannot see a GPU vision encoder
535
+ # that fails on first USE. One real image inference is the only thing that can,
536
+ # and if it does not answer we drop one optimism at a time rather than leave the
537
+ # host unable to sense at all.#
538
+ # THREE RUNGS, NOT TWO, AND THE THIRD IS THE SAME RULE AS THE FIRST. There are
539
+ # two optimistic engine settings in this file and only one of them was ever
540
+ # checked. Each rung drops exactly one and re-asks the same question, so a box
541
+ # ends on the configuration with the fewest unverified assumptions it can
542
+ # actually serve on:
543
+ #
544
+ # 1. vision_backend=gpu + speculative_decoding=true the measured fast path
545
+ # 2. speculative_decoding=true GPU vision unusable here
546
+ # 3. speculative_decoding=false neither is usable here
547
+ #
548
+ # Rung 3 can only turn a NON-SERVING box into a serving one: it is reached only
549
+ # after the box has already failed rung 2, which today is the give-up path.
550
+ # `speculative_decoding` is a draft-plus-verify scheme — strictly more compute
551
+ # per token, needing spare parallelism to win — and every number we have for it
552
+ # was measured on ONE machine (M4 Max: Metal for the 1.433x headline, its own CPU
553
+ # arm for the 2026-08-19 A/B). Dropping it costs speed on a box that has already
554
+ # failed twice, and a slow box is a box that is serving.
555
+ _wait_for_local_ai() {
556
+ for _attempt in $(seq 1 60); do
557
+ local_ai_healthy && return 0
558
+ sleep 2
559
+ done
560
+ return 1
561
+ }
562
+
499
563
  litertlm_vision_cascade() {
500
564
  if verify_litertlm_vision; then
501
565
  log "local AI healthy with the GPU vision encoder"
502
566
  return 0
503
567
  fi
504
568
  log "WARN: GPU vision encoder did not answer a probe inference - falling back to the CPU encoder"
505
- write_litertlm_config "" || log "WARN: could not rewrite $CONFIG_JSON"
506
- restart_launch_agent || log "WARN: could not restart the serve agent after the vision fallback"
507
- for _attempt in $(seq 1 60); do
508
- if local_ai_healthy; then
509
- log "local AI healthy on the CPU vision encoder (slower, but serving)"
510
- return 0
511
- fi
512
- sleep 2
513
- done
569
+ write_litertlm_config "" "true" || log "WARN: could not rewrite $CONFIG_JSON"
570
+ # A RUNG MAY ONLY BE GRADED IF ITS CONFIG IS THE ONE RUNNING. A restart that
571
+ # did not happen leaves the PREVIOUS rung's engine answering, so the probe
572
+ # below would fail for the previous rung's reason and descending on it would
573
+ # disable speculative decoding without ever having tested it.
574
+ if ! restart_launch_agent; then
575
+ log "WARN: could not restart the serve agent, so the config just written is NOT the one running"
576
+ log "WARN: leaving the CPU vision encoder on disk unevaluated - ensure-litertlm.sh re-runs this and grades it"
577
+ return 1
578
+ fi
579
+ if _wait_for_local_ai && verify_litertlm_plain_inference; then
580
+ log "local AI healthy on the CPU vision encoder (slower, but serving)"
581
+ return 0
582
+ fi
583
+ log "WARN: the CPU vision encoder did not answer either - retrying without speculative decoding"
584
+ write_litertlm_config "" "false" || log "WARN: could not rewrite $CONFIG_JSON"
585
+ if ! restart_launch_agent; then
586
+ log "WARN: could not restart the serve agent, so the config just written is NOT the one running"
587
+ return 1
588
+ fi
589
+ if _wait_for_local_ai && verify_litertlm_plain_inference; then
590
+ log "local AI healthy WITHOUT speculative decoding (slower still, but serving)"
591
+ return 0
592
+ fi
514
593
  return 1
515
594
  }
516
595
 
@@ -38,13 +38,41 @@ EOF
38
38
 
39
39
  # Fake curl models BOTH endpoints the setup script uses:
40
40
  # GET /v1/models -> the catalogue body `local_ai_healthy` greps
41
- # POST /v1/chat/completions -> the vision probe, which asks for `%{http_code}`
42
- # TRILLBOARDS_TEST_VISION_PROBE_CODE lets a test drive the GPU-vision fallback.
41
+ # POST /v1/chat/completions -> a probe inference, which asks for `%{http_code}`
42
+ #
43
+ # IT TELLS THE TWO PROBES APART BY THE MODEL ID IN THE BODY, and it has to: the
44
+ # cascade's rungs differ in which id they post (`<id>,gpu` for the GPU-vision
45
+ # rung, the bare id afterwards) and a fake that answers both identically cannot
46
+ # exercise a cascade whose whole job is to distinguish them.
47
+ #
48
+ # TRILLBOARDS_TEST_VISION_PROBE_CODE the `,gpu` probe's status
49
+ # TRILLBOARDS_TEST_PLAIN_PROBE_CODE the bare-id probe's status
50
+ # TRILLBOARDS_TEST_FAIL_WHEN_SPECULATIVE=1
51
+ # a box that cannot infer at all while `speculative_decoding` is true. The
52
+ # fake reads the config the script just wrote, which is the only way to
53
+ # exercise a rung defined by what that file says.
43
54
  cat >"$FAKE_BIN/curl" <<'EOF'
44
55
  #!/bin/bash
56
+ body=""
57
+ prev=""
58
+ for arg in "$@"; do
59
+ case "$prev" in
60
+ --data-binary) body="${arg#@}" ;;
61
+ esac
62
+ prev="$arg"
63
+ done
45
64
  for arg in "$@"; do
46
65
  if [ "$arg" = "-w" ]; then
47
- printf '%s' "${TRILLBOARDS_TEST_VISION_PROBE_CODE:-200}"
66
+ if [ "${TRILLBOARDS_TEST_FAIL_WHEN_SPECULATIVE:-0}" = "1" ] \
67
+ && grep -Fq '"speculative_decoding":true' "$LITERT_LM_DIR/config.json" 2>/dev/null; then
68
+ printf '500'
69
+ exit 0
70
+ fi
71
+ if [ -n "$body" ] && grep -Fq ',gpu"' "$body" 2>/dev/null; then
72
+ printf '%s' "${TRILLBOARDS_TEST_VISION_PROBE_CODE:-200}"
73
+ else
74
+ printf '%s' "${TRILLBOARDS_TEST_PLAIN_PROBE_CODE:-200}"
75
+ fi
48
76
  exit 0
49
77
  fi
50
78
  done
@@ -147,9 +175,10 @@ grep -Fq 'falling back to the CPU encoder' <<<"$OUTPUT2"
147
175
  grep -Fq 'local AI healthy on the CPU vision encoder' <<<"$OUTPUT2"
148
176
  grep -Fq 'local AI is installed and healthy' <<<"$OUTPUT2"
149
177
 
150
- # The fallback must REMOVE vision_backend and KEEP speculative_decoding: the
151
- # latter is delegate independent and byte-identical to greedy, so it is still
152
- # correct on a CPU-vision host and is the only speedup that host keeps.
178
+ # The vision fallback must REMOVE vision_backend and KEEP speculative_decoding.
179
+ # ONE RUNG DROPS ONE OPTIMISM: this box proved it can infer with speculative
180
+ # decoding on, so taking it away here would cost speed for a reason that was
181
+ # just disproved on this machine.
153
182
  if grep -Fq 'vision_backend' "$LITERT_LM_DIR/config.json"; then
154
183
  printf 'FAIL: fallback left vision_backend in config.json\n' >&2
155
184
  cat "$LITERT_LM_DIR/config.json" >&2
@@ -163,5 +192,60 @@ grep -Fq '"speculative_decoding":true' "$LITERT_LM_DIR/config.json"
163
192
 
164
193
  unset TRILLBOARDS_TEST_VISION_PROBE_CODE
165
194
 
166
- printf 'macOS LiteRT-LM reinstall race + GPU-vision fallback regressions passed\n'
195
+ # -- Scenario 2b: the CPU-VISION rung is verified by an INFERENCE, not by health
196
+ #
197
+ # `local_ai_healthy` only proves /v1/models answers, and this script's own
198
+ # comment says that route never builds an engine. Before this, the CPU-vision
199
+ # rung was accepted on health alone — so a box that fell back and STILL could not
200
+ # infer logged "healthy on the CPU vision encoder (slower, but serving)" and
201
+ # exited 0 while every frame 500s. That is how the UTF-8 BOM shipped as a green
202
+ # install on Windows, which is the platform that already re-probes here.
203
+ printf 'loaded\n' >"$TRILLBOARDS_TEST_STATE_DIR/service-state"
204
+ printf '0\n' >"$TRILLBOARDS_TEST_STATE_DIR/bootstrap-attempts"
205
+ export TRILLBOARDS_TEST_VISION_PROBE_CODE=500
206
+ export TRILLBOARDS_TEST_PLAIN_PROBE_CODE=500
207
+ if OUTPUT2B="$(/bin/bash "$SETUP" 2>&1)"; then
208
+ printf '%s\n' "$OUTPUT2B" >&2
209
+ printf 'FAIL: setup reported success on a box that could not infer on ANY rung\n' >&2
210
+ exit 1
211
+ fi
212
+ if grep -Fq 'local AI healthy on the CPU vision encoder' <<<"$OUTPUT2B"; then
213
+ printf 'FAIL: the CPU-vision rung was accepted on health alone\n' >&2
214
+ exit 1
215
+ fi
216
+ unset TRILLBOARDS_TEST_VISION_PROBE_CODE TRILLBOARDS_TEST_PLAIN_PROBE_CODE
217
+
218
+ # -- Scenario 3: a host that cannot infer while speculative decoding is on -----
219
+ #
220
+ # `speculative_decoding` is the second optimistic engine setting this file
221
+ # writes, and until 2026-09-04 it was written unconditionally `true` under a
222
+ # comment calling it "delegate independent" — a property measured on ONE machine
223
+ # (an M4 Max, both arms). This rung is the same rule the vision backend already
224
+ # gets: prove it on THIS box, and back it out if the serve cannot answer with it.
225
+ #
226
+ # It can only turn a NON-SERVING box into a serving one — it is reached only
227
+ # after the box has already failed the rung above, which used to be the give-up
228
+ # path.
229
+ printf 'loaded\n' >"$TRILLBOARDS_TEST_STATE_DIR/service-state"
230
+ printf '0\n' >"$TRILLBOARDS_TEST_STATE_DIR/bootstrap-attempts"
231
+ export TRILLBOARDS_TEST_FAIL_WHEN_SPECULATIVE=1
232
+
233
+ if ! OUTPUT3="$(/bin/bash "$SETUP" 2>&1)"; then
234
+ printf '%s\n' "$OUTPUT3" >&2
235
+ printf 'FAIL: setup exited non-zero on a box that serves without speculative decoding\n' >&2
236
+ exit 1
237
+ fi
238
+
239
+ grep -Fq 'retrying without speculative decoding' <<<"$OUTPUT3"
240
+ grep -Fq 'local AI healthy WITHOUT speculative decoding' <<<"$OUTPUT3"
241
+ grep -Fq 'local AI is installed and healthy' <<<"$OUTPUT3"
242
+ grep -Fq '"speculative_decoding":false' "$LITERT_LM_DIR/config.json"
243
+ if grep -Fq 'vision_backend' "$LITERT_LM_DIR/config.json"; then
244
+ printf 'FAIL: the speculative-decoding rung left vision_backend in config.json\n' >&2
245
+ exit 1
246
+ fi
247
+
248
+ unset TRILLBOARDS_TEST_FAIL_WHEN_SPECULATIVE
249
+
250
+ printf 'macOS LiteRT-LM reinstall race + engine-settings cascade regressions passed\n'
167
251
 
@@ -133,20 +133,39 @@ CONFIG_JSON="$LITERT_DIR/config.json"
133
133
  LITERTLM_PROBE_JPEG_B64="/9j/4AAQSkZJRgABAgAAAQABAAD//gAPTGF2YzYzLjEuMTAxAP/bAEMACD4+ST5JVVVVVVVVZF1kaGhoZGRkZGhoaHBwcIODg3BwcGhocHB8fIODj5OPh4eDh5OTm5uburqystnZ4P/////EAEoAAQAAAAAAAAAAAAAAAAAAAAABAQAAAAAAAAAAAAAAAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAARAQAAAAAAAAAAAAAAAAAAAAD/wAARCAAgACADASIAAhEAAxEA/9oADAMBAAIRAxEAPwAAAAAAAAD/2Q=="
134
134
 
135
135
  # Write config.json. $1 = "gpu" pins the vision encoder; empty leaves it on the
136
- # CPU default. speculative_decoding is written EITHER WAY -- it is delegate
137
- # independent and byte-identical, so it survives the fallback.
136
+ # CPU default. $2 = "true"/"false" for speculative decoding.
137
+ #
138
+ # BOTH ARE ALWAYS WRITTEN EXPLICITLY, AND THE SECOND ONE IS NEW.
139
+ #
140
+ # `speculative_decoding` used to be written unconditionally `true` under a
141
+ # comment asserting it is "delegate independent, so it survives the fallback".
142
+ # The evidence for that is two arms on ONE machine — an M4 Max, GPU/Metal for the
143
+ # headline 1.433x, and its own CPU arm for the 2026-08-19 A/B in
144
+ # `cctv-local-inference-hardware-floor.md`. Neither is a measurement of any box
145
+ # we sell, and this file already refuses to leave an unverified `vision_backend`
146
+ # on disk for exactly that reason. The rung below applies the same rule to this
147
+ # key: prove it on THIS box, and back it out if the serve cannot answer with it.
148
+ #
149
+ # EXPLICIT `false` RATHER THAN OMITTING THE KEY, and that is measured too:
150
+ # litert-lm 0.16.0 logs `Using speculative_decoding from config for model
151
+ # '<id>': <bool>` on every request when the key is PRESENT and says NOTHING AT
152
+ # ALL when it is absent (checked on a c4-standard-8, 2026-09-04). A box whose
153
+ # state is unreadable from its own log is a box whose next incident is diagnosed
154
+ # by guessing — which is what happened when a GCE box SEGV-looped on 2026-09-02
155
+ # and the config had to be edited by hand to find out what it had been doing.
138
156
  write_litertlm_config() {
139
157
  _vision="$1"
158
+ _speculative="${2:-true}"
140
159
  mkdir -p "$LITERT_DIR" 2>/dev/null || true
141
160
  if [ -n "$_vision" ]; then
142
- printf '{"models":{"%s":{"vision_backend":"%s","speculative_decoding":true}}}\n' \
143
- "$MODEL_ID" "$_vision" > "$CONFIG_JSON.tmp" 2>/dev/null || return 1
161
+ printf '{"models":{"%s":{"vision_backend":"%s","speculative_decoding":%s}}}\n' \
162
+ "$MODEL_ID" "$_vision" "$_speculative" > "$CONFIG_JSON.tmp" 2>/dev/null || return 1
144
163
  else
145
- printf '{"models":{"%s":{"speculative_decoding":true}}}\n' \
146
- "$MODEL_ID" > "$CONFIG_JSON.tmp" 2>/dev/null || return 1
164
+ printf '{"models":{"%s":{"speculative_decoding":%s}}}\n' \
165
+ "$MODEL_ID" "$_speculative" > "$CONFIG_JSON.tmp" 2>/dev/null || return 1
147
166
  fi
148
167
  mv -f "$CONFIG_JSON.tmp" "$CONFIG_JSON" 2>/dev/null || return 1
149
- log "wrote $CONFIG_JSON (vision_backend=${_vision:-cpu-default}, speculative_decoding=true)"
168
+ log "wrote $CONFIG_JSON (vision_backend=${_vision:-cpu-default}, speculative_decoding=$_speculative)"
150
169
  }
151
170
 
152
171
  # -- The one knob config.json cannot express -----------------------------------
@@ -245,6 +264,26 @@ verify_litertlm_vision() {
245
264
  [ "$_code" = "200" ]
246
265
  }
247
266
 
267
+ # The same probe, but asking for NO delegate suffix rather than `,gpu`.
268
+ #
269
+ # WHY A SECOND FUNCTION AND NOT A FLAG: `verify_litertlm_vision` posts
270
+ # `$MODEL_ID,gpu`, which is what the connector sends, and litert-lm returns 200
271
+ # for a delegate token it cannot honour — so on the later rungs that suffix would
272
+ # prove nothing about the thing being tested and could mask it. Here the model id
273
+ # carries no suffix at all, so a 200 means the box built an engine and ran a real
274
+ # image through it under the config now on disk, which is exactly the claim each
275
+ # rung needs.
276
+ verify_litertlm_plain_inference() {
277
+ _body="$LITERT_DIR/.plain-probe.json"
278
+ printf '{"model":"%s","messages":[{"role":"user","content":[{"type":"text","text":"Reply with the single word: ok"},{"type":"image_url","image_url":{"url":"data:image/jpeg;base64,%s"}}]}],"max_completion_tokens":8,"temperature":0}' \
279
+ "$MODEL_ID" "$LITERTLM_PROBE_JPEG_B64" > "$_body" 2>/dev/null || return 1
280
+ _code=$(curl -s -o /dev/null -w '%{http_code}' --max-time 180 \
281
+ -X POST "http://127.0.0.1:$SERVE_PORT/v1/chat/completions" \
282
+ -H 'Content-Type: application/json' --data-binary @"$_body" 2>/dev/null)
283
+ rm -f "$_body" 2>/dev/null || true
284
+ [ "$_code" = "200" ]
285
+ }
286
+
248
287
  local_ai_healthy() {
249
288
  curl -fsS --max-time 3 "http://127.0.0.1:$SERVE_PORT/v1/models" 2>/dev/null \
250
289
  | grep -Fq "$MODEL_ID"
@@ -350,15 +389,25 @@ fi
350
389
 
351
390
  # 4. Serve unit. Installed by install.sh (which has sudo); here we only start it
352
391
  # when we can, so a re-run from the service user still recovers a stopped serve.
392
+ # RETURNS NON-ZERO WHEN IT DID NOT RESTART, and the caller has to care.
393
+ #
394
+ # On the ORDINARY Linux install path this function cannot restart anything:
395
+ # `install.sh` invokes this script as the unprivileged `trillboards` service user
396
+ # (nologin, no sudoers entry, so `sudo -n` answers "a password is required"), and
397
+ # install.sh's own comment says so. It used to swallow that and return 0, which
398
+ # is fine for "start it if you can" and WRONG for a cascade: every rung after the
399
+ # first would then write a config, fail to apply it, and grade the STILL-RUNNING
400
+ # engine — reaching a verdict about a configuration nothing ever loaded.
353
401
  restart_litertlm_serve() {
354
- command -v systemctl >/dev/null 2>&1 || return 0
402
+ command -v systemctl >/dev/null 2>&1 || return 1
355
403
  if systemctl list-unit-files "$SERVE_UNIT.service" >/dev/null 2>&1; then
356
- systemctl restart "$SERVE_UNIT" >>"$LOG" 2>&1 \
357
- || sudo -n systemctl restart "$SERVE_UNIT" >>"$LOG" 2>&1 \
358
- || log "WARN: could not restart $SERVE_UNIT - start it with: sudo systemctl restart $SERVE_UNIT"
359
- else
360
- log "WARN: $SERVE_UNIT.service is not installed yet (install.sh installs it)"
404
+ systemctl restart "$SERVE_UNIT" >>"$LOG" 2>&1 && return 0
405
+ sudo -n systemctl restart "$SERVE_UNIT" >>"$LOG" 2>&1 && return 0
406
+ log "WARN: could not restart $SERVE_UNIT - start it with: sudo systemctl restart $SERVE_UNIT"
407
+ return 1
361
408
  fi
409
+ log "WARN: $SERVE_UNIT.service is not installed yet (install.sh installs it)"
410
+ return 1
362
411
  }
363
412
 
364
413
  wait_for_litertlm_health() {
@@ -373,7 +422,7 @@ wait_for_litertlm_health() {
373
422
  # Ask for GPU vision BEFORE the restart so the engine builds with it. The engine
374
423
  # is constructed lazily on the first inference, so config.json must be on disk
375
424
  # before that request, not merely before the next boot.
376
- write_litertlm_config "gpu" || log "WARN: could not write $CONFIG_JSON - the serve will use its defaults"
425
+ write_litertlm_config "gpu" "true" || log "WARN: could not write $CONFIG_JSON - the serve will use its defaults"
377
426
 
378
427
  restart_litertlm_serve
379
428
 
@@ -384,16 +433,52 @@ if [ "$HEALTHY" -eq 1 ]; then
384
433
  # The cascade. `local_ai_healthy` only proves /v1/models answers, which it does
385
434
  # without ever building an engine - so it CANNOT see a GPU vision encoder that
386
435
  # fails on first use. One real image inference is the only thing that can.
436
+ #
437
+ # THREE RUNGS, NOT TWO, AND THE THIRD IS THE SAME RULE AS THE FIRST. There are
438
+ # two optimistic engine settings in this file and only one of them was ever
439
+ # checked. Each rung drops exactly one and re-asks the same question, so a box
440
+ # ends on the configuration with the fewest unverified assumptions it can
441
+ # actually serve on:
442
+ #
443
+ # 1. vision_backend=gpu + speculative_decoding=true the measured fast path
444
+ # 2. speculative_decoding=true GPU vision unusable here
445
+ # 3. speculative_decoding=false neither is usable here
446
+ #
447
+ # Rung 3 can only turn a NON-SERVING box into a serving one: it is reached only
448
+ # after the box has already failed rung 2, which today is the give-up path.
449
+ # `speculative_decoding` is a draft-plus-verify scheme — strictly more compute
450
+ # per token, needing spare parallelism to win — and every number we have for it
451
+ # was measured on ONE machine (M4 Max: Metal for the 1.433x headline, its own CPU
452
+ # arm for the 2026-08-19 A/B). Dropping it costs speed on a box that has already
453
+ # failed twice, and a slow box is a box that is serving.
387
454
  if verify_litertlm_vision; then
388
455
  log "local AI healthy with the GPU vision encoder - the connector will run ON-DEVICE"
389
456
  else
390
457
  log "WARN: GPU vision encoder did not answer a probe inference - falling back to the CPU encoder"
391
- write_litertlm_config "" || log "WARN: could not rewrite $CONFIG_JSON"
392
- restart_litertlm_serve
393
- if wait_for_litertlm_health; then
458
+ write_litertlm_config "" "true" || log "WARN: could not rewrite $CONFIG_JSON"
459
+ # A RUNG MAY ONLY BE GRADED IF ITS CONFIG IS THE ONE RUNNING. On the ordinary
460
+ # Linux install path this script runs unprivileged and cannot restart the
461
+ # unit, so the probe below would interrogate the engine built for the
462
+ # PREVIOUS rung and fail for the previous rung's reason - descending on that
463
+ # would disable speculative decoding without ever having tested it. So when
464
+ # the restart did not happen we STOP here, leaving the CPU-vision config on
465
+ # disk exactly as before: `install.sh` applies it with its own privileged
466
+ # restart and runs this script again, and that pass can restart and grade.
467
+ if ! restart_litertlm_serve; then
468
+ log "WARN: the serve could not be restarted here, so the config just written is NOT the one running"
469
+ log "WARN: leaving the CPU vision encoder on disk unevaluated - install.sh applies it and the next pass grades it"
470
+ elif wait_for_litertlm_health && verify_litertlm_plain_inference; then
394
471
  log "local AI healthy on the CPU vision encoder (slower, but serving)"
395
472
  else
396
- HEALTHY=0
473
+ log "WARN: the CPU vision encoder did not answer either - retrying without speculative decoding"
474
+ write_litertlm_config "" "false" || log "WARN: could not rewrite $CONFIG_JSON"
475
+ if ! restart_litertlm_serve; then
476
+ log "WARN: the serve could not be restarted here, so the config just written is NOT the one running"
477
+ elif wait_for_litertlm_health && verify_litertlm_plain_inference; then
478
+ log "local AI healthy WITHOUT speculative decoding (slower still, but serving)"
479
+ else
480
+ HEALTHY=0
481
+ fi
397
482
  fi
398
483
  fi
399
484
  fi
@@ -412,9 +497,14 @@ if [ "$HEALTHY" -ne 1 ]; then
412
497
  # works, which is the right trade for a value we could not check: a box that is
413
498
  # slow is a box that is serving, and `setup-litertlm.sh` re-runs on every
414
499
  # install.sh, which will promote it to GPU the moment it can prove GPU works.
415
- write_litertlm_config "" \
500
+ write_litertlm_config "" "false" \
416
501
  || log "WARN: could not rewrite $CONFIG_JSON to the CPU default"
417
- log "vision_backend left UNVERIFIED, so it was reset to the CPU encoder"
502
+ # BOTH optimisms are reset, for one reason: neither was checked. The serve
503
+ # never came up, so the cascade that would have proved either of them never
504
+ # ran, and the file OUTLIVES this install — the unit is enabled, so the next
505
+ # boot starts on a configuration nobody confirmed. `setup-litertlm.sh` re-runs
506
+ # on every install.sh and promotes both again the moment it can prove them.
507
+ log "vision_backend and speculative_decoding left UNVERIFIED, so both were reset to the conservative default"
418
508
 
419
509
  # NOT fatal. auto-sense waits and beacons, so an install that gets this far
420
510
  # with the model on disk recovers by itself once the serve comes up.
@@ -166,17 +166,33 @@ $script:LitertlmProbeJpegB64 = "/9j/4AAQSkZJRgABAgAAAQABAAD//gAPTGF2YzYzLjEuMTAx
166
166
  function Get-LitertlmConfigPath { Join-Path $LitertDir "config.json" }
167
167
 
168
168
  # $VisionBackend = "gpu" pins the vision encoder; "" leaves it on the CPU
169
- # default. speculative_decoding is written EITHER WAY -- it is delegate
170
- # independent, so it survives the fallback.
169
+ # default. $SpeculativeDecoding is the second engine setting this file writes.
170
+ #
171
+ # BOTH ARE ALWAYS WRITTEN EXPLICITLY, AND THE SECOND ONE IS NEW.
172
+ #
173
+ # speculative_decoding used to be written unconditionally $true under a comment
174
+ # asserting it is "delegate independent, so it survives the fallback". The
175
+ # evidence for that is two arms on ONE machine - an M4 Max, Metal for the
176
+ # headline 1.433x and its own CPU arm for the 2026-08-19 A/B in
177
+ # cctv-local-inference-hardware-floor.md. Neither is a measurement of any box we
178
+ # sell, and this file already refuses to leave an unverified vision_backend on
179
+ # disk for exactly that reason. The cascade below applies the same rule here.
180
+ #
181
+ # EXPLICIT $false RATHER THAN OMITTING THE KEY, and that is measured too:
182
+ # litert-lm 0.16.0 logs "Using speculative_decoding from config for model
183
+ # '<id>': <bool>" on every request when the key is PRESENT and says NOTHING AT
184
+ # ALL when it is absent (checked on a c4-standard-8, 2026-09-04). A box whose
185
+ # state is unreadable from its own log is a box whose next incident is diagnosed
186
+ # by guessing.
171
187
  function Write-LitertlmConfig {
172
- param([string]$VisionBackend = "")
188
+ param([string]$VisionBackend = "", [bool]$SpeculativeDecoding = $true)
173
189
  try {
174
190
  if (-not (Test-Path -LiteralPath $LitertDir)) {
175
191
  New-Item -ItemType Directory -Force -Path $LitertDir | Out-Null
176
192
  }
177
193
  $model = [ordered]@{}
178
194
  if ($VisionBackend) { $model["vision_backend"] = $VisionBackend }
179
- $model["speculative_decoding"] = $true
195
+ $model["speculative_decoding"] = $SpeculativeDecoding
180
196
  $cfg = [ordered]@{ models = [ordered]@{ $ModelId = $model } }
181
197
  $path = Get-LitertlmConfigPath
182
198
  $tmp = "$path.tmp"
@@ -198,7 +214,7 @@ function Write-LitertlmConfig {
198
214
  (New-Object System.Text.UTF8Encoding($false)))
199
215
  Move-Item -LiteralPath $tmp -Destination $path -Force
200
216
  $label = if ($VisionBackend) { $VisionBackend } else { "cpu-default" }
201
- Log "wrote $path (vision_backend=$label, speculative_decoding=true)"
217
+ Log "wrote $path (vision_backend=$label, speculative_decoding=$SpeculativeDecoding)"
202
218
  return $true
203
219
  } catch {
204
220
  Log "WARN: could not write litert-lm config.json: $_"
@@ -670,7 +686,7 @@ if (-not (Test-Path -LiteralPath $registration)) {
670
686
 
671
687
  # Ask for GPU vision BEFORE the serve starts: the engine is built lazily on the
672
688
  # first inference, so config.json must be on disk before that request.
673
- Write-LitertlmConfig -VisionBackend "gpu" | Out-Null
689
+ Write-LitertlmConfig -VisionBackend "gpu" -SpeculativeDecoding $true | Out-Null
674
690
 
675
691
  Log "registering litert-lm serve Scheduled Task on :$Port"
676
692
  & powershell.exe -NoProfile -ExecutionPolicy Bypass -File $registration -LitertLmPath $litertlmPath -Port $Port *>> $LogPath
@@ -698,7 +714,7 @@ if (-not $healthy) {
698
714
  # encoder rather than leave this host unable to sense at all.
699
715
  if (-not (Test-LitertlmVision -InferenceModel "$ModelId,gpu")) {
700
716
  Log "WARN: GPU vision encoder did not answer a probe inference; falling back to the CPU encoder"
701
- Write-LitertlmConfig | Out-Null
717
+ Write-LitertlmConfig -SpeculativeDecoding $true | Out-Null
702
718
  & powershell.exe -NoProfile -ExecutionPolicy Bypass -File $registration -LitertLmPath $litertlmPath -Port $Port *>> $LogPath
703
719
  $healthy = $false
704
720
  for ($attempt = 0; $attempt -lt 60 -and -not $healthy; $attempt++) {
@@ -730,9 +746,46 @@ if (-not (Test-LitertlmVision -InferenceModel "$ModelId,gpu")) {
730
746
  } elseif (Test-LitertlmVision -InferenceModel $ModelId) {
731
747
  Log "local AI healthy on the full CPU fallback (slower, but serving)"
732
748
  } else {
733
- Fail-LocalAi "Gemma is installed and the local AI service is answering, but it could not analyze a test image with either GPU inference or the full CPU fallback. See $LogPath."
734
- Stop-SetupLock
735
- exit 1
749
+ # THE THIRD RUNG, AND IT IS THE SAME RULE AS THE FIRST. There are two
750
+ # optimistic engine settings in this file and only one of them was ever
751
+ # checked. Each rung drops exactly one and re-asks the same question, so a
752
+ # box ends on the configuration with the fewest unverified assumptions it can
753
+ # actually serve on:
754
+ #
755
+ # 1. vision_backend=gpu + speculative_decoding=true the measured fast path
756
+ # 2. speculative_decoding=true GPU vision unusable here
757
+ # 3. speculative_decoding=false neither is usable here
758
+ #
759
+ # This can only turn a box that was about to FAIL THE INSTALL into a serving
760
+ # one: it is reached only where the previous code called Fail-LocalAi.
761
+ # speculative_decoding is a draft-plus-verify scheme - strictly more compute
762
+ # per token, needing spare parallelism to win - and every number we have for
763
+ # it was measured on ONE machine. Dropping it costs speed on a box that has
764
+ # already failed twice, and a slow box is a box that is serving.
765
+ Log "WARN: neither GPU inference nor the full CPU fallback answered; retrying without speculative decoding"
766
+ Write-LitertlmConfig -SpeculativeDecoding $false | Out-Null
767
+ # A RUNG MAY ONLY BE GRADED IF ITS CONFIG IS THE ONE RUNNING. Re-registering
768
+ # the Scheduled Task is what applies the file; if that fails, the engine
769
+ # still answering is the previous rung's and grading it would reach a verdict
770
+ # about a configuration nothing ever loaded.
771
+ & powershell.exe -NoProfile -ExecutionPolicy Bypass -File $registration -LitertLmPath $litertlmPath -Port $Port *>> $LogPath
772
+ if ($LASTEXITCODE -ne 0) {
773
+ Fail-LocalAi "Gemma is installed, but the local AI service could not be restarted to apply the fallback configuration. Restart Windows, then retry Local AI. See $LogPath."
774
+ Stop-SetupLock
775
+ exit 1
776
+ }
777
+ $healthy = $false
778
+ for ($attempt = 0; $attempt -lt 60 -and -not $healthy; $attempt++) {
779
+ $healthy = Test-ServeHealthy
780
+ if (-not $healthy) { Start-Sleep -Seconds 2 }
781
+ }
782
+ if ($healthy -and (Test-LitertlmVision -InferenceModel $ModelId)) {
783
+ Log "local AI healthy WITHOUT speculative decoding (slower still, but serving)"
784
+ } else {
785
+ Fail-LocalAi "Gemma is installed and the local AI service is answering, but it could not analyze a test image with GPU inference, the full CPU fallback, or with speculative decoding disabled. See $LogPath."
786
+ Stop-SetupLock
787
+ exit 1
788
+ }
736
789
  }
737
790
  } else {
738
791
  Log "local AI healthy with the GPU vision encoder"
@@ -1 +1 @@
1
- {"version":3,"file":"DetectorFieldProducer.d.ts","sourceRoot":"","sources":["../src/DetectorFieldProducer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DetectorFieldProducer.d.ts","sourceRoot":"","sources":["../src/DetectorFieldProducer.ts"],"names":[],"mappings":"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"}
@@ -415,13 +415,51 @@ function classifyProducerField(entry) {
415
415
  };
416
416
  }
417
417
  if (kindName === 'zone_count') {
418
+ // `zone_count` names the COMPUTATION — count the boxes whose feet are in
419
+ // the region — and NOT the shape of the answer. The declared type decides
420
+ // that, exactly as it does for a suffix field.
421
+ //
422
+ // Hardcoding `count` here is a live route that never fires. The synthetic
423
+ // `alert_focus_<hash>` inherits its BASE field's type
424
+ // (`alertFocusFields.inferMetricType` returns `baseEntry.type`), so a
425
+ // focused `person_present` route carries type `boolean` — and
426
+ // `routeEvaluatorService` maps the focused value back onto the ORIGINAL
427
+ // condition field, where `compareValue`'s `eq` is strict. `1 === true` is
428
+ // false, so the operator's "text me when someone is in the driveway" would
429
+ // go quiet the moment the region started being honoured. Three of the six
430
+ // live focused route-screens are `person_present`.
431
+ //
432
+ // An unreadable type is WITHHELD rather than answered as a count: a count
433
+ // compared against an enum or string threshold can never be right, and an
434
+ // absent reading is this file's documented preference over a wrong one.
435
+ const declaredType = typeof entry.type === 'string' ? entry.type.trim().toLowerCase() : '';
436
+ let zoneKind;
437
+ if (!declaredType) {
438
+ // No type on the owning row — the relation's own name is the fallback,
439
+ // and `count` is what it says.
440
+ zoneKind = 'count';
441
+ }
442
+ else if (PRESENT_TYPES.has(declaredType)) {
443
+ zoneKind = 'present';
444
+ }
445
+ else if (COUNT_TYPES.has(declaredType)) {
446
+ zoneKind = 'count';
447
+ }
448
+ else {
449
+ return {
450
+ reason: exports.PRODUCER_WITHHOLD_REASONS.TYPE_CONTRADICTS_NAME,
451
+ detail: `'${field}' declares zone_count but its owning row declares type '${declaredType}'; `
452
+ + `a region count can only be reported as one of `
453
+ + `[${[...PRESENT_TYPES, ...COUNT_TYPES].join(', ')}]`,
454
+ };
455
+ }
418
456
  return {
419
457
  ...entry,
420
458
  field,
421
459
  concept: field,
422
460
  className: (0, exports.toDetectorClassName)(classNames[0]),
423
461
  classNames: [(0, exports.toDetectorClassName)(classNames[0])],
424
- kind: 'count',
462
+ kind: zoneKind,
425
463
  relationKind: kindName,
426
464
  };
427
465
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DetectorFieldProducer.js","sourceRoot":"","sources":["../src/DetectorFieldProducer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DetectorFieldProducer.js","sourceRoot":"","sources":["../src/DetectorFieldProducer.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.132';
47
+ const SDK_VERSION = '0.2.135';
48
48
  class EdgeAgent extends events_1.EventEmitter {
49
49
  constructor(config, deps) {
50
50
  super();
@@ -1,4 +1,4 @@
1
- import type { WireSensingProfileProducerField, WireSensingProfileResponse, WireSensingProfileWithheldField } from '@trillboards/edge-core';
1
+ import type { WireAlertFocusRegion, WireSensingProfileProducerField, WireSensingProfileResponse, WireSensingProfileWithheldField } from '@trillboards/edge-core';
2
2
  import { type HttpPoster } from './AudienceAnalyzeClient';
3
3
  import { type ProfileField } from './localInferenceSchema';
4
4
  /**
@@ -109,6 +109,29 @@ export interface ResolvedSensingProfile extends Pick<WireSensingProfileResponse,
109
109
  * connector's own default, never an assertion that no model measured one.
110
110
  */
111
111
  producerOperatingPoints: Map<string, number>;
112
+ /**
113
+ * The operator's saved region per SYNTHETIC alert-focus field, ready for
114
+ * `DetectorFieldProducer.regionForField`.
115
+ *
116
+ * A Map and not the wire's array for the same reason `producerOperatingPoints`
117
+ * is one: the producer asks BY FIELD, once per field per frame, and converting
118
+ * at the one place that parses the wire keeps every consumer from doing it.
119
+ *
120
+ * SANITIZED HERE, AND THAT IS LOAD-BEARING. `countInRegion` THROWS on a
121
+ * coordinate outside [0,1] — deliberately, because pixels are numerically
122
+ * valid there and would be silently wrong forever — and it is called from
123
+ * `DetectorFieldProducer.produce`, which documents that it NEVER THROWS
124
+ * because it sits on the path to the only thing that produces alerts. So a
125
+ * malformed region has to be refused at the wire, not at the predicate. The
126
+ * accepted set here is a strict SUBSET of what the predicate accepts, so
127
+ * nothing that survives this can throw there.
128
+ *
129
+ * A field absent from this map is a field with no region, and the producer
130
+ * then counts EVERY detection — what the unfocused field already means. It is
131
+ * never zero: a region that silently counts nothing is indistinguishable from
132
+ * a quiet venue, which is the failure this whole area keeps producing.
133
+ */
134
+ alertFocusRegions: Map<string, WireAlertFocusRegion['region']>;
112
135
  }
113
136
  export declare class SensingProfileClient {
114
137
  private readonly endpoint;
@@ -1 +1 @@
1
- {"version":3,"file":"SensingProfileClient.d.ts","sourceRoot":"","sources":["../src/SensingProfileClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,+BAA+B,EAC/B,0BAA0B,EAC1B,+BAA+B,EAChC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,WAAW,2BAA2B;IAC1C,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,sBACf,SAAQ,IAAI,CACV,0BAA0B,EACxB,aAAa,GACb,WAAW,GACX,aAAa,GACb,mBAAmB,GACnB,sBAAsB,GACtB,QAAQ,GACR,SAAS,CACZ;IACD;;;;;;;;;;;;;;;;;OAiBG;IACH,eAAe,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3D;;;;;;;;;OASG;IACH,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B;;;;OAIG;IACH,cAAc,EAAE,+BAA+B,EAAE,CAAC;IAClD;;;;OAIG;IACH,cAAc,EAAE,+BAA+B,EAAE,CAAC;IAClD;;;;;;;;OAQG;IACH,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9C;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;gBAExB,OAAO,EAAE,2BAA2B,EAAE,MAAM,CAAC,EAAE,UAAU;IAUrE,+DAA+D;IAC/D,WAAW,IAAI,MAAM;IAIrB;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;CAqI7D;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,OAAO,GACX;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAO3C"}
1
+ {"version":3,"file":"SensingProfileClient.d.ts","sourceRoot":"","sources":["../src/SensingProfileClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EAEpB,+BAA+B,EAC/B,0BAA0B,EAC1B,+BAA+B,EAChC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,UAAU,EAAqB,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,WAAW,2BAA2B;IAC1C,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,sBACf,SAAQ,IAAI,CACV,0BAA0B,EACxB,aAAa,GACb,WAAW,GACX,aAAa,GACb,mBAAmB,GACnB,sBAAsB,GACtB,QAAQ,GACR,SAAS,CACZ;IACD;;;;;;;;;;;;;;;;;OAiBG;IACH,eAAe,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3D;;;;;;;;;OASG;IACH,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B;;;;OAIG;IACH,cAAc,EAAE,+BAA+B,EAAE,CAAC;IAClD;;;;OAIG;IACH,cAAc,EAAE,+BAA+B,EAAE,CAAC;IAClD;;;;;;;;OAQG;IACH,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;CAChE;AAiDD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;gBAExB,OAAO,EAAE,2BAA2B,EAAE,MAAM,CAAC,EAAE,UAAU;IAUrE,+DAA+D;IAC/D,WAAW,IAAI,MAAM;IAIrB;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;CA+K7D;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,OAAO,GACX;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAO3C"}
@@ -4,6 +4,55 @@ exports.SensingProfileClient = void 0;
4
4
  exports.parseDetectorCascade = parseDetectorCascade;
5
5
  const crypto_1 = require("crypto");
6
6
  const AudienceAnalyzeClient_1 = require("./AudienceAnalyzeClient");
7
+ /** A finite number inside [0,1] — the normalized range the region columns are CHECKed to. */
8
+ function normalizedScalar(v) {
9
+ return typeof v === 'number' && Number.isFinite(v) && v >= 0 && v <= 1 ? v : null;
10
+ }
11
+ /**
12
+ * The operator's region as the containment predicate can evaluate it, or null.
13
+ *
14
+ * `points` WINS over the rect, matching `countInRegion` on both sides of the
15
+ * parity test: a lasso's rect is its BOUNDING BOX, derived server-side, so
16
+ * preferring the rect would silently substitute a convex hull for an L-shaped
17
+ * aisle.
18
+ *
19
+ * A malformed `points` drops the WHOLE entry rather than falling back to that
20
+ * bounding box. Falling back would answer a question the operator did not ask —
21
+ * a strictly larger region — and do it silently. Dropping degrades to the
22
+ * whole-frame count, which is the documented degrade and the pre-existing
23
+ * behaviour.
24
+ */
25
+ function sanitizeAlertFocusRegion(raw) {
26
+ if (!raw || typeof raw !== 'object')
27
+ return null;
28
+ const region = raw;
29
+ if (region.points !== undefined) {
30
+ if (!Array.isArray(region.points) || region.points.length < 3)
31
+ return null;
32
+ const points = [];
33
+ for (const p of region.points) {
34
+ const x = normalizedScalar(p?.x);
35
+ const y = normalizedScalar(p?.y);
36
+ if (x === null || y === null)
37
+ return null;
38
+ points.push({ x, y });
39
+ }
40
+ return { points };
41
+ }
42
+ // A rect needs POSITIVE extent and must close inside the frame — exactly what
43
+ // `assertNormalizedRect` requires before `rectAsPolygon` will build from it.
44
+ const x = normalizedScalar(region.x);
45
+ const y = normalizedScalar(region.y);
46
+ const width = normalizedScalar(region.width);
47
+ const height = normalizedScalar(region.height);
48
+ if (x === null || y === null || width === null || height === null)
49
+ return null;
50
+ if (width <= 0 || height <= 0)
51
+ return null;
52
+ if (x + width > 1 || y + height > 1)
53
+ return null;
54
+ return { x, y, width, height };
55
+ }
7
56
  class SensingProfileClient {
8
57
  constructor(options, poster) {
9
58
  if (!options.apiBaseUrl)
@@ -81,7 +130,27 @@ class SensingProfileClient {
81
130
  ? routing.producer
82
131
  .filter((p) => !!p && typeof p.field === 'string' && p.field.length > 0
83
132
  && typeof p.type === 'string' && typeof p.modelId === 'string' && p.modelId.length > 0)
84
- .map((p) => ({ field: p.field, type: p.type, modelId: p.modelId }))
133
+ .map((p) => ({
134
+ field: p.field,
135
+ type: p.type,
136
+ modelId: p.modelId,
137
+ // THE RULE, CARRIED VERBATIM. Until now this was dropped here, and
138
+ // dropping it severed the only channel `relation_kind` travels on:
139
+ // `classifyProducerField` reads the kind from THIS object and from
140
+ // nowhere else, so every relation field fell through to the suffix
141
+ // rule. `fire_or_smoke_visible` came out `unmapped` and a focused
142
+ // field's `zone_count` never existed, which is why the geometric
143
+ // region had a consumer that could not be reached.
144
+ //
145
+ // Not re-derived and not filtered by kind: ownership and the rule
146
+ // are both properties of the registry, which this process cannot
147
+ // see. `SUPPORTED_RELATION_KINDS` is where a kind this build cannot
148
+ // evaluate is refused, and it says so as `unsupported_relation`
149
+ // rather than silently answering something else.
150
+ ...(p.derivation && typeof p.derivation === 'object'
151
+ ? { derivation: p.derivation }
152
+ : {}),
153
+ }))
85
154
  : [];
86
155
  const withheldFields = hasRouting && Array.isArray(routing.withheld)
87
156
  ? routing.withheld
@@ -108,6 +177,28 @@ class SensingProfileClient {
108
177
  continue;
109
178
  producerOperatingPoints.set(className, t);
110
179
  }
180
+ // THE GEOMETRY, keyed by the synthetic field it belongs to.
181
+ //
182
+ // `field` here is `alert_focus_<hash>` — per ROUTE, never the base field the
183
+ // route conditions on. The rule rides the model and the region rides the
184
+ // route; they meet on this key and nowhere else.
185
+ //
186
+ // Absent on a server predating the key -> an empty map, and every field then
187
+ // counts the whole frame. That is what every connector does today, so a
188
+ // server that does not send this is not degraded by reading it.
189
+ const alertFocusRegions = new Map();
190
+ const rawRegions = hasRouting && Array.isArray(routing.alertFocusRegions)
191
+ ? routing.alertFocusRegions
192
+ : [];
193
+ for (const entry of rawRegions) {
194
+ const field = typeof entry?.field === 'string' ? entry.field.trim() : '';
195
+ if (!field)
196
+ continue;
197
+ const region = sanitizeAlertFocusRegion(entry.region);
198
+ if (!region)
199
+ continue;
200
+ alertFocusRegions.set(field, region);
201
+ }
111
202
  return {
112
203
  profileName: typeof parsed.profileName === 'string' ? parsed.profileName : null,
113
204
  profileId: typeof parsed.profileId === 'string' ? parsed.profileId : null,
@@ -118,6 +209,7 @@ class SensingProfileClient {
118
209
  vlmFields,
119
210
  producerFields,
120
211
  producerOperatingPoints,
212
+ alertFocusRegions,
121
213
  withheldFields,
122
214
  // Absent on an older API -> [] (the gate behaves exactly as it did before).
123
215
  absenceWatchedFields: Array.isArray(parsed.absenceWatchedFields)
@@ -1 +1 @@
1
- {"version":3,"file":"SensingProfileClient.js","sourceRoot":"","sources":["../src/SensingProfileClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SensingProfileClient.js","sourceRoot":"","sources":["../src/SensingProfileClient.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.132";
34
+ declare const SDK_VERSION = "0.2.135";
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.132';
66
+ const SDK_VERSION = '0.2.135';
67
67
  exports._SDK_VERSION = SDK_VERSION;
68
68
  // ---------------------------------------------------------------------------
69
69
  // ANSI helpers (no external deps)
@@ -194,6 +194,17 @@ export declare class LocalSensingClient implements SensingClient {
194
194
  * derivation of one.
195
195
  */
196
196
  private cachedProducerFields;
197
+ /**
198
+ * The operator's saved region per synthetic alert-focus field, from the
199
+ * deployed profile. Empty until a profile fetch succeeds.
200
+ *
201
+ * Read through `resolveAlertFocusRegion` at PRODUCE time rather than baked
202
+ * into the producer at construction, which is why a region arriving on the
203
+ * first profile poll needs no rebuild and why regions are absent from
204
+ * `sameThresholds`. A cached producer holding a stale region would apply the
205
+ * previous lasso to the current frame, and nothing downstream could tell.
206
+ */
207
+ private cachedAlertFocusRegions;
197
208
  /**
198
209
  * The operating point each producer CLASS is counted at, from the server.
199
210
  *
@@ -209,6 +220,23 @@ export declare class LocalSensingClient implements SensingClient {
209
220
  * frame would discard nothing but cost an allocation on the analyze path.
210
221
  */
211
222
  private producer;
223
+ /**
224
+ * The operator's region for one field, AT THE MOMENT THE FRAME IS PRODUCED.
225
+ *
226
+ * An arrow property and not a value passed once: the producer is built in the
227
+ * constructor, before any profile has been fetched, and rebuilt only when the
228
+ * operating points move. Closing over `this` means a region saved by an
229
+ * operator mid-session reaches the very next frame, and a region deleted stops
230
+ * applying on that same frame, with no rebuild and no second cache to
231
+ * invalidate.
232
+ *
233
+ * `?? null` is the whole safety property of this file's half of the feature. A
234
+ * field with no region gets `null`, and `countInRegion` then counts EVERY
235
+ * detection — what the unfocused field already means. It must never become
236
+ * zero: a region that silently counts nothing is indistinguishable from a
237
+ * quiet venue, and that is the failure this area keeps producing.
238
+ */
239
+ private readonly resolveAlertFocusRegion;
212
240
  private readonly producerOptions;
213
241
  private readonly producerInjected;
214
242
  private lastProfileFetchMs;
@@ -1 +1 @@
1
- {"version":3,"file":"localSensing.d.ts","sourceRoot":"","sources":["../src/localSensing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"localSensing.d.ts","sourceRoot":"","sources":["../src/localSensing.ts"],"names":[],"mappings":"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"}
@@ -322,6 +322,17 @@ class LocalSensingClient {
322
322
  * derivation of one.
323
323
  */
324
324
  this.cachedProducerFields = [];
325
+ /**
326
+ * The operator's saved region per synthetic alert-focus field, from the
327
+ * deployed profile. Empty until a profile fetch succeeds.
328
+ *
329
+ * Read through `resolveAlertFocusRegion` at PRODUCE time rather than baked
330
+ * into the producer at construction, which is why a region arriving on the
331
+ * first profile poll needs no rebuild and why regions are absent from
332
+ * `sameThresholds`. A cached producer holding a stale region would apply the
333
+ * previous lasso to the current frame, and nothing downstream could tell.
334
+ */
335
+ this.cachedAlertFocusRegions = new Map();
325
336
  /**
326
337
  * The operating point each producer CLASS is counted at, from the server.
327
338
  *
@@ -331,6 +342,23 @@ class LocalSensingClient {
331
342
  * `DEFAULT_PRODUCER_MIN_CONFIDENCE` — the producer's own documented fallback.
332
343
  */
333
344
  this.cachedProducerOperatingPoints = new Map();
345
+ /**
346
+ * The operator's region for one field, AT THE MOMENT THE FRAME IS PRODUCED.
347
+ *
348
+ * An arrow property and not a value passed once: the producer is built in the
349
+ * constructor, before any profile has been fetched, and rebuilt only when the
350
+ * operating points move. Closing over `this` means a region saved by an
351
+ * operator mid-session reaches the very next frame, and a region deleted stops
352
+ * applying on that same frame, with no rebuild and no second cache to
353
+ * invalidate.
354
+ *
355
+ * `?? null` is the whole safety property of this file's half of the feature. A
356
+ * field with no region gets `null`, and `countInRegion` then counts EVERY
357
+ * detection — what the unfocused field already means. It must never become
358
+ * zero: a region that silently counts nothing is indistinguishable from a
359
+ * quiet venue, and that is the failure this area keeps producing.
360
+ */
361
+ this.resolveAlertFocusRegion = (field) => this.cachedAlertFocusRegions.get(field) ?? null;
334
362
  this.lastProfileFetchMs = 0;
335
363
  /**
336
364
  * Frames the ON-DEVICE runtime actually produced a result for.
@@ -397,7 +425,16 @@ class LocalSensingClient {
397
425
  this.producerInjected = options.detectorFieldProducer !== undefined;
398
426
  this.producer = this.producerInjected
399
427
  ? options.detectorFieldProducer
400
- : new DetectorFieldProducer_1.DetectorFieldProducer(this.producerOptions);
428
+ // `regionForField` AFTER the spread, so the deployed profile wins over a
429
+ // caller's options — the same precedence `classThresholds` already has on
430
+ // the rebuild path below, and for the same reason: the region is the
431
+ // ROUTE's fact, and a caller carrying a second copy of it is the split
432
+ // brain `fieldRouting` exists to prevent. A test that needs another
433
+ // resolver injects the whole producer, which this branch honours.
434
+ : new DetectorFieldProducer_1.DetectorFieldProducer({
435
+ ...this.producerOptions,
436
+ regionForField: this.resolveAlertFocusRegion,
437
+ });
401
438
  }
402
439
  getEndpoint() {
403
440
  return this.uploadClient.getEndpoint();
@@ -435,6 +472,11 @@ class LocalSensingClient {
435
472
  // TypeError on the path to every alert. A field with no consumer is not
436
473
  // known to be safe — it is only known to be unread.
437
474
  this.cachedProducerFields = profile.producerFields ?? [];
475
+ // The geometry half of the same partition. `?? new Map()` for the reason the
476
+ // line above carries `?? []`: this assignment can outlive a profile object
477
+ // that predates the key, and an undefined map is a TypeError on the path to
478
+ // every alert the first time anything reads it.
479
+ this.cachedAlertFocusRegions = profile.alertFocusRegions ?? new Map();
438
480
  // Rebuilt only on a real change, and NEVER when the producer was injected —
439
481
  // a test's stub must not be silently replaced by a real one the moment a
440
482
  // profile arrives.
@@ -442,7 +484,15 @@ class LocalSensingClient {
442
484
  ? profile.producerOperatingPoints
443
485
  : new Map();
444
486
  if (!this.producerInjected && !sameThresholds(this.cachedProducerOperatingPoints, nextPoints)) {
445
- this.producer = new DetectorFieldProducer_1.DetectorFieldProducer({ ...this.producerOptions, classThresholds: nextPoints });
487
+ this.producer = new DetectorFieldProducer_1.DetectorFieldProducer({
488
+ ...this.producerOptions,
489
+ classThresholds: nextPoints,
490
+ // Re-supplied on every rebuild. A producer built without it answers the
491
+ // whole frame for a focused field — silently, and looking exactly like a
492
+ // working one — so the resolver has to survive the rebuild rather than
493
+ // be a property of the first construction only.
494
+ regionForField: this.resolveAlertFocusRegion,
495
+ });
446
496
  }
447
497
  this.cachedProducerOperatingPoints = nextPoints;
448
498
  // `vlmFields`, NEVER the whole profile. The half a granted specialist model
@@ -572,7 +622,18 @@ class LocalSensingClient {
572
622
  /** field -> the specialist that answered it, or null when none did. */
573
623
  let detectorProduced = null;
574
624
  if (this.producer && this.cachedProducerFields.length > 0) {
575
- producedSet = await this.producer.produce(request.jpeg, this.cachedProducerFields.map((f) => ({ field: f.field, modelId: f.modelId, type: f.type ?? null })));
625
+ producedSet = await this.producer.produce(request.jpeg,
626
+ // `derivation` is carried, not dropped. `classifyProducerField` reads the
627
+ // relation kind from THIS object and from nowhere else, so a map that
628
+ // rebuilt the entry without it sent every relation field down the suffix
629
+ // rule — which cannot express one. That is what made `zone_count`
630
+ // unreachable and the geometric region inert.
631
+ this.cachedProducerFields.map((f) => ({
632
+ field: f.field,
633
+ modelId: f.modelId,
634
+ type: f.type ?? null,
635
+ derivation: f.derivation ?? null,
636
+ })));
576
637
  this.producerProduced += producedSet.produced.length;
577
638
  for (const w of producedSet.withheld) {
578
639
  this.producerWithheldByReason[w.reason] = (this.producerWithheldByReason[w.reason] || 0) + 1;
@@ -1 +1 @@
1
- {"version":3,"file":"localSensing.js","sourceRoot":"","sources":["../src/localSensing.ts"],"names":[],"mappings":";;;AAkEA,wDAEC;AAwID,4FAqBC;AA+CD,sCAyCC;AAqeD,8EAsCC;AA0BD,wDAqMC;AAliCD,mCAAgD;AAChD,mEAMiC;AACjC,2DAAsF;AACtF,+DAA4D;AAC5D,mEAIiC;AACjC,iEAA8D;AAC9D,+DAM+B;AAE/B,iEAKgC;AAEhC,mEAAoE;AACpE,yDAI4B;AAE5B,2FAA2F;AAC3F,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAE7C;;;;;;GAMG;AACH,MAAM,0BAA0B,GAAG,eAAe,CAAC;AAEnD;;;;;;;;;;;;;;GAcG;AACH,SAAgB,sBAAsB,CAAC,WAAsC;IAC3E,OAAO,WAAW,KAAK,0BAA0B,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;AAC9E,CAAC;AAsCD,uDAAuD;AACvD,SAAS,cAAc,CAAC,CAAsB,EAAE,CAAsB;IACpE,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACpC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;QAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;IACzD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,mBAAmB,CAC1B,UAAmC,EACnC,GAAqB;IAErB,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,MAAM,GAA4B,EAAE,GAAG,UAAU,EAAE,CAAC;IAC1D,4EAA4E;IAC5E,2EAA2E;IAC3E,4EAA4E;IAC5E,6EAA6E;IAC7E,gDAAgD;IAChD,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACxF,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QAC1B,4EAA4E;QAC5E,4EAA4E;QAC5E,6EAA6E;QAC7E,yEAAyE;QACzE,uDAAuD;QACvD,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;IAClC,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AAC5C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;AAEnF;;;;;;;;;;;;GAYG;AACH,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAEtG;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG,CAAC,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,CAAU,CAAC;AAElG;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,wCAAwC,CACtD,MAA+B;IAE/B,IAAI,MAAM,CAAC,cAAc,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAElD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACrC,IACE,OAAO,UAAU,KAAK,QAAQ;WAC3B,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;WAC5B,UAAU,GAAG,CAAC;WACd,UAAU,GAAG,GAAG;QACnB,OAAO,MAAM,CAAC;IAEhB,IAAI,MAAM,CAAC,YAAY,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,kBAAkB,EAAE,CAAC;QACvC,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC;YAAE,SAAS;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC;IACzF,CAAC;IAED,OAAO,EAAE,GAAG,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,SAAgB,aAAa,CAC3B,MAA+B,EAC/B,oBAA8D;IAE9D,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACxD,MAAM,OAAO,GAAG,oBAAoB,YAAY,GAAG;QACjD,CAAC,CAAE,oBAA4C;QAC/C,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7E,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC/C,mFAAmF;QACnF,gFAAgF;QAChF,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,+CAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/E,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAChC,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACpB,IAAI,eAAe;gBAAE,OAAO,IAAI,CAAC;YACjC,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;YACrD,IAAI,eAAe,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC1E,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC/D,IAAI,eAAe;gBAAE,OAAO,IAAI,CAAC,CAAC,mDAAmD;YACrF,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;YAClC,IAAI,eAAe;gBAAE,OAAO,IAAI,CAAC;YACjC,SAAS;QACX,CAAC;QACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC/C,IAAI,eAAe;gBAAE,OAAO,IAAI,CAAC;YACjC,SAAS;QACX,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAa,kBAAkB;IAoG7B,YACmB,aAAgC,EAChC,YAAmC,EACpD,UAAqC,EAAE;QAFtB,kBAAa,GAAb,aAAa,CAAmB;QAChC,iBAAY,GAAZ,YAAY,CAAuB;QA/FtD;;;;;;WAMG;QACK,+BAA0B,GAAwB,IAAI,GAAG,EAAU,CAAC;QAC5E;;;;;;;;;;WAUG;QACK,yBAAoB,GAA4E,EAAE,CAAC;QAC3G;;;;;;;WAOG;QACK,kCAA6B,GAAwB,IAAI,GAAG,EAAE,CAAC;QAS/D,uBAAkB,GAAG,CAAC,CAAC;QAG/B;;;;;;;;;WASG;QACK,6BAAwB,GAAG,CAAC,CAAC;QACrC;;;;;WAKG;QACK,4BAAuB,GAAG,CAAC,CAAC;QACpC;;;;;;;;;;;;;;WAcG;QACK,qBAAgB,GAAG,CAAC,CAAC;QACrB,6BAAwB,GAA2B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE/E;;;;;;WAMG;QACc,gBAAW,GAAG,IAAI,yCAAmB,EAAE,CAAC;QACzD,6DAA6D;QAC7D,sBAAiB,GAAkB,IAAI,CAAC;QACxC;;;;WAIG;QACH,mBAAc,GAAwB,UAAU,CAAC;QAO/C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,sBAAsB,CAAC;QACnE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,IAAA,8CAAuB,GAAE,CAAC;QAC9D,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,IAAA,8CAAuB,GAAE,CAAC;QAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,KAAK,KAAK,CAAC;QACjE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,4BAA4B,IAAI,EAAE,CAAC;QAClE,uEAAuE;QACvE,sEAAsE;QACtE,iEAAiE;QACjE,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,qBAAqB,KAAK,SAAS,CAAC;QACpE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB;YACnC,CAAC,CAAE,OAAO,CAAC,qBAAsD;YACjE,CAAC,CAAC,IAAI,6CAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACtD,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;IACzC,CAAC;IAED,kBAAkB,CAAC,YAAgC;QACjD,OAAO,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,qBAAqB;QACjC,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY;YAAE,OAAO;QAC9D,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QACxD,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,CAAC,0CAA0C;QACxE,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;QAC7C,IAAI,CAAC,0BAA0B,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;QAC9E,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7D,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;QAC/B,uEAAuE;QACvE,2EAA2E;QAC3E,sEAAsE;QACtE,wEAAwE;QACxE,oDAAoD;QACpD,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;QACzD,4EAA4E;QAC5E,yEAAyE;QACzE,mBAAmB;QACnB,MAAM,UAAU,GAAG,OAAO,CAAC,uBAAuB,YAAY,GAAG;YAC/D,CAAC,CAAC,OAAO,CAAC,uBAAuB;YACjC,CAAC,CAAC,IAAI,GAAG,EAAkB,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,6BAA6B,EAAE,UAAU,CAAC,EAAE,CAAC;YAC9F,IAAI,CAAC,QAAQ,GAAG,IAAI,6CAAqB,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CAAC;QACtG,CAAC;QACD,IAAI,CAAC,6BAA6B,GAAG,UAAU,CAAC;QAChD,4EAA4E;QAC5E,0EAA0E;QAC1E,yEAAyE;QACzE,2EAA2E;QAC3E,6EAA6E;QAC7E,4EAA4E;QAC5E,6EAA6E;QAC7E,6BAA6B;QAC7B,EAAE;QACF,2EAA2E;QAC3E,iDAAiD;QACjD,IAAI,QAAQ,KAAK,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC,YAAY,GAAG,IAAA,8CAAuB,EAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YAC1F,IAAI,CAAC,YAAY,GAAG,IAAA,8CAAuB,EAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAC5F,CAAC;aAAM,CAAC;YACN,uEAAuE;YACvE,+DAA+D;YAC/D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;YACpC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;QACtC,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,oBAAoB;QAClB,OAAO,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,CAAC;IACnD,CAAC;IAGD;;;;;;OAMG;IACH,sBAAsB;QACpB,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,wBAAwB;YACxC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YACzC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW;SAC7C,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,gBAAgB;QAOd,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACtD,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,gBAAgB;YAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5D,QAAQ;YACR,cAAc,EAAE,IAAI,CAAC,oBAAoB,CAAC,MAAM;YAChD,UAAU,EAAE,IAAI,CAAC,uBAAuB;SACzC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,oBAAoB;QAClB,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,OAAO,CACX,OAgBmB;QAEnB,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACnC,wEAAwE;QACxE,0EAA0E;QAC1E,wEAAwE;QACxE,mEAAmE;QACnE,sEAAsE;QACtE,qCAAqC;QACrC,MAAM,eAAe,GAAoB;YACvC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC;QACF,2EAA2E;QAC3E,0EAA0E;QAC1E,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACtD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,MAAM,IAAA,mBAAU,GAAE,EAAE,CAAC;QAC9D,MAAM,cAAc,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/E,IAAI,UAAmC,CAAC;QACxC,yEAAyE;QACzE,0EAA0E;QAC1E,qDAAqD;QACrD,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;gBAC5C,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,IAAI,CAAC,YAAY;gBACzB,MAAM,EAAE,IAAI,CAAC,YAAY;aAC1B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,2EAA2E;YAC3E,wEAAwE;YACxE,2EAA2E;YAC3E,uEAAuE;YACvE,uEAAuE;YACvE,qDAAqD;YACrD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,UAAU,GAAG,wCAAwC,CAAC,UAAU,CAAC,CAAC;QAElE,0EAA0E;QAC1E,uEAAuE;QACvE,0EAA0E;QAC1E,wEAAwE;QACxE,WAAW;QACX,EAAE;QACF,yEAAyE;QACzE,qEAAqE;QACrE,4EAA4E;QAC5E,wEAAwE;QACxE,wDAAwD;QACxD,EAAE;QACF,wEAAwE;QACxE,qEAAqE;QACrE,IAAI,WAAW,GAA4B,IAAI,CAAC;QAChD,uEAAuE;QACvE,IAAI,gBAAgB,GAAkC,IAAI,CAAC;QAC3D,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CACvC,OAAO,CAAC,IAAI,EACZ,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CACrG,CAAC;YACF,IAAI,CAAC,gBAAgB,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;YACrD,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;gBACrC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC/F,CAAC;YACD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACxF,UAAU,GAAG,MAAM,CAAC;YACpB,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,uEAAuE;gBACvE,mEAAmE;gBACnE,IAAI,CAAC,uBAAuB,IAAI,UAAU,CAAC,MAAM,CAAC;YACpD,CAAC;QACH,CAAC;QACD,4EAA4E;QAC5E,yEAAyE;QACzE,4BAA4B;QAC5B,IAAI,CAAC,wBAAwB,IAAI,CAAC,CAAC;QACnC,6EAA6E;QAC7E,0EAA0E;QAC1E,uEAAuE;QACvE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC;QAChD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,4EAA4E;QAC5E,0EAA0E;QAC1E,uEAAuE;QACvE,yEAAyE;QACzE,2EAA2E;QAC3E,yEAAyE;QACzE,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAE7E,MAAM,MAAM,GAA4B;YACtC,GAAG,UAAU;YACb,MAAM,EAAE,UAAU;YAClB,WAAW,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE;SAClD,CAAC;QACF,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,IAAI,SAAS,CAAC;QAC3D,OAAO,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,MAAM,EAAE;YAClD,UAAU,EAAE,YAAY;YACxB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,wEAAwE;YACxE,wEAAwE;YACxE,6DAA6D;YAC7D,GAAG,eAAe;YAClB,0EAA0E;YAC1E,0EAA0E;YAC1E,wEAAwE;YACxE,sEAAsE;YACtE,0EAA0E;YAC1E,0EAA0E;YAC1E,wDAAwD;YACxD,iDAAiD;YACjD,EAAE;YACF,uEAAuE;YACvE,2EAA2E;YAC3E,sEAAsE;YACtE,gBAAgB;YAChB,SAAS;YACT,oEAAoE;YACpE,yEAAyE;YACzE,sEAAsE;YACtE,qEAAqE;YACrE,6CAA6C;YAC7C,UAAU,EAAE,IAAI,CAAC,YAAY;YAC7B,2EAA2E;YAC3E,0EAA0E;YAC1E,2EAA2E;YAC3E,4EAA4E;YAC5E,sBAAsB;YACtB,EAAE;YACF,iEAAiE;YACjE,mEAAmE;YACnE,0EAA0E;YAC1E,wEAAwE;YACxE,2EAA2E;YAC3E,0DAA0D;YAC1D,EAAE;YACF,0EAA0E;YAC1E,4EAA4E;YAC5E,0EAA0E;YAC1E,yEAAyE;YACzE,uEAAuE;YACvE,+DAA+D;YAC/D,EAAE;YACF,oEAAoE;YACpE,yEAAyE;YACzE,yEAAyE;YACzE,2EAA2E;YAC3E,iCAAiC;YACjC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjD,yEAAyE;YACzE,wEAAwE;YACxE,sDAAsD;YACtD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAC,CAAC;IACL,CAAC;CACF;AAvaD,gDAuaC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,iCAAiC,CAC/C,SAA6B,EAC7B,OAA8B,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAEpD,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACpE,4EAA4E;IAC5E,8EAA8E;IAC9E,6EAA6E;IAC7E,yDAAyD;IACzD,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,8DAA8D;QAC9D,CAAC,EAAE,sCAAsC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC,CAAC;IACrG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAElE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC1C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAE/C,6EAA6E;IAC7E,6EAA6E;IAC7E,8EAA8E;IAC9E,QAAQ;IACR,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;QAC3E,IAAI,CACF,2CAA2C,SAAS,4BAA4B,SAAS,GAAG;YAC1F,4EAA4E,OAAO,IAAI;YACvF,qFAAqF;YACrF,mFAAmF;YACnF,mFAAmF;YACnF,gCAAgC,CACnC,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAmBD;;;;;;GAMG;AACH,SAAgB,sBAAsB,CACpC,MAAuB,EACvB,IAA4B;IAE5B,MAAM,KAAK,GAAG,IAAA,kCAAY,EAAC,MAAM,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,+FAA+F,CAChG,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC;IAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC;IACzC,8EAA8E;IAC9E,mEAAmE;IACnE,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC;IACrD,4EAA4E;IAC5E,6EAA6E;IAC7E,wBAAwB;IACxB,MAAM,mBAAmB,GAAG,MAAM,CAAC,YAAY,EAAE,mBAAmB,KAAK,KAAK,CAAC;IAC/E,+EAA+E;IAC/E,8EAA8E;IAC9E,6DAA6D;IAC7D,+EAA+E;IAC/E,8EAA8E;IAC9E,+BAA+B;IAE/B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,MAAM,0BAA0B,GAAG,iCAAiC,CAClE,MAAM,CAAC,YAAY,EAAE,0BAA0B,CAChD,CAAC;IAEF,MAAM,WAAW,GACf,IAAI,EAAE,mBAAmB;QACzB,CAAC,CAAC,IAAkB,EAAE,EAAE;YACtB,8DAA8D;YAC9D,MAAM,EAAE,wBAAwB,EAAE,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC;YAChF,MAAM,MAAM,GAAG,IAAA,iDAAyB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1D,OAAO,IAAI,wBAAwB,CAAC;gBAClC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,wEAAwE;gBACxE,wEAAwE;gBACxE,+DAA+D;gBAC/D,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,mEAAmE;gBACnE,qEAAqE;gBACrE,gEAAgE;gBAChE,GAAG,CAAC,0BAA0B,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnF,wEAAwE;gBACxE,wEAAwE;gBACxE,yEAAyE;gBACzE,qEAAqE;gBACrE,iBAAiB;gBACjB,SAAS,EAAE,IAAA,6CAA0B,EACnC,IAAA,6CAA0B,EAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,mCAAgB,CAC3E;gBACD,GAAG,CAAC,IAAI,EAAE,iBAAiB;oBACzB,CAAC,CAAC;wBACE,iBAAiB,EAAE,CAAC,UAAkB,EAAE,KAAY,EAAE,EAAE,CACtD,IAAI,CAAC,iBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC;qBACnD;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,sEAAsE;gBACtE,wEAAwE;gBACxE,sDAAsD;gBACtD,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,cAAc,EAAE;oBACd,GAAG,MAAM;oBACT,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,MAAM;iBAC1C;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IAEL,MAAM,oBAAoB,GACxB,IAAI,EAAE,oBAAoB;QAC1B,CAAC,GAAG,EAAE,CAAC,IAAI,qCAAiB,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IAEzE,MAAM,mBAAmB,GACvB,IAAI,EAAE,mBAAmB;QACzB,CAAC,CAAC,IAAkB,EAAE,EAAE,CACtB,IAAI,6CAAqB,CACvB;YACE,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,KAAK;YACtB,WAAW,EAAE,IAAI,CAAC,MAAM;SACzB,EACD,IAAI,EAAE,UAAU,CACjB,CAAC,CAAC;IAEP,+EAA+E;IAC/E,6EAA6E;IAC7E,MAAM,oBAAoB,GACxB,IAAI,EAAE,oBAAoB;QAC1B,CAAC,CAAC,IAAkB,EAAE,EAAE,CACtB,IAAI,2CAAoB,CACtB,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EAChE,IAAI,EAAE,UAAU,CACjB,CAAC,CAAC;IAEP,+EAA+E;IAC/E,+EAA+E;IAC/E,8EAA8E;IAC9E,6EAA6E;IAC7E,OAAO,IAAA,uCAAiB,EAAC,KAAK,EAAE,WAAW,EAAE;QAC3C,aAAa,EAAE,IAAI,EAAE,aAAa;QAClC,wDAAwD;QACxD,EAAE;QACF,4EAA4E;QAC5E,yEAAyE;QACzE,6EAA6E;QAC7E,uEAAuE;QACvE,8DAA8D;QAC9D,wEAAwE;QACxE,0DAA0D;QAC1D,kEAAkE;QAClE,EAAE;QACF,4EAA4E;QAC5E,qEAAqE;QACrE,uEAAuE;QACvE,4EAA4E;QAC5E,uEAAuE;QACvE,0EAA0E;QAC1E,yEAAyE;QACzE,2EAA2E;QAC3E,mBAAmB,EACjB,IAAA,6CAA0B,EAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,mCAAgB;KAC7E,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM;QACN,MAAM,EAAE,IAAI,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE;YACpF,aAAa,EAAE,oBAAoB,CAAC,IAAI,CAAC;YACzC,mBAAmB;SACpB,CAAC;KACH,CAAC,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"localSensing.js","sourceRoot":"","sources":["../src/localSensing.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trillboards/edge-sdk",
3
- "version": "0.2.132",
3
+ "version": "0.2.135",
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",