@trillboards/edge-sdk 0.2.81 → 0.2.84

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/deploy/detector/README.md +108 -21
  2. package/deploy/detector/bench/verify_against_reference.py +6 -1
  3. package/deploy/detector/pyproject.toml +1 -1
  4. package/deploy/detector/tests/test_loader.py +188 -0
  5. package/deploy/detector/tests/test_modelpath.py +48 -3
  6. package/deploy/detector/tests/test_registry.py +880 -0
  7. package/deploy/detector/tests/test_server.py +163 -7
  8. package/deploy/detector/tests/test_session.py +29 -10
  9. package/deploy/detector/trillboards_detector/__init__.py +1 -1
  10. package/deploy/detector/trillboards_detector/cli.py +49 -2
  11. package/deploy/detector/trillboards_detector/detections.py +98 -0
  12. package/deploy/detector/trillboards_detector/errors.py +38 -0
  13. package/deploy/detector/trillboards_detector/labels.py +239 -24
  14. package/deploy/detector/trillboards_detector/loader.py +186 -148
  15. package/deploy/detector/trillboards_detector/modelpath.py +32 -0
  16. package/deploy/detector/trillboards_detector/registry.py +836 -0
  17. package/deploy/detector/trillboards_detector/server.py +59 -40
  18. package/deploy/detector/trillboards_detector/session.py +84 -55
  19. package/dist/EdgeAgent.js +1 -1
  20. package/dist/SensingProfileClient.d.ts +1 -1
  21. package/dist/SensingProfileClient.d.ts.map +1 -1
  22. package/dist/SensingProfileClient.js +20 -0
  23. package/dist/SensingProfileClient.js.map +1 -1
  24. package/dist/autoSense.d.ts +6 -5
  25. package/dist/autoSense.d.ts.map +1 -1
  26. package/dist/autoSense.js +12 -2
  27. package/dist/autoSense.js.map +1 -1
  28. package/dist/cli.d.ts.map +1 -1
  29. package/dist/cli.js +11 -6
  30. package/dist/cli.js.map +1 -1
  31. package/dist/diagnose.d.ts +1 -1
  32. package/dist/diagnose.js +1 -1
  33. package/dist/modelOta.d.ts +274 -0
  34. package/dist/modelOta.d.ts.map +1 -0
  35. package/dist/modelOta.js +492 -0
  36. package/dist/modelOta.js.map +1 -0
  37. package/dist/sensingRunMode.d.ts +21 -0
  38. package/dist/sensingRunMode.d.ts.map +1 -1
  39. package/dist/sensingRunMode.js +32 -7
  40. package/dist/sensingRunMode.js.map +1 -1
  41. package/package.json +1 -1
@@ -32,8 +32,7 @@ import sys as _sys
32
32
  import threading
33
33
  from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
34
34
 
35
- from .errors import DetectorNotReady
36
- from .labels import KNOWN_CLASS_NAMES, resolve_requested_classes
35
+ from .errors import DetectorNotReady, UnknownClasses
37
36
 
38
37
  #: Loopback only. litert-lm owns 9379; this is a SECOND service, not a route on
39
38
  #: that one — see `LocalDetectorClient.ts` for why (its own uv tool, its own
@@ -68,14 +67,24 @@ class WireError(Exception):
68
67
  self.message = message
69
68
 
70
69
 
71
- def parse_detect_request(raw: bytes) -> tuple[bytes, float, "set[str] | None"]:
72
- """Body bytes -> (jpeg, min_confidence, wanted classes or None for all).
70
+ def parse_detect_request(raw: bytes) -> tuple[bytes, float, "list[str] | None"]:
71
+ """Body bytes -> (jpeg, min_confidence, requested class names or None for all).
73
72
 
74
73
  Every refusal here is a 400: the caller sent something this service cannot
75
74
  act on, and saying so beats guessing. Guessing is how a profile naming a
76
75
  class the model cannot emit returns an empty frame forever while looking
77
76
  healthy — `yolov8_nano`, offered to ~97 of 114 profiles and loadable
78
77
  nowhere, `vehicle_count` at ~0% fleet-wide for six months.
78
+
79
+ THE CLASS NAMES COME BACK RAW, deliberately. Which classes exist is a
80
+ property of the models on THIS BOX at THIS MOMENT — a specialist's ONNX
81
+ lands over the air and widens the vocabulary with no restart — so it cannot
82
+ be a constant in the wire layer, which is what `KNOWN_CLASS_NAMES` used to
83
+ be. `docs/runbooks/sensing-model-library.md` §3 puts class -> model routing
84
+ in the service "because the service is the only component that knows what is
85
+ resident", and the loader is the half of the service that knows. The
86
+ resolution and the 400 still happen BEFORE any inference; only the authority
87
+ moved.
79
88
  """
80
89
  try:
81
90
  payload = json.loads(raw.decode("utf-8"))
@@ -113,38 +122,7 @@ def parse_detect_request(raw: bytes) -> tuple[bytes, float, "set[str] | None"]:
113
122
  raise WireError(400, "`classes` must be an array of strings")
114
123
  if not raw_classes:
115
124
  raise WireError(400, "`classes` was an empty array; omit the key to mean every class")
116
-
117
- wanted, unknown = resolve_requested_classes(raw_classes)
118
- # ANY unknown class is a 400, not just all of them.
119
- #
120
- # This used to reject only when `wanted` came back empty, so a request for
121
- # ["person", "glove"] against a COCO-only model returned person detections
122
- # and dropped `glove` on the floor. `resolve_requested_classes` keeps its own
123
- # promise — it returns the unknowns rather than discarding them — and its
124
- # docstring says exactly why: "a profile naming a class the model cannot emit
125
- # is exactly the `yolov8_nano` shape". The caller then discarded them one
126
- # level up, which is where the promise was actually broken.
127
- #
128
- # The partial case is the dangerous one and it becomes the COMMON one the
129
- # moment specialist models exist: a PPE profile asks for `glove` and
130
- # `hairnet` alongside `person`, and on a box holding only the general
131
- # detector the operator would get person counts and silence about gloves.
132
- #
133
- # Refusing loses the person detections too, which is the cost. It is the
134
- # right trade: which models are resident is decided upstream by the profile
135
- # push, so a class the box cannot answer is a configuration error, and the
136
- # client maps a 400 to `DetectorUnavailableError` -> shadow mode records
137
- # `unavailable`. A wrong configuration becomes visible instead of becoming a
138
- # quieter answer.
139
- if unknown:
140
- raise WireError(
141
- 400,
142
- f"requested classes not in this model's vocabulary: {unknown}. "
143
- f"Known classes: {sorted(KNOWN_CLASS_NAMES)}",
144
- )
145
- if not wanted:
146
- raise WireError(400, "`classes` resolved to nothing requestable")
147
- return jpeg, min_confidence, wanted
125
+ return jpeg, min_confidence, raw_classes
148
126
 
149
127
 
150
128
  def _assert_wire_safe(detections: list) -> None:
@@ -177,7 +155,26 @@ def _assert_wire_safe(detections: list) -> None:
177
155
  )
178
156
 
179
157
 
180
- def build_detect_response(batch, model_name: str) -> dict:
158
+ #: How several models' names are joined into the one `model` string the wire
159
+ #: carries. `LocalDetectorClient` types it `string | null` and never branches on
160
+ #: it (`LocalDetectorClient.ts`: `model: typeof parsed?.model === 'string' &&
161
+ #: parsed.model ? parsed.model : null`), so a joined string is contract-safe —
162
+ #: verified against the client rather than assumed. It is an ATTRIBUTION field,
163
+ #: and losing the second name would make a merged answer indistinguishable from
164
+ #: a single-model one when a specialist later turns out to be wrong.
165
+ MODEL_JOIN = "+"
166
+
167
+
168
+ def build_detect_response(batch) -> dict:
169
+ models = list(getattr(batch, "models", []) or [])
170
+ if not models:
171
+ # An unattributed result. `model` would serialise as `""` -> the client
172
+ # reads null, and every downstream reader loses the ability to say which
173
+ # artifact produced a detection. `cctv-detector-tier.md` §5 rule 2 is a
174
+ # whole scar about exactly that class of missing provenance, so this is
175
+ # a 500 rather than a plausible 200.
176
+ raise ValueError("batch names no model; a detection that cannot be attributed must not ship")
177
+
181
178
  body = {
182
179
  "detections": [
183
180
  {
@@ -192,7 +189,10 @@ def build_detect_response(batch, model_name: str) -> dict:
192
189
  # ~63 ms in `docs/runbooks/cctv-detector-tier.md` — a decode cost folded
193
190
  # in here would quietly invalidate that comparison later.
194
191
  "inference_ms": batch.inference_ms,
195
- "model": model_name,
192
+ # THE SET THAT ANSWERED — `sensing-model-library.md` §3. One name on a
193
+ # single-model box, so the shipped payload is byte-identical to what it
194
+ # was before the library existed.
195
+ "model": MODEL_JOIN.join(models),
196
196
  }
197
197
  # A non-finite timing would serialise as a bare `NaN`, which is INVALID JSON
198
198
  # (`json.dumps` emits it by default; `JSON.parse` refuses it). The client
@@ -272,11 +272,30 @@ class DetectorHandler(BaseHTTPRequestHandler):
272
272
  loader = self.server.loader # type: ignore[attr-defined]
273
273
  try:
274
274
  raw = self._read_body()
275
- jpeg, min_confidence, wanted = parse_detect_request(raw)
275
+ jpeg, min_confidence, requested = parse_detect_request(raw)
276
276
  except WireError as err:
277
277
  self._json(err.status, {"error": err.message})
278
278
  return
279
279
 
280
+ wanted = None
281
+ if requested is not None:
282
+ try:
283
+ wanted = loader.resolve_classes(requested)
284
+ except UnknownClasses as err:
285
+ # 400, BEFORE INFERENCE, on ANY unknown — not just on all of
286
+ # them. The partial case is the dangerous one and it becomes the
287
+ # COMMON one the moment specialists exist: a PPE profile asks for
288
+ # `glove` and `hairnet` alongside `person`, and on a box holding
289
+ # only the general detector two thirds of the question would
290
+ # vanish into a 200 that looks like an answer. Refusing costs the
291
+ # `person` detections too; that is the right trade, because which
292
+ # models are on the box was decided upstream by the profile push,
293
+ # so a class this box cannot answer is a configuration error and
294
+ # the client maps 400 to `DetectorUnavailableError`. Visible
295
+ # beats quieter.
296
+ self._json(400, {"error": err.detail or str(err)})
297
+ return
298
+
280
299
  try:
281
300
  batch = loader.detect(jpeg, min_confidence, wanted)
282
301
  except DetectorNotReady as err:
@@ -290,7 +309,7 @@ class DetectorHandler(BaseHTTPRequestHandler):
290
309
  return
291
310
 
292
311
  try:
293
- body = build_detect_response(batch, loader.model_name)
312
+ body = build_detect_response(batch)
294
313
  except ValueError as err:
295
314
  self._log(f"[detector] REFUSING to emit a malformed payload: {err}")
296
315
  self._json(500, {"error": f"refused to emit a malformed payload: {err}"})
@@ -39,7 +39,9 @@ import numpy as np
39
39
  import onnxruntime as ort
40
40
  from PIL import Image
41
41
 
42
- from .labels import COCO91_CLASS_NAMES, EXPECTED_LOGIT_SLOTS
42
+ from .detections import Detection, DetectionBatch
43
+ from .errors import ModelContractError
44
+ from .labels import ModelVocabulary
43
45
 
44
46
  #: `rfdetr/detr.py` — ImageNet statistics, applied AFTER scaling to [0,1].
45
47
  IMAGENET_MEAN = np.array([0.485, 0.456, 0.406], dtype=np.float32).reshape(3, 1, 1)
@@ -52,34 +54,6 @@ IMAGENET_STD = np.array([0.229, 0.224, 0.225], dtype=np.float32).reshape(3, 1, 1
52
54
  NUM_SELECT = 300
53
55
 
54
56
 
55
- @dataclass(frozen=True)
56
- class Detection:
57
- """One wire-shaped detection. Pixel box, canonical label, [0,1] confidence."""
58
-
59
- label: str
60
- confidence: float
61
- x: float
62
- y: float
63
- width: float
64
- height: float
65
-
66
-
67
- @dataclass
68
- class DetectionBatch:
69
- detections: list[Detection]
70
- #: The ORT forward pass alone, in ms — directly comparable to the ~63 ms in
71
- #: `docs/runbooks/cctv-detector-tier.md`. Decode and post-processing are
72
- #: reported separately (`total_ms`) so a slow JPEG decode cannot hide inside
73
- #: a number the runbook will later be checked against.
74
- inference_ms: float = 0.0
75
- total_ms: float = 0.0
76
- #: Boxes that survived the threshold but cover no pixels after clamping to
77
- #: the frame. Counted, never silently swallowed — see `_to_wire`.
78
- degenerate_dropped: int = 0
79
- #: Detections whose argmax landed on one of the eleven COCO id gaps.
80
- unnamed_class_dropped: int = 0
81
-
82
-
83
57
  @dataclass
84
58
  class GraphSpec:
85
59
  """What the loaded artifact actually is, read off the graph, never assumed."""
@@ -94,10 +68,6 @@ class GraphSpec:
94
68
  providers: list[str] = field(default_factory=list)
95
69
 
96
70
 
97
- class ModelContractError(RuntimeError):
98
- """The artifact loaded, but it is not the graph this service can label."""
99
-
100
-
101
71
  def preprocess(jpeg: bytes, width: int, height: int) -> tuple[np.ndarray, int, int]:
102
72
  """JPEG bytes -> NCHW float32, plus the SUBMITTED frame's pixel size.
103
73
 
@@ -126,6 +96,8 @@ def postprocess(
126
96
  frame_h: int,
127
97
  min_confidence: float,
128
98
  wanted: "set[str] | None" = None,
99
+ *,
100
+ vocabulary: ModelVocabulary,
129
101
  ) -> DetectionBatch:
130
102
  """Raw graph outputs -> wire detections, in the submitted frame's pixels.
131
103
 
@@ -134,6 +106,14 @@ def postprocess(
134
106
  `wanted` filters HERE, at the service, because the alternative is shipping
135
107
  every box across loopback to throw most away — `LocalDetectorClient`'s own
136
108
  reasoning, and the reason `classes` rides the wire at all.
109
+
110
+ `vocabulary` IS REQUIRED AND HAS NO DEFAULT. It used to be the module-level
111
+ COCO-91 map, which is exactly what made a specialist inexpressible — and a
112
+ default naming the shipped model would be worse than the constant it
113
+ replaces: a PPE model would silently get COCO names for its own slots and
114
+ every number downstream would stay plausible. That is `cctv-detector-tier.md`
115
+ §5 rule 2 with the sign flipped, and it is the reason the argument is
116
+ keyword-only: a positional one could be filled by the wrong thing.
137
117
  """
138
118
  # (1, Q, C) -> (Q, C); the graph is batch-1 by construction.
139
119
  prob = _sigmoid(logits[0])
@@ -161,7 +141,7 @@ def postprocess(
161
141
  x1 = np.clip((cx + 0.5 * w) * frame_w, 0.0, frame_w)
162
142
  y1 = np.clip((cy + 0.5 * h) * frame_h, 0.0, frame_h)
163
143
 
164
- return _to_wire(scores, class_idx, x0, y0, x1, y1, wanted)
144
+ return _to_wire(scores, class_idx, x0, y0, x1, y1, wanted, vocabulary)
165
145
 
166
146
 
167
147
  def _to_wire(
@@ -172,14 +152,17 @@ def _to_wire(
172
152
  x1: np.ndarray,
173
153
  y1: np.ndarray,
174
154
  wanted: "set[str] | None",
155
+ vocabulary: ModelVocabulary,
175
156
  ) -> DetectionBatch:
176
157
  """Assemble detections, dropping only what CANNOT be put on the wire.
177
158
 
178
159
  Two drops, and each is counted rather than swallowed:
179
160
 
180
- * an UNNAMED CLASS SLOT. Eleven of the ninety-one slots are COCO id gaps
181
- with no name. `docs/runbooks/cctv-detector-tier.md` §5 rule 2 forbids
182
- guessing; a detection with no nameable class is dropped.
161
+ * an UNNAMED CLASS SLOT. For COCO-91, eleven of the ninety-one slots are
162
+ category-id gaps with no name; a specialist may have its own. The name
163
+ comes from THIS MODEL's committed vocabulary and from nowhere else.
164
+ `docs/runbooks/cctv-detector-tier.md` §5 rule 2 forbids guessing; a
165
+ detection with no nameable class is dropped.
183
166
  * a ZERO-EXTENT BOX. A box clamped flush against a frame edge can have zero
184
167
  width or height, and `LocalDetectorClient` REJECTS THE ENTIRE PAYLOAD on
185
168
  one — correctly, since it cannot tell a schema-drifted service from a
@@ -197,8 +180,9 @@ def _to_wire(
197
180
  degenerate = 0
198
181
  unnamed = 0
199
182
 
183
+ slot_names = vocabulary.slot_names
200
184
  for i in range(scores.shape[0]):
201
- name = COCO91_CLASS_NAMES.get(int(class_idx[i]))
185
+ name = slot_names.get(int(class_idx[i]))
202
186
  if name is None:
203
187
  unnamed += 1
204
188
  continue
@@ -221,7 +205,12 @@ def _to_wire(
221
205
  # sigmoid is (0,1); clamp only guards float64 round-trip at the edges.
222
206
  out.append(Detection(name, min(1.0, max(0.0, conf)), left, top, width, height))
223
207
 
224
- return DetectionBatch(out, degenerate_dropped=degenerate, unnamed_class_dropped=unnamed)
208
+ return DetectionBatch(
209
+ out,
210
+ degenerate_dropped=degenerate,
211
+ unnamed_class_dropped=unnamed,
212
+ models=[vocabulary.model_name],
213
+ )
225
214
 
226
215
 
227
216
  def _sigmoid(x: np.ndarray) -> np.ndarray:
@@ -250,21 +239,30 @@ class OnnxDetector:
250
239
  overrides them. Pinning them is the mistake the same section names.
251
240
  """
252
241
 
253
- def __init__(self, model_path: Path, model_name: str, intra_op_threads: "int | None" = None):
242
+ def __init__(
243
+ self,
244
+ model_path: Path,
245
+ vocabulary: ModelVocabulary,
246
+ intra_op_threads: "int | None" = None,
247
+ ):
254
248
  self.model_path = model_path
255
- self.model_name = model_name
249
+ self.vocabulary = vocabulary
250
+ self.model_name = vocabulary.model_name
256
251
  self._lock = threading.Lock()
257
252
 
258
253
  opts = ort.SessionOptions()
259
254
  if intra_op_threads is not None:
260
255
  opts.intra_op_num_threads = intra_op_threads
261
- # Loopback service, one process, one model: log only what a fault needs.
256
+ # Loopback service, one process: log only what a fault needs. Several
257
+ # sessions may be resident at once now (`registry.py`), which is exactly
258
+ # why the thread counts below stay at ORT's default — pinning them would
259
+ # multiply an already non-monotonic pool by the number of models.
262
260
  opts.log_severity_level = 3
263
261
 
264
262
  self._session = ort.InferenceSession(
265
263
  str(model_path), sess_options=opts, providers=["CPUExecutionProvider"]
266
264
  )
267
- self.spec = _read_graph_spec(self._session)
265
+ self.spec = _read_graph_spec(self._session, vocabulary)
268
266
 
269
267
  def detect(
270
268
  self,
@@ -282,21 +280,38 @@ class OnnxDetector:
282
280
  )
283
281
  infer_ms = (time.perf_counter() - infer_started) * 1000.0
284
282
 
285
- batch = postprocess(outputs[0], outputs[1], frame_w, frame_h, min_confidence, wanted)
283
+ batch = postprocess(
284
+ outputs[0],
285
+ outputs[1],
286
+ frame_w,
287
+ frame_h,
288
+ min_confidence,
289
+ wanted,
290
+ vocabulary=self.vocabulary,
291
+ )
286
292
  batch.inference_ms = infer_ms
287
293
  batch.total_ms = (time.perf_counter() - started) * 1000.0
288
294
  return batch
289
295
 
290
296
 
291
- def _read_graph_spec(session: "ort.InferenceSession") -> GraphSpec:
297
+ def _read_graph_spec(
298
+ session: "ort.InferenceSession",
299
+ vocabulary: ModelVocabulary,
300
+ ) -> GraphSpec:
292
301
  """Read the contract off the loaded graph, and REFUSE a graph we cannot label.
293
302
 
294
- The exported artifact carries no class metadata, so the label map in
295
- `labels.py` is the only thing naming its 91 slots. If the graph's class axis
296
- is not 91 wide, that map does not describe it — and applying it anyway
297
- renames every object in the venue while every number stays plausible. That
298
- is the `yolov8_nano` failure with the sign flipped: instead of a model
299
- offered and never loadable, a model loaded and never right.
303
+ The exported artifact carries no class metadata, so the committed
304
+ vocabulary in `labels.py` is the only thing naming its slots. If the graph's
305
+ class axis is not the width that vocabulary declares, it does not describe
306
+ this artifact — and applying it anyway renames every object in the venue
307
+ while every number stays plausible. That is the `yolov8_nano` failure with
308
+ the sign flipped: instead of a model offered and never loadable, a model
309
+ loaded and never right.
310
+
311
+ THE CHECK IS PER MODEL, NOT PER SERVICE. With a library, "91 slots" is one
312
+ model's fact rather than the box's, so the width is read off the vocabulary
313
+ being loaded. A specialist with a 4-wide axis loads happily against ITS OWN
314
+ vocabulary and is still refused against anyone else's.
300
315
 
301
316
  So a mismatch raises, the service goes UNHEALTHY with the reason, and
302
317
  nothing is emitted. The 2.1%-of-events figure the placement decision rests
@@ -335,11 +350,11 @@ def _read_graph_spec(session: "ort.InferenceSession") -> GraphSpec:
335
350
  raise ModelContractError(f"`labels` is not (N, Q, C): {logit_shape}")
336
351
 
337
352
  num_classes = logit_shape[2]
338
- if num_classes != EXPECTED_LOGIT_SLOTS:
353
+ if num_classes != vocabulary.logit_slots:
339
354
  raise ModelContractError(
340
- f"model has {num_classes} class slots; the committed label map describes "
341
- f"{EXPECTED_LOGIT_SLOTS}. Refusing rather than labelling boxes by an "
342
- "index this map does not name — see labels.py."
355
+ f"model has {num_classes} class slots; the committed vocabulary for "
356
+ f"{vocabulary.model_name} describes {vocabulary.logit_slots}. Refusing rather "
357
+ "than labelling boxes by an index that vocabulary does not name — see labels.py."
343
358
  )
344
359
 
345
360
  return GraphSpec(
@@ -352,3 +367,17 @@ def _read_graph_spec(session: "ort.InferenceSession") -> GraphSpec:
352
367
  num_classes=int(num_classes),
353
368
  providers=list(session.get_providers()),
354
369
  )
370
+
371
+
372
+ #: Re-exported so `from .session import DetectionBatch` keeps working. ONE
373
+ #: definition, in `detections.py`, which is stdlib-only so `registry.py` can
374
+ #: merge two models' answers on a runner that has no onnxruntime.
375
+ __all__ = [
376
+ "Detection",
377
+ "DetectionBatch",
378
+ "GraphSpec",
379
+ "ModelContractError",
380
+ "OnnxDetector",
381
+ "postprocess",
382
+ "preprocess",
383
+ ]
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.81';
47
+ const SDK_VERSION = '0.2.84';
48
48
  class EdgeAgent extends events_1.EventEmitter {
49
49
  constructor(config, deps) {
50
50
  super();
@@ -47,7 +47,7 @@ export interface SensingProfileClientOptions {
47
47
  * `ProfileField`, the shape `buildLocalSensingSchema` actually consumes, so
48
48
  * the two genuinely differ and both are kept.
49
49
  */
50
- export interface ResolvedSensingProfile extends Pick<WireSensingProfileResponse, 'profileName' | 'profileId' | 'profileType' | 'captureIntervalMs' | 'absenceWatchedFields'> {
50
+ export interface ResolvedSensingProfile extends Pick<WireSensingProfileResponse, 'profileName' | 'profileId' | 'profileType' | 'captureIntervalMs' | 'absenceWatchedFields' | 'models' | 'classes'> {
51
51
  /**
52
52
  * The operator's custom fields the on-device VLM must also emit — sanitized
53
53
  * from `WireSensingProfileResponse['fields']`, see the note above.
@@ -1 +1 @@
1
- {"version":3,"file":"SensingProfileClient.d.ts","sourceRoot":"","sources":["../src/SensingProfileClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACzE,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;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,sBACf,SAAQ,IAAI,CACV,0BAA0B,EAC1B,aAAa,GAAG,WAAW,GAAG,aAAa,GAAG,mBAAmB,GAAG,sBAAsB,CAC3F;IACD;;;OAGG;IACH,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;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;CAkD7D"}
1
+ {"version":3,"file":"SensingProfileClient.d.ts","sourceRoot":"","sources":["../src/SensingProfileClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA2B,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAClG,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;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,sBACf,SAAQ,IAAI,CACV,0BAA0B,EACxB,aAAa,GACb,WAAW,GACX,aAAa,GACb,mBAAmB,GACnB,sBAAsB,GACtB,QAAQ,GACR,SAAS,CACZ;IACD;;;OAGG;IACH,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;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;CAuE7D"}
@@ -75,6 +75,26 @@ class SensingProfileClient {
75
75
  absenceWatchedFields: Array.isArray(parsed.absenceWatchedFields)
76
76
  ? parsed.absenceWatchedFields.filter((f) => typeof f === 'string' && f.length > 0)
77
77
  : [],
78
+ // The models this device may actually receive, sanitized the same way the
79
+ // fields are: an entry without a string `modelId` is not a model, and a
80
+ // non-string `modelFormat` becomes null rather than being carried through
81
+ // to a destination lookup that would then guess at it. Absent on an older
82
+ // API -> [], which the OTA reads as "no specialist granted" — the exact
83
+ // behaviour the connector had before this field existed.
84
+ models: Array.isArray(parsed.models)
85
+ ? parsed.models
86
+ .filter((m) => !!m && typeof m.modelId === 'string' && m.modelId.length > 0)
87
+ .map((m) => ({
88
+ modelId: m.modelId,
89
+ modelFormat: typeof m.modelFormat === 'string' ? m.modelFormat : null,
90
+ }))
91
+ : [],
92
+ // The class vocabulary those models advertise. Parsed and carried now so it
93
+ // is available the moment the cascade is armed; `DetectorShadowProbe`
94
+ // deliberately sends NO class filter in shadow mode and must not start.
95
+ classes: Array.isArray(parsed.classes)
96
+ ? parsed.classes.filter((c) => typeof c === 'string' && c.length > 0)
97
+ : [],
78
98
  };
79
99
  }
80
100
  }
@@ -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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"}
@@ -1,6 +1,6 @@
1
1
  import { type EdgeAgentConfig } from './config';
2
2
  import { type SensingManager } from './sensingRunMode';
3
- import { type GemmaModelOtaHandle } from './gemmaModelOta';
3
+ import type { GemmaModelOtaHandle } from './gemmaModelOta';
4
4
  import type { ConnectorRuntimeReport } from './ConnectorStatusClient';
5
5
  /** The outcome of a LiteRT-LM health probe (consumed by the mode selector). */
6
6
  export interface LiteRtHealthResult {
@@ -267,10 +267,11 @@ export interface AutoSenseDeps {
267
267
  /** Block until shutdown (production never resolves; tests inject a resolved waiter). */
268
268
  waitForShutdown?: () => Promise<void>;
269
269
  /**
270
- * Start the on-device VLM (Gemma) OTA watcher. Defaults to startGemmaModelOta.
271
- * Returns a handle whose stop() runs on shutdown (or null when disabled). It
272
- * starts only after LOCAL sensing activates, so first-time provisioning owns
273
- * the initial model download and OTA cannot race it.
270
+ * Start the model OTA watchers — the on-device VLM (Gemma) AND one download per
271
+ * granted specialist. Defaults to `startModelOta`. Returns a handle whose
272
+ * stop() runs on shutdown (or null when disabled). It starts only after LOCAL
273
+ * sensing activates, so first-time provisioning owns the initial model download
274
+ * and OTA cannot race it.
274
275
  */
275
276
  startModelOta?: (config: EdgeAgentConfig) => GemmaModelOtaHandle | null;
276
277
  }
@@ -1 +1 @@
1
- {"version":3,"file":"autoSense.d.ts","sourceRoot":"","sources":["../src/autoSense.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"autoSense.d.ts","sourceRoot":"","sources":["../src/autoSense.ts"],"names":[],"mappings":"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"}
package/dist/autoSense.js CHANGED
@@ -42,7 +42,7 @@ const url_1 = require("url");
42
42
  const config_1 = require("./config");
43
43
  const LiteRtVlmProvider_1 = require("./LiteRtVlmProvider");
44
44
  const sensingRunMode_1 = require("./sensingRunMode");
45
- const gemmaModelOta_1 = require("./gemmaModelOta");
45
+ const modelOta_1 = require("./modelOta");
46
46
  const startupDiscovery_1 = require("./startupDiscovery");
47
47
  const connectorUpdate_1 = require("./connectorUpdate");
48
48
  /**
@@ -592,6 +592,16 @@ class AutoSenseSupervisor {
592
592
  }
593
593
  }
594
594
  exports.AutoSenseSupervisor = AutoSenseSupervisor;
595
+ /**
596
+ * The VLM watcher plus the granted specialists, asking the same screens the
597
+ * cadence source asks. Same construction as `cli.ts`'s local-sense arm — the two
598
+ * entrypoints must not deliver different model sets.
599
+ */
600
+ function defaultStartModelOta(config) {
601
+ return (0, modelOta_1.startModelOta)(config, [], {
602
+ grantedModelSource: (0, modelOta_1.buildGrantedModelSource)({ feeds: (0, sensingRunMode_1.profileFeedsForConfig)(config) }),
603
+ });
604
+ }
595
605
  function defaultRegisterShutdown(handler) {
596
606
  process.on('SIGINT', handler);
597
607
  process.on('SIGTERM', handler);
@@ -649,7 +659,7 @@ async function runAutoSense(args, deps = {}) {
649
659
  if (gemmaOtaStarted)
650
660
  return;
651
661
  gemmaOtaStarted = true;
652
- gemmaOta = (deps.startModelOta ?? gemmaModelOta_1.startGemmaModelOta)(config);
662
+ gemmaOta = (deps.startModelOta ?? defaultStartModelOta)(config);
653
663
  };
654
664
  const supervisor = new AutoSenseSupervisor({
655
665
  probe,
@@ -1 +1 @@
1
- {"version":3,"file":"autoSense.js","sourceRoot":"","sources":["../src/autoSense.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"autoSense.js","sourceRoot":"","sources":["../src/autoSense.ts"],"names":[],"mappings":"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"}