@trillboards/edge-sdk 0.2.127 → 0.2.129
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DetectorFieldProducer.d.ts +36 -0
- package/dist/DetectorFieldProducer.d.ts.map +1 -1
- package/dist/DetectorFieldProducer.js +67 -3
- package/dist/DetectorFieldProducer.js.map +1 -1
- package/dist/EdgeAgent.js +1 -1
- package/dist/SetupSessionClient.d.ts +52 -1
- package/dist/SetupSessionClient.d.ts.map +1 -1
- package/dist/SetupSessionClient.js +109 -4
- package/dist/SetupSessionClient.js.map +1 -1
- package/dist/diagnose.d.ts +1 -1
- package/dist/diagnose.js +1 -1
- package/dist/jpegFrameSize.d.ts +30 -0
- package/dist/jpegFrameSize.d.ts.map +1 -0
- package/dist/jpegFrameSize.js +94 -0
- package/dist/jpegFrameSize.js.map +1 -0
- package/dist/setupMode.d.ts +18 -1
- package/dist/setupMode.d.ts.map +1 -1
- package/dist/setupMode.js +95 -9
- package/dist/setupMode.js.map +1 -1
- package/dist/zoneContainment.d.ts +62 -0
- package/dist/zoneContainment.d.ts.map +1 -1
- package/dist/zoneContainment.js +108 -0
- package/dist/zoneContainment.js.map +1 -1
- package/package.json +1 -1
|
@@ -188,6 +188,7 @@
|
|
|
188
188
|
* and a second catalogue at worst. The 400 IS the arrival check, from the
|
|
189
189
|
* only component that knows.
|
|
190
190
|
*/
|
|
191
|
+
import { type NormalizedPoint } from './zoneContainment';
|
|
191
192
|
import { LocalDetectorClient } from './LocalDetectorClient';
|
|
192
193
|
/**
|
|
193
194
|
* One entry of the `producer` half of a field partition.
|
|
@@ -243,6 +244,15 @@ export interface RelationDerivation {
|
|
|
243
244
|
* fixes: `unmapped` is a registry defect somebody has to correct, this is a
|
|
244
245
|
* connector that needs updating and is otherwise healthy.
|
|
245
246
|
*
|
|
247
|
+
* `zone_count` is the OPERATOR'S REGION, applied geometrically. It is here
|
|
248
|
+
* because the alternative is measured and closed: `composeFocusDescription`
|
|
249
|
+
* sends one English line and the model ignores it — shipped polygon and shipped
|
|
250
|
+
* rect leak 100% at every anchor tested, including interior bands, while the
|
|
251
|
+
* geometric rule leaks 0% on the SAME frames and the SAME bands with zero prompt
|
|
252
|
+
* characters. Unlike the other kinds it consumes geometry, and that geometry
|
|
253
|
+
* rides the ROUTE (`regionForField`), never the model: the rule is a property of
|
|
254
|
+
* the class, the region is a property of the camera the operator drew on.
|
|
255
|
+
*
|
|
246
256
|
* `co_located` is absent on purpose and is not an oversight. Measured
|
|
247
257
|
* 2026-09-01 on 22 positives / 16 negatives, the detector arm for
|
|
248
258
|
* `person_using_phone` runs 72.2% precision / 59.1% recall and fires on 31.3%
|
|
@@ -492,6 +502,22 @@ export declare function countsForClasses(classes: string[], detections: Array<{
|
|
|
492
502
|
label: string;
|
|
493
503
|
confidence: number;
|
|
494
504
|
}>, classThresholds?: Map<string, number>): Map<string, number>;
|
|
505
|
+
/**
|
|
506
|
+
* The operator's saved region for one field, as the ROUTE carries it.
|
|
507
|
+
*
|
|
508
|
+
* `zone_count` is the only kind that consumes geometry, and the geometry is not
|
|
509
|
+
* the model's: `cameraPairingController` refuses a producer entry carrying a
|
|
510
|
+
* region because that would be a second home for a fact `sensing_route_screens`
|
|
511
|
+
* already owns. So the rule arrives on the field and the region arrives here,
|
|
512
|
+
* keyed by field, and the producer joins them for one frame.
|
|
513
|
+
*/
|
|
514
|
+
export type RegionForField = (field: string) => ({
|
|
515
|
+
points?: NormalizedPoint[];
|
|
516
|
+
x?: number;
|
|
517
|
+
y?: number;
|
|
518
|
+
width?: number;
|
|
519
|
+
height?: number;
|
|
520
|
+
} | null | undefined);
|
|
495
521
|
export interface DetectorFieldProducerOptions {
|
|
496
522
|
/** Detector service base URL. Defaults to the client's loopback default. */
|
|
497
523
|
baseUrl?: string;
|
|
@@ -510,6 +536,15 @@ export interface DetectorFieldProducerOptions {
|
|
|
510
536
|
minConfidence?: number;
|
|
511
537
|
/** Clock injection for tests. Default Date.now. */
|
|
512
538
|
now?: () => number;
|
|
539
|
+
/**
|
|
540
|
+
* The operator's saved region, per field. Consulted ONLY for `zone_count`.
|
|
541
|
+
*
|
|
542
|
+
* Absent, or returning null for a field, means no region was drawn and the
|
|
543
|
+
* count is every detection — which is what the unfocused field already means.
|
|
544
|
+
* Absence must never degrade to zero: a region that silently counts nothing is
|
|
545
|
+
* indistinguishable from a quiet venue.
|
|
546
|
+
*/
|
|
547
|
+
regionForField?: RegionForField;
|
|
513
548
|
}
|
|
514
549
|
export declare class DetectorFieldProducer {
|
|
515
550
|
private readonly baseUrl;
|
|
@@ -519,6 +554,7 @@ export declare class DetectorFieldProducer {
|
|
|
519
554
|
private readonly minConfidence;
|
|
520
555
|
private readonly now;
|
|
521
556
|
private readonly clientFor;
|
|
557
|
+
private readonly regionForField;
|
|
522
558
|
constructor(options?: DetectorFieldProducerOptions, clientFactory?: DetectorClientFactory);
|
|
523
559
|
/**
|
|
524
560
|
* Produce this frame's declared fields.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DetectorFieldProducer.d.ts","sourceRoot":"","sources":["../src/DetectorFieldProducer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6LG;AACH,OAAO,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"DetectorFieldProducer.d.ts","sourceRoot":"","sources":["../src/DetectorFieldProducer.ts"],"names":[],"mappings":"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"}
|
|
@@ -194,6 +194,8 @@ exports.toFieldValues = toFieldValues;
|
|
|
194
194
|
* and a second catalogue at worst. The 400 IS the arrival check, from the
|
|
195
195
|
* only component that knows.
|
|
196
196
|
*/
|
|
197
|
+
const zoneContainment_1 = require("./zoneContainment");
|
|
198
|
+
const jpegFrameSize_1 = require("./jpegFrameSize");
|
|
197
199
|
const LocalDetectorClient_1 = require("./LocalDetectorClient");
|
|
198
200
|
/**
|
|
199
201
|
* The kinds this connector build can actually evaluate.
|
|
@@ -204,6 +206,15 @@ const LocalDetectorClient_1 = require("./LocalDetectorClient");
|
|
|
204
206
|
* fixes: `unmapped` is a registry defect somebody has to correct, this is a
|
|
205
207
|
* connector that needs updating and is otherwise healthy.
|
|
206
208
|
*
|
|
209
|
+
* `zone_count` is the OPERATOR'S REGION, applied geometrically. It is here
|
|
210
|
+
* because the alternative is measured and closed: `composeFocusDescription`
|
|
211
|
+
* sends one English line and the model ignores it — shipped polygon and shipped
|
|
212
|
+
* rect leak 100% at every anchor tested, including interior bands, while the
|
|
213
|
+
* geometric rule leaks 0% on the SAME frames and the SAME bands with zero prompt
|
|
214
|
+
* characters. Unlike the other kinds it consumes geometry, and that geometry
|
|
215
|
+
* rides the ROUTE (`regionForField`), never the model: the rule is a property of
|
|
216
|
+
* the class, the region is a property of the camera the operator drew on.
|
|
217
|
+
*
|
|
207
218
|
* `co_located` is absent on purpose and is not an oversight. Measured
|
|
208
219
|
* 2026-09-01 on 22 positives / 16 negatives, the detector arm for
|
|
209
220
|
* `person_using_phone` runs 72.2% precision / 59.1% recall and fires on 31.3%
|
|
@@ -211,7 +222,7 @@ const LocalDetectorClient_1 = require("./LocalDetectorClient");
|
|
|
211
222
|
* same sold question. The kind is expressible in the registry and is not built
|
|
212
223
|
* here until a measurement asks for it.
|
|
213
224
|
*/
|
|
214
|
-
exports.SUPPORTED_RELATION_KINDS = new Set(['any_of']);
|
|
225
|
+
exports.SUPPORTED_RELATION_KINDS = new Set(['any_of', 'zone_count']);
|
|
215
226
|
/** Why a declared field has no reading this frame. */
|
|
216
227
|
exports.PRODUCER_WITHHOLD_REASONS = {
|
|
217
228
|
/**
|
|
@@ -386,13 +397,34 @@ function classifyProducerField(entry) {
|
|
|
386
397
|
// An OR of one class is a rename, and a rename is what the suffix rule
|
|
387
398
|
// already does. Refusing here rather than answering it keeps one shape of
|
|
388
399
|
// "this field means that class" in the system.
|
|
389
|
-
if (classNames.length < 2) {
|
|
400
|
+
if (kindName === 'any_of' && classNames.length < 2) {
|
|
390
401
|
return {
|
|
391
402
|
reason: exports.PRODUCER_WITHHOLD_REASONS.UNSUPPORTED_RELATION,
|
|
392
403
|
detail: `'${field}' declares ${kindName} over ${classNames.length} class(es); `
|
|
393
404
|
+ 'an OR needs at least two, and an OR of one is a rename',
|
|
394
405
|
};
|
|
395
406
|
}
|
|
407
|
+
// `zone_count` takes ONE subject class and answers a COUNT; `any_of` takes
|
|
408
|
+
// two or more and answers a presence. Checking the arity per kind rather
|
|
409
|
+
// than once for all of them is why the OR-of-one refusal below does not
|
|
410
|
+
// reject a perfectly good zone.
|
|
411
|
+
if (kindName === 'zone_count' && classNames.length !== 1) {
|
|
412
|
+
return {
|
|
413
|
+
reason: exports.PRODUCER_WITHHOLD_REASONS.UNSUPPORTED_RELATION,
|
|
414
|
+
detail: `'${field}' declares zone_count over ${classNames.length} class(es); it counts ONE`,
|
|
415
|
+
};
|
|
416
|
+
}
|
|
417
|
+
if (kindName === 'zone_count') {
|
|
418
|
+
return {
|
|
419
|
+
...entry,
|
|
420
|
+
field,
|
|
421
|
+
concept: field,
|
|
422
|
+
className: (0, exports.toDetectorClassName)(classNames[0]),
|
|
423
|
+
classNames: [(0, exports.toDetectorClassName)(classNames[0])],
|
|
424
|
+
kind: 'count',
|
|
425
|
+
relationKind: kindName,
|
|
426
|
+
};
|
|
427
|
+
}
|
|
396
428
|
return {
|
|
397
429
|
...entry,
|
|
398
430
|
field,
|
|
@@ -502,6 +534,7 @@ function countsForClasses(classes, detections, classThresholds) {
|
|
|
502
534
|
}
|
|
503
535
|
class DetectorFieldProducer {
|
|
504
536
|
constructor(options = {}, clientFactory) {
|
|
537
|
+
this.regionForField = typeof options.regionForField === 'function' ? options.regionForField : null;
|
|
505
538
|
this.baseUrl = options.baseUrl;
|
|
506
539
|
this.timeoutMs = Math.max(1, Math.trunc(options.timeoutMs ?? exports.DEFAULT_PRODUCER_TIMEOUT_MS));
|
|
507
540
|
this.deadlineMs = Math.max(0, Math.trunc(options.deadlineMs ?? exports.DEFAULT_PRODUCE_DEADLINE_MS));
|
|
@@ -621,8 +654,12 @@ class DetectorFieldProducer {
|
|
|
621
654
|
});
|
|
622
655
|
let counts;
|
|
623
656
|
let detectorModel;
|
|
657
|
+
// The raw detections, kept for `zone_count` alone: `countsForClasses`
|
|
658
|
+
// collapses them to integers, and a region needs the BOXES.
|
|
659
|
+
let detections = [];
|
|
624
660
|
try {
|
|
625
661
|
const result = await client.detect(jpeg);
|
|
662
|
+
detections = result.detections;
|
|
626
663
|
// THROWS on an unattributable label; caught right here and booked as
|
|
627
664
|
// unavailable, because "the service did not apply the class filter" is a
|
|
628
665
|
// reading we do not have, not a reading of zero.
|
|
@@ -686,12 +723,39 @@ class DetectorFieldProducer {
|
|
|
686
723
|
continue;
|
|
687
724
|
}
|
|
688
725
|
// ── The ONLY place in this file that writes a value. ───────────────────
|
|
726
|
+
//
|
|
727
|
+
// The frame size is read ONCE per group, from the bytes already posted:
|
|
728
|
+
// a detector box is in PIXELS and the operator's region is NORMALIZED, and
|
|
729
|
+
// nothing on the detector wire carries the dimensions. Null when the
|
|
730
|
+
// buffer is not a readable JPEG, and then no region can be applied — which
|
|
731
|
+
// degrades to the unfocused count, never to zero.
|
|
732
|
+
const frame = groupFields.some((f) => f.relationKind === 'zone_count')
|
|
733
|
+
? (0, jpegFrameSize_1.readJpegFrameSize)(jpeg)
|
|
734
|
+
: null;
|
|
689
735
|
for (const f of groupFields) {
|
|
690
736
|
// Summed over EVERY class the field reads. One entry for a suffix
|
|
691
737
|
// field, so this is the same arithmetic it always was; N for an
|
|
692
738
|
// `any_of`, where reading only `className` would answer the OR from its
|
|
693
739
|
// first member and silently ignore the rest.
|
|
694
|
-
|
|
740
|
+
let n;
|
|
741
|
+
if (f.relationKind === 'zone_count') {
|
|
742
|
+
// GEOMETRIC, not a prompt. `composeFocusDescription` sends one English
|
|
743
|
+
// line and the model ignores it — shipped polygon and shipped rect
|
|
744
|
+
// leak 100% at every anchor tested, while this leaks 0% on the same
|
|
745
|
+
// frames and the same bands with zero prompt characters.
|
|
746
|
+
const region = this.regionForField ? this.regionForField(f.field) : null;
|
|
747
|
+
const boxes = detections
|
|
748
|
+
.filter((d) => d.label === f.className
|
|
749
|
+
&& d.confidence >= effectiveThresholds.get(f.className))
|
|
750
|
+
.map((d) => d.box);
|
|
751
|
+
// No region, or no readable frame: the unfocused count. Not zero.
|
|
752
|
+
n = (region && frame) ? (0, zoneContainment_1.countInRegion)(boxes, frame, region) : boxes.length;
|
|
753
|
+
}
|
|
754
|
+
else {
|
|
755
|
+
// Summed over EVERY class the field reads. One entry for a suffix
|
|
756
|
+
// field, N for an `any_of`.
|
|
757
|
+
n = f.classNames.reduce((acc, c) => acc + counts.get(c), 0);
|
|
758
|
+
}
|
|
695
759
|
produced.push({
|
|
696
760
|
field: f.field,
|
|
697
761
|
value: f.kind === 'present' ? n > 0 : n,
|
|
@@ -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.
|
|
47
|
+
const SDK_VERSION = '0.2.129';
|
|
48
48
|
class EdgeAgent extends events_1.EventEmitter {
|
|
49
49
|
constructor(config, deps) {
|
|
50
50
|
super();
|
|
@@ -36,10 +36,18 @@ export interface SetupCommand {
|
|
|
36
36
|
streamUrl?: string;
|
|
37
37
|
name?: string;
|
|
38
38
|
}
|
|
39
|
+
/** The claim refusals this build knows how to title. */
|
|
40
|
+
export type ClaimIssueCode = 'ACCOUNT_PERMISSION_REQUIRED' | 'SUBSCRIPTION_REQUIRED' | 'ENTITLEMENT_LAPSED';
|
|
39
41
|
export interface SetupPollResponse {
|
|
40
42
|
claimed: boolean;
|
|
41
43
|
claimIssue: {
|
|
42
|
-
|
|
44
|
+
/**
|
|
45
|
+
* Why the owner's claim was refused. Open on purpose: the server decides
|
|
46
|
+
* what can block a claim and adds codes without shipping a connector, and
|
|
47
|
+
* every fielded build below the current one must still render an unknown
|
|
48
|
+
* code sensibly rather than mislabel it.
|
|
49
|
+
*/
|
|
50
|
+
code: ClaimIssueCode | (string & {});
|
|
43
51
|
message: string;
|
|
44
52
|
atMs: number;
|
|
45
53
|
} | null;
|
|
@@ -76,20 +84,63 @@ export interface SetupPollResponse {
|
|
|
76
84
|
export declare class SetupSessionExpiredError extends Error {
|
|
77
85
|
constructor();
|
|
78
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* A call that did not get an answer ABOUT THE CAMERA: the transport failed, or
|
|
89
|
+
* the server refused with something it invites a retry on. `statusCode` is 0
|
|
90
|
+
* when no response was produced at all (timeout, DNS, reset).
|
|
91
|
+
*/
|
|
92
|
+
export declare class SetupTransportError extends Error {
|
|
93
|
+
readonly statusCode: number;
|
|
94
|
+
readonly retryAfterMs: number | null;
|
|
95
|
+
constructor(message: string, statusCode: number, retryAfterMs?: number | null);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* `Retry-After` in either RFC form — delta-seconds, or an HTTP-date. Returns
|
|
99
|
+
* null when absent/unparseable so the caller falls back to its own backoff, and
|
|
100
|
+
* clamps so a hostile or clock-skewed value cannot park setup for an hour.
|
|
101
|
+
*/
|
|
102
|
+
export declare function retryAfterMs(headers: Record<string, string | string[] | undefined> | undefined): number | null;
|
|
79
103
|
export declare class SetupSessionClient {
|
|
80
104
|
private readonly apiBaseUrl;
|
|
81
105
|
private readonly fingerprint;
|
|
82
106
|
private readonly poster;
|
|
83
107
|
private readonly timeoutMs;
|
|
108
|
+
private readonly maxAttempts;
|
|
109
|
+
private readonly retryBaseMs;
|
|
110
|
+
private readonly retryMaxMs;
|
|
111
|
+
private readonly retryJitterMs;
|
|
112
|
+
private readonly sleep;
|
|
84
113
|
private sessionId;
|
|
85
114
|
private sessionSecret;
|
|
86
115
|
constructor(options: {
|
|
87
116
|
apiBaseUrl: string;
|
|
88
117
|
connectorFingerprint: string;
|
|
89
118
|
timeoutMs?: number;
|
|
119
|
+
/** Total attempts per call, retries included. 1 disables retrying. */
|
|
120
|
+
maxAttempts?: number;
|
|
121
|
+
retryBaseMs?: number;
|
|
122
|
+
retryMaxMs?: number;
|
|
123
|
+
/** Spread added ON TOP of a server-stated `Retry-After`, never inside it. */
|
|
124
|
+
retryJitterMs?: number;
|
|
125
|
+
/** Injectable so tests do not spend the backoff in real time. */
|
|
126
|
+
sleep?: (ms: number) => Promise<void>;
|
|
90
127
|
}, poster?: HttpPoster);
|
|
91
128
|
private url;
|
|
92
129
|
private authHeaders;
|
|
130
|
+
private callOnce;
|
|
131
|
+
/**
|
|
132
|
+
* One HTTP call, retried while the failure is one the SERVER told us to come
|
|
133
|
+
* back from. A 429 carries a window and a 5xx/network drop is not an answer
|
|
134
|
+
* about the camera — treating either as a terminal result is what let a probe
|
|
135
|
+
* the server never recorded still render as a green tick in the installer,
|
|
136
|
+
* leaving the portal with nothing to select and the customer with no way
|
|
137
|
+
* forward. `SESSION_EXPIRED` and every other 4xx are answers, and are raised
|
|
138
|
+
* on the first attempt.
|
|
139
|
+
*
|
|
140
|
+
* The retry lives HERE, not at the three call sites, because all of
|
|
141
|
+
* `discovered`, `results` and `ack` are the same statement — "this is what
|
|
142
|
+
* this machine found" — and a per-site retry is three chances to disagree.
|
|
143
|
+
*/
|
|
93
144
|
private call;
|
|
94
145
|
/** Create the session + first display code. */
|
|
95
146
|
start(meta?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SetupSessionClient.d.ts","sourceRoot":"","sources":["../src/SetupSessionClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE7E;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,WAAW,GAAG,UAAU,CAAC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE;QACV,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"SetupSessionClient.d.ts","sourceRoot":"","sources":["../src/SetupSessionClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SetupSessionClient = exports.SetupSessionExpiredError = void 0;
|
|
3
|
+
exports.SetupSessionClient = exports.SetupTransportError = exports.SetupSessionExpiredError = void 0;
|
|
4
|
+
exports.retryAfterMs = retryAfterMs;
|
|
4
5
|
const AudienceAnalyzeClient_1 = require("./AudienceAnalyzeClient");
|
|
5
6
|
class SetupSessionExpiredError extends Error {
|
|
6
7
|
constructor() {
|
|
@@ -8,6 +9,46 @@ class SetupSessionExpiredError extends Error {
|
|
|
8
9
|
}
|
|
9
10
|
}
|
|
10
11
|
exports.SetupSessionExpiredError = SetupSessionExpiredError;
|
|
12
|
+
/**
|
|
13
|
+
* A call that did not get an answer ABOUT THE CAMERA: the transport failed, or
|
|
14
|
+
* the server refused with something it invites a retry on. `statusCode` is 0
|
|
15
|
+
* when no response was produced at all (timeout, DNS, reset).
|
|
16
|
+
*/
|
|
17
|
+
class SetupTransportError extends Error {
|
|
18
|
+
constructor(message, statusCode, retryAfterMs = null) {
|
|
19
|
+
super(message);
|
|
20
|
+
this.statusCode = statusCode;
|
|
21
|
+
this.retryAfterMs = retryAfterMs;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.SetupTransportError = SetupTransportError;
|
|
25
|
+
/**
|
|
26
|
+
* `Retry-After` in either RFC form — delta-seconds, or an HTTP-date. Returns
|
|
27
|
+
* null when absent/unparseable so the caller falls back to its own backoff, and
|
|
28
|
+
* clamps so a hostile or clock-skewed value cannot park setup for an hour.
|
|
29
|
+
*/
|
|
30
|
+
function retryAfterMs(headers) {
|
|
31
|
+
if (!headers)
|
|
32
|
+
return null;
|
|
33
|
+
const raw = headers['retry-after'] ?? headers['Retry-After'];
|
|
34
|
+
const value = Array.isArray(raw) ? raw[0] : raw;
|
|
35
|
+
if (!value)
|
|
36
|
+
return null;
|
|
37
|
+
const seconds = Number(String(value).trim());
|
|
38
|
+
if (Number.isFinite(seconds)) {
|
|
39
|
+
if (seconds < 0)
|
|
40
|
+
return null;
|
|
41
|
+
return Math.min(seconds * 1000, RETRY_AFTER_CAP_MS);
|
|
42
|
+
}
|
|
43
|
+
const at = Date.parse(String(value));
|
|
44
|
+
if (!Number.isFinite(at))
|
|
45
|
+
return null;
|
|
46
|
+
const delta = at - Date.now();
|
|
47
|
+
if (delta <= 0)
|
|
48
|
+
return 0;
|
|
49
|
+
return Math.min(delta, RETRY_AFTER_CAP_MS);
|
|
50
|
+
}
|
|
51
|
+
const RETRY_AFTER_CAP_MS = 60000;
|
|
11
52
|
class SetupSessionClient {
|
|
12
53
|
constructor(options, poster) {
|
|
13
54
|
this.sessionId = null;
|
|
@@ -15,6 +56,12 @@ class SetupSessionClient {
|
|
|
15
56
|
this.apiBaseUrl = options.apiBaseUrl.replace(/\/+$/, '');
|
|
16
57
|
this.fingerprint = options.connectorFingerprint;
|
|
17
58
|
this.timeoutMs = options.timeoutMs ?? 15000;
|
|
59
|
+
this.maxAttempts = Math.max(1, options.maxAttempts ?? 4);
|
|
60
|
+
this.retryBaseMs = options.retryBaseMs ?? 1000;
|
|
61
|
+
this.retryMaxMs = options.retryMaxMs ?? 15000;
|
|
62
|
+
this.retryJitterMs = options.retryJitterMs ?? 1000;
|
|
63
|
+
this.sleep =
|
|
64
|
+
options.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
|
|
18
65
|
this.poster = poster ?? AudienceAnalyzeClient_1.defaultHttpPoster;
|
|
19
66
|
}
|
|
20
67
|
url(path) {
|
|
@@ -28,13 +75,23 @@ class SetupSessionClient {
|
|
|
28
75
|
'X-Connector-Fingerprint': this.fingerprint,
|
|
29
76
|
};
|
|
30
77
|
}
|
|
31
|
-
async
|
|
78
|
+
async callOnce(method, path, body, { authed = true } = {}) {
|
|
32
79
|
const headers = { Accept: 'application/json' };
|
|
33
80
|
if (method === 'POST')
|
|
34
81
|
headers['Content-Type'] = 'application/json';
|
|
35
82
|
if (authed)
|
|
36
83
|
Object.assign(headers, this.authHeaders());
|
|
37
|
-
|
|
84
|
+
// A throw from the poster is the transport failing, never an answer about
|
|
85
|
+
// the camera. Tag it so the retry loop can tell it from a programming error
|
|
86
|
+
// raised above (`authHeaders()` on an unstarted session), which must surface
|
|
87
|
+
// on the first attempt rather than be retried into a backoff.
|
|
88
|
+
let res;
|
|
89
|
+
try {
|
|
90
|
+
res = await this.poster(this.url(path), { method, headers, timeoutMs: this.timeoutMs }, body ? JSON.stringify(body) : '');
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
throw new SetupTransportError(`setup/${path} failed: ${err.message}`, 0);
|
|
94
|
+
}
|
|
38
95
|
let parsed = {};
|
|
39
96
|
try {
|
|
40
97
|
parsed = res.body ? JSON.parse(res.body) : {};
|
|
@@ -46,10 +103,58 @@ class SetupSessionClient {
|
|
|
46
103
|
throw new SetupSessionExpiredError();
|
|
47
104
|
}
|
|
48
105
|
if (res.statusCode < 200 || res.statusCode >= 300) {
|
|
49
|
-
throw new
|
|
106
|
+
throw new SetupTransportError(`setup/${path} failed (HTTP ${res.statusCode}): ${parsed.error || parsed.message || res.body.slice(0, 120)}`, res.statusCode, retryAfterMs(res.headers));
|
|
50
107
|
}
|
|
51
108
|
return parsed;
|
|
52
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* One HTTP call, retried while the failure is one the SERVER told us to come
|
|
112
|
+
* back from. A 429 carries a window and a 5xx/network drop is not an answer
|
|
113
|
+
* about the camera — treating either as a terminal result is what let a probe
|
|
114
|
+
* the server never recorded still render as a green tick in the installer,
|
|
115
|
+
* leaving the portal with nothing to select and the customer with no way
|
|
116
|
+
* forward. `SESSION_EXPIRED` and every other 4xx are answers, and are raised
|
|
117
|
+
* on the first attempt.
|
|
118
|
+
*
|
|
119
|
+
* The retry lives HERE, not at the three call sites, because all of
|
|
120
|
+
* `discovered`, `results` and `ack` are the same statement — "this is what
|
|
121
|
+
* this machine found" — and a per-site retry is three chances to disagree.
|
|
122
|
+
*/
|
|
123
|
+
async call(method, path, body, opts = {}) {
|
|
124
|
+
let lastErr;
|
|
125
|
+
for (let attempt = 0; attempt < this.maxAttempts; attempt++) {
|
|
126
|
+
try {
|
|
127
|
+
return await this.callOnce(method, path, body, opts);
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
lastErr = err;
|
|
131
|
+
if (err instanceof SetupSessionExpiredError)
|
|
132
|
+
throw err;
|
|
133
|
+
if (!(err instanceof SetupTransportError))
|
|
134
|
+
throw err;
|
|
135
|
+
// statusCode 0 = the request never produced a response (timeout, DNS, reset).
|
|
136
|
+
const status = err.statusCode;
|
|
137
|
+
const retryable = status === 0 || status === 429 || status >= 500;
|
|
138
|
+
if (!retryable || attempt === this.maxAttempts - 1)
|
|
139
|
+
throw err;
|
|
140
|
+
// `Retry-After` is a FLOOR, never a value to jitter below. The setup
|
|
141
|
+
// API's PG limiter reports the time left in a FIXED 60-second bucket
|
|
142
|
+
// (middleware/pgRateLimiter.js), so sleeping even 99% of it retries
|
|
143
|
+
// inside the same bucket, earns another 429 and burns an attempt.
|
|
144
|
+
// Wait it out in full and add the jitter on top.
|
|
145
|
+
//
|
|
146
|
+
// Full jitter is right for the fallback backoff, where the point is to
|
|
147
|
+
// de-collide many feeds on one box that all lost the same per-IP window
|
|
148
|
+
// — there is no server-stated deadline to undershoot.
|
|
149
|
+
const serverAsked = err.retryAfterMs;
|
|
150
|
+
const delay = serverAsked === null
|
|
151
|
+
? Math.min(this.retryBaseMs * 2 ** attempt, this.retryMaxMs) * (0.5 + Math.random() * 0.5)
|
|
152
|
+
: serverAsked + Math.random() * this.retryJitterMs;
|
|
153
|
+
await this.sleep(Math.round(delay));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
throw lastErr;
|
|
157
|
+
}
|
|
53
158
|
/** Create the session + first display code. */
|
|
54
159
|
async start(meta = {}) {
|
|
55
160
|
const out = (await this.call('POST', 'start', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SetupSessionClient.js","sourceRoot":"","sources":["../src/SetupSessionClient.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"SetupSessionClient.js","sourceRoot":"","sources":["../src/SetupSessionClient.ts"],"names":[],"mappings":"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"}
|
package/dist/diagnose.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ export interface DiagnosticReport {
|
|
|
31
31
|
skipped: number;
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
|
-
declare const SDK_VERSION = "0.2.
|
|
34
|
+
declare const SDK_VERSION = "0.2.129";
|
|
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.
|
|
66
|
+
const SDK_VERSION = '0.2.129';
|
|
67
67
|
exports._SDK_VERSION = SDK_VERSION;
|
|
68
68
|
// ---------------------------------------------------------------------------
|
|
69
69
|
// ANSI helpers (no external deps)
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The pixel dimensions of a JPEG, read from its own header.
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS EXISTS AT ALL. A detector box arrives in PIXELS and an operator's
|
|
5
|
+
* region is NORMALIZED, so one of them has to be converted and neither the
|
|
6
|
+
* detector wire nor `DetectResult` carries a frame size. Asking the service for
|
|
7
|
+
* one would change a FROZEN contract (`cctv-detector-tier.md`: it carries
|
|
8
|
+
* `classes` and nothing else) to obtain a number already present in the bytes we
|
|
9
|
+
* just sent it.
|
|
10
|
+
*
|
|
11
|
+
* WHY NOT A DECODE. `sharp` is not a connector dependency and a full decode of
|
|
12
|
+
* every frame to learn two integers is a per-frame cost on the hot path. The SOF
|
|
13
|
+
* marker is 9 bytes into a segment that appears once, near the front.
|
|
14
|
+
*
|
|
15
|
+
* IT RETURNS NULL RATHER THAN GUESSING. A truncated or non-JPEG buffer has no
|
|
16
|
+
* dimensions, and inventing 1920x1080 would silently rescale every region — a
|
|
17
|
+
* doorway at x=0.4 lands somewhere else and the alert quietly watches the wrong
|
|
18
|
+
* part of the room. The caller must treat null as "no region can be applied",
|
|
19
|
+
* which degrades to the unfocused count rather than to zero.
|
|
20
|
+
*/
|
|
21
|
+
export interface JpegFrameSize {
|
|
22
|
+
width: number;
|
|
23
|
+
height: number;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* @param jpeg the raw bytes, exactly as posted to the detector
|
|
27
|
+
* @returns the frame size, or null when the buffer is not a readable JPEG
|
|
28
|
+
*/
|
|
29
|
+
export declare function readJpegFrameSize(jpeg: Uint8Array | null | undefined): JpegFrameSize | null;
|
|
30
|
+
//# sourceMappingURL=jpegFrameSize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jpegFrameSize.d.ts","sourceRoot":"","sources":["../src/jpegFrameSize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAiBH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,GAAG,aAAa,GAAG,IAAI,CAyC3F"}
|