@trillboards/edge-sdk 0.2.79 → 0.2.81

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.
@@ -317,12 +317,40 @@ class TestClassFilter(ServerCase):
317
317
  self.assertEqual(status, 400)
318
318
  self.assertIn("shoplifter", body["error"])
319
319
 
320
- def test_a_partly_unknown_list_proceeds_on_the_known_half(self):
320
+ def test_a_partly_unknown_list_is_ALSO_a_loud_400(self):
321
+ """The partial case is the dangerous one, and it used to return 200.
322
+
323
+ `["person", "shoplifter"]` proceeded on `person` and dropped
324
+ `shoplifter` silently, so a profile asking about shoplifting got person
325
+ counts and no signal that its actual question was discarded. That is the
326
+ same `yolov8_nano` shape the test above is written against — a capability
327
+ offered and not delivered — only wearing a 200 instead of a 0%.
328
+
329
+ It becomes the COMMON case once specialist models exist: a PPE profile
330
+ asks for `glove` and `hairnet` alongside `person`, and on a box holding
331
+ only the general detector two thirds of the question would vanish.
332
+
333
+ Refusing costs the `person` detections too. That is the right trade —
334
+ which models are resident is decided upstream by the profile push, so a
335
+ class the box cannot answer is a configuration error, and the client maps
336
+ 400 to `DetectorUnavailableError`, which shadow mode records as
337
+ `unavailable`. Visible beats quieter.
338
+ """
339
+ loader = FakeLoader()
340
+ url = self.serve(loader)
341
+ status, body = self.detect(url, classes=["person", "shoplifter"])
342
+ self.assertEqual(status, 400)
343
+ self.assertIn("shoplifter", body["error"])
344
+ # And the detector was never asked — we refuse before inferring.
345
+ self.assertEqual(loader.calls, [])
346
+
347
+ def test_a_fully_known_list_still_reaches_the_detector(self):
348
+ """The refusal above must not have made every class request fail."""
321
349
  loader = FakeLoader()
322
350
  url = self.serve(loader)
323
- status, _ = self.detect(url, classes=["person", "shoplifter"])
351
+ status, _ = self.detect(url, classes=["person", "cell phone"])
324
352
  self.assertEqual(status, 200)
325
- self.assertEqual(loader.calls[0][2], {"person"})
353
+ self.assertEqual(loader.calls[0][2], {"person", "cell phone"})
326
354
 
327
355
 
328
356
  class TestRequestRefusals(ServerCase):
@@ -115,12 +115,35 @@ def parse_detect_request(raw: bytes) -> tuple[bytes, float, "set[str] | None"]:
115
115
  raise WireError(400, "`classes` was an empty array; omit the key to mean every class")
116
116
 
117
117
  wanted, unknown = resolve_requested_classes(raw_classes)
118
- if not wanted:
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:
119
140
  raise WireError(
120
141
  400,
121
- f"none of the requested classes exist in this model's vocabulary: {unknown}. "
142
+ f"requested classes not in this model's vocabulary: {unknown}. "
122
143
  f"Known classes: {sorted(KNOWN_CLASS_NAMES)}",
123
144
  )
145
+ if not wanted:
146
+ raise WireError(400, "`classes` resolved to nothing requestable")
124
147
  return jpeg, min_confidence, wanted
125
148
 
126
149
 
@@ -1 +1 @@
1
- {"version":3,"file":"DetectorShadowProbe.d.ts","sourceRoot":"","sources":["../src/DetectorShadowProbe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DetectorShadowProbe.d.ts","sourceRoot":"","sources":["../src/DetectorShadowProbe.ts"],"names":[],"mappings":"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"}
@@ -451,13 +451,31 @@ exports.DetectorShadowProbe = DetectorShadowProbe;
451
451
  * three buckets below are what an operator can act on.
452
452
  */
453
453
  function classifyUnavailable(err) {
454
- const message = err instanceof Error ? err.message : String(err);
454
+ // A THROWN TYPE first, never prose. Anything that is not the client's own
455
+ // refusal came from somewhere we do not model — our own deadline race, a
456
+ // programmer error — and calling that a detector fault would misdirect the
457
+ // operator reading it.
458
+ if (!(err instanceof LocalDetectorClient_1.DetectorUnavailableError)) {
459
+ return /timed out/i.test(err instanceof Error ? err.message : String(err))
460
+ ? 'timeout'
461
+ : 'unknown';
462
+ }
463
+ const message = err.message;
455
464
  if (/timed out/i.test(message))
456
465
  return 'timeout';
457
466
  if (/HTTP \d{3}/.test(message))
458
467
  return 'http_error';
459
- if (/envelope|detections|label|confidence|box|not JSON/i.test(message))
460
- return 'bad_envelope';
461
- return 'transport_failed';
468
+ if (/transport failed/i.test(message))
469
+ return 'transport_failed';
470
+ // STRUCTURAL, not enumerated. `LocalDetectorClient` throws this error for
471
+ // exactly four reasons — transport, non-2xx, unparseable body, and a 2xx
472
+ // whose payload is not the contract — and the three above are already
473
+ // matched, so what is left IS the envelope class. The previous version
474
+ // listed six message substrings (`envelope|detections|label|confidence|box|
475
+ // not JSON`), which the enumerated-regex guard correctly rejected: a
476
+ // hand-listed alternation over another file's prose silently degrades to the
477
+ // fallback the moment that file rewords a message, and the fallback here was
478
+ // `transport_failed` — a wrong diagnosis, not a missing one.
479
+ return 'bad_envelope';
462
480
  }
463
481
  //# sourceMappingURL=DetectorShadowProbe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DetectorShadowProbe.js","sourceRoot":"","sources":["../src/DetectorShadowProbe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DetectorShadowProbe.js","sourceRoot":"","sources":["../src/DetectorShadowProbe.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.79';
47
+ const SDK_VERSION = '0.2.81';
48
48
  class EdgeAgent extends events_1.EventEmitter {
49
49
  constructor(config, deps) {
50
50
  super();
@@ -31,7 +31,7 @@ export interface DiagnosticReport {
31
31
  skipped: number;
32
32
  };
33
33
  }
34
- declare const SDK_VERSION = "0.2.79";
34
+ declare const SDK_VERSION = "0.2.81";
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.79';
66
+ const SDK_VERSION = '0.2.81';
67
67
  exports._SDK_VERSION = SDK_VERSION;
68
68
  // ---------------------------------------------------------------------------
69
69
  // ANSI helpers (no external deps)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trillboards/edge-sdk",
3
- "version": "0.2.79",
3
+ "version": "0.2.81",
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",