@trillboards/edge-sdk 0.2.119 → 0.2.123
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/EdgeAgent.js +1 -1
- package/dist/diagnose.d.ts +1 -1
- package/dist/diagnose.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -1
- package/dist/modelOta.d.ts +33 -2
- package/dist/modelOta.d.ts.map +1 -1
- package/dist/modelOta.js +68 -10
- package/dist/modelOta.js.map +1 -1
- package/dist/obstructionRelation.d.ts +113 -0
- package/dist/obstructionRelation.d.ts.map +1 -0
- package/dist/obstructionRelation.js +133 -0
- package/dist/obstructionRelation.js.map +1 -0
- package/package.json +1 -1
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.123';
|
|
48
48
|
class EdgeAgent extends events_1.EventEmitter {
|
|
49
49
|
constructor(config, deps) {
|
|
50
50
|
super();
|
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.123";
|
|
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.123';
|
|
67
67
|
exports._SDK_VERSION = SDK_VERSION;
|
|
68
68
|
// ---------------------------------------------------------------------------
|
|
69
69
|
// ANSI helpers (no external deps)
|
package/dist/index.d.ts
CHANGED
|
@@ -46,4 +46,5 @@ export type { ProducerField, ProducedField, ProducedFieldValue, ProducedFieldSet
|
|
|
46
46
|
export { evaluateZone, countInZone, normalizeBox, assertNormalizedRect, DEFAULT_ZONE_PREDICATE, } from './zoneContainment';
|
|
47
47
|
export type { NormalizedRect, PixelBox, FrameSize, ZonePredicate, ZoneVerdict, } from './zoneContainment';
|
|
48
48
|
export type { AudienceMetricsPayload, DetectedFace, EdgeQualityReport, VASResult, DeviceCapabilityMatrix, PlatformAdapter, CameraProvider, AudioProvider, EdgeSDKConfig, } from '@trillboards/edge-core';
|
|
49
|
+
export * from './obstructionRelation';
|
|
49
50
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
// @trillboards/edge-sdk — Composable Cross-Platform Edge AI SDK
|
|
3
3
|
// Install: npm install @trillboards/edge-sdk
|
|
4
4
|
// Run: npx trillboards-edge start --config trillboards.config.json
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
+
};
|
|
5
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
20
|
exports.attachAudioOnset = exports.SILENCE_DBFS = exports.rmsDbfs = exports.AudioOnsetDetector = exports.motionSignature = exports.downscaleRgbaToGrey = exports.decodeGreyFrame = exports.isChangeCandidate = exports.SceneChangeDetector = exports.MotionGate = exports.DurableVlmCandidateSpool = exports.DEFAULT_CANDIDATE_TTL_MS = exports.VlmCandidateBuffer = exports.VlmAdmissionGate = exports.shouldAttemptRecorderAddressRecovery = exports.rewriteStreamHost = exports.normalizeMacAddress = exports.lookupMacAddress = exports.RecorderAddressRecovery = exports.resolveFeeds = exports.classifyRtspFailureClass = exports.buildTiledCameras = exports.buildSensingLoops = exports.CloudSensingManager = exports.defaultHttpPoster = exports.AudienceAnalyzeClient = exports.LOCAL_NETWORK_DENIED_SUMMARY = exports.LOCAL_NETWORK_DENIED_SUGGESTION = exports.decideLocalNetworkVerdict = exports.probeLocalNetworkAccess = exports.describeProxy = exports.resolveProxyForUrl = exports.describeTrustAnchors = exports.resolveTrustAnchors = exports.isTrustFailure = exports.formatTransportFailure = exports.classifyTransportError = exports.TransportFailure = exports.EnterpriseHttpsAgent = exports.resetEnterpriseNetworkCaches = exports.diagnoseTransportError = exports.getEnterpriseAgent = exports.describeNetworkPosture = exports.installEnterpriseNetworking = exports.runDiagnose = exports.runInit = exports.CommandRouter = exports.resolveConfig = exports.loadConfig = exports.EdgeAgent = void 0;
|
|
7
21
|
exports.DEFAULT_ZONE_PREDICATE = exports.assertNormalizedRect = exports.normalizeBox = exports.countInZone = exports.evaluateZone = exports.DEFAULT_PRODUCE_DEADLINE_MS = exports.DEFAULT_PRODUCER_TIMEOUT_MS = exports.DEFAULT_PRODUCER_MIN_CONFIDENCE = exports.PRODUCER_WITHHOLD_REASONS = exports.DETECTOR_MODEL_JOIN = exports.CONCEPT_KEY_RE = exports.toFieldValues = exports.toDetectorClassName = exports.countsForClasses = exports.classifyProducerField = exports.DetectorFieldProducer = exports.DEFAULT_OBSERVE_DEADLINE_MS = exports.DETECTOR_GATE_CONFIDENCE = exports.DEFAULT_MIN_OBSERVE_INTERVAL_MS = exports.DEFAULT_BACKOFF_MAX_MS = exports.DEFAULT_BACKOFF_INITIAL_MS = exports.DEFAULT_SHADOW_TIMEOUT_MS = exports.PERSON_LABELS = exports.DetectorShadowProbe = exports.DEFAULT_DETECTOR_PORT = exports.defaultDetectorPoster = exports.DetectorUnavailableError = exports.LocalDetectorClient = exports.CropViewProvider = exports.SharedFrameSource = exports.GEMMA_AUDIO_MAX_SECONDS = exports.GEMMA_AUDIO_SAMPLE_RATE = exports.takeMostRecentSeconds = exports.encodeWav16 = void 0;
|
|
@@ -149,4 +163,5 @@ Object.defineProperty(exports, "countInZone", { enumerable: true, get: function
|
|
|
149
163
|
Object.defineProperty(exports, "normalizeBox", { enumerable: true, get: function () { return zoneContainment_1.normalizeBox; } });
|
|
150
164
|
Object.defineProperty(exports, "assertNormalizedRect", { enumerable: true, get: function () { return zoneContainment_1.assertNormalizedRect; } });
|
|
151
165
|
Object.defineProperty(exports, "DEFAULT_ZONE_PREDICATE", { enumerable: true, get: function () { return zoneContainment_1.DEFAULT_ZONE_PREDICATE; } });
|
|
166
|
+
__exportStar(require("./obstructionRelation"), exports);
|
|
152
167
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,gEAAgE;AAChE,6CAA6C;AAC7C,mEAAmE
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,gEAAgE;AAChE,6CAA6C;AAC7C,mEAAmE;;;;;;;;;;;;;;;;;;AAEnE,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAElB,mCAAqD;AAA5C,oGAAA,UAAU,OAAA;AAAE,uGAAA,aAAa,OAAA;AAClC,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AAEtB,+BAAiC;AAAxB,+FAAA,OAAO,OAAA;AAChB,uCAAyC;AAAhC,uGAAA,WAAW,OAAA;AAGpB,8EAA8E;AAC9E,yEAAyE;AACzE,iFAAiF;AACjF,yDAO6B;AAN3B,gIAAA,2BAA2B,OAAA;AAC3B,2HAAA,sBAAsB,OAAA;AACtB,uHAAA,kBAAkB,OAAA;AAClB,2HAAA,sBAAsB,OAAA;AACtB,iIAAA,4BAA4B,OAAA;AAC5B,yHAAA,oBAAoB,OAAA;AAGtB,uDAK4B;AAJ1B,oHAAA,gBAAgB,OAAA;AAChB,0HAAA,sBAAsB,OAAA;AACtB,0HAAA,sBAAsB,OAAA;AACtB,kHAAA,cAAc,OAAA;AAGhB,qDAA8E;AAArE,sHAAA,mBAAmB,OAAA;AAAE,uHAAA,oBAAoB,OAAA;AAElD,qDAAsE;AAA7D,qHAAA,kBAAkB,OAAA;AAAE,gHAAA,aAAa,OAAA;AAE1C,4EAA4E;AAC5E,uDAAuD;AACvD,2DAK8B;AAJ5B,6HAAA,uBAAuB,OAAA;AACvB,+HAAA,yBAAyB,OAAA;AACzB,qIAAA,+BAA+B,OAAA;AAC/B,kIAAA,4BAA4B,OAAA;AAS9B,kFAAkF;AAClF,iEAAmF;AAA1E,8HAAA,qBAAqB,OAAA;AAAE,0HAAA,iBAAiB,OAAA;AAWjD,6DAM+B;AAL7B,0HAAA,mBAAmB,OAAA;AACnB,wHAAA,iBAAiB,OAAA;AACjB,wHAAA,iBAAiB,OAAA;AACjB,+HAAA,wBAAwB,OAAA;AACxB,mHAAA,YAAY,OAAA;AAEd,qEAMmC;AALjC,kIAAA,uBAAuB,OAAA;AACvB,2HAAA,gBAAgB,OAAA;AAChB,8HAAA,mBAAmB,OAAA;AACnB,4HAAA,iBAAiB,OAAA;AACjB,+IAAA,oCAAoC,OAAA;AAStC,+DAA+D;AAC/D,6EAA6E;AAC7E,uBAAuB;AACvB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AAMzB,wEAAwE;AACxE,sEAAsE;AACtE,2DAAoF;AAA3E,wHAAA,kBAAkB,OAAA;AAAE,8HAAA,wBAAwB,OAAA;AACrD,uEAAsE;AAA7D,oIAAA,wBAAwB,OAAA;AAYjC,6DAO+B;AAN7B,iHAAA,UAAU,OAAA;AACV,0HAAA,mBAAmB,OAAA;AACnB,wHAAA,iBAAiB,OAAA;AACjB,sHAAA,eAAe,OAAA;AACf,0HAAA,mBAAmB,OAAA;AACnB,sHAAA,eAAe,OAAA;AAajB,0EAA0E;AAC1E,2EAA2E;AAC3E,kDAAkD;AAClD,2DAAiF;AAAxE,wHAAA,kBAAkB,OAAA;AAAE,6GAAA,OAAO,OAAA;AAAE,kHAAA,YAAY,OAAA;AAMlD,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AAMzB,yCAKqB;AAJnB,wGAAA,WAAW,OAAA;AACX,kHAAA,qBAAqB,OAAA;AACrB,oHAAA,uBAAuB,OAAA;AACvB,oHAAA,uBAAuB,OAAA;AAEzB,+EAA+E;AAC/E,mEAAmE;AACnE,+CAAqE;AAA5D,iHAAA,iBAAiB,OAAA;AAAE,gHAAA,gBAAgB,OAAA;AAG5C,6EAA6E;AAC7E,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,8EAA8E;AAC9E,6DAA6D;AAC7D,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,+EAA+E;AAC/E,wEAAwE;AACxE,6DAK+B;AAJ7B,0HAAA,mBAAmB,OAAA;AACnB,+HAAA,wBAAwB,OAAA;AACxB,4HAAA,qBAAqB,OAAA;AACrB,4HAAA,qBAAqB,OAAA;AAQvB,6DAS+B;AAR7B,0HAAA,mBAAmB,OAAA;AACnB,oHAAA,aAAa,OAAA;AACb,gIAAA,yBAAyB,OAAA;AACzB,iIAAA,0BAA0B,OAAA;AAC1B,6HAAA,sBAAsB,OAAA;AACtB,sIAAA,+BAA+B,OAAA;AAC/B,+HAAA,wBAAwB,OAAA;AACxB,kIAAA,2BAA2B,OAAA;AAU7B,gFAAgF;AAChF,2EAA2E;AAC3E,+EAA+E;AAC/E,iFAAiF;AACjF,2EAA2E;AAC3E,kFAAkF;AAClF,8EAA8E;AAC9E,uCAAuC;AACvC,iEAYiC;AAX/B,8HAAA,qBAAqB,OAAA;AACrB,8HAAA,qBAAqB,OAAA;AACrB,yHAAA,gBAAgB,OAAA;AAChB,4HAAA,mBAAmB,OAAA;AACnB,sHAAA,aAAa,OAAA;AACb,uHAAA,cAAc,OAAA;AACd,4HAAA,mBAAmB,OAAA;AACnB,kIAAA,yBAAyB,OAAA;AACzB,wIAAA,+BAA+B,OAAA;AAC/B,oIAAA,2BAA2B,OAAA;AAC3B,oIAAA,2BAA2B,OAAA;AAc7B,qDAM2B;AALzB,+GAAA,YAAY,OAAA;AACZ,8GAAA,WAAW,OAAA;AACX,+GAAA,YAAY,OAAA;AACZ,uHAAA,oBAAoB,OAAA;AACpB,yHAAA,sBAAsB,OAAA;AAsBxB,wDAAsC"}
|
package/dist/modelOta.d.ts
CHANGED
|
@@ -186,9 +186,33 @@ export interface GrantedModelFeed {
|
|
|
186
186
|
screenId: string | null;
|
|
187
187
|
client: GrantedModelProfileClient;
|
|
188
188
|
}
|
|
189
|
-
/**
|
|
189
|
+
/**
|
|
190
|
+
* A resolution that also says WHICH screens answered.
|
|
191
|
+
*
|
|
192
|
+
* Revocation needs this and a bare list cannot carry it. `buildGrantedModelSource`
|
|
193
|
+
* UNIONS N feeds, so when one screen answers and another fails, the union is the
|
|
194
|
+
* surviving screen's models alone — indistinguishable, as a list, from the failed
|
|
195
|
+
* screen having had everything withdrawn. Revoking on that would drop a model
|
|
196
|
+
* from a screen that was never asked successfully, and a permanently unreachable
|
|
197
|
+
* screen would lose OTA tracking for as long as any sibling kept answering.
|
|
198
|
+
*
|
|
199
|
+
* `answeredScreenIds` is therefore the scope within which absence MEANS
|
|
200
|
+
* withdrawal. `null` in the array is the screen-less client (the host identity).
|
|
201
|
+
*/
|
|
202
|
+
export interface GrantedResolution {
|
|
203
|
+
models: GrantedModel[];
|
|
204
|
+
answeredScreenIds: Array<string | null>;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Polled by `startModelOta`; `null` means "nobody answered — keep what you have".
|
|
208
|
+
*
|
|
209
|
+
* A bare array is still accepted and means "this is the whole answer" — every
|
|
210
|
+
* watched model is in revocation scope. Sources that can fail PARTIALLY must
|
|
211
|
+
* return a `GrantedResolution` instead, or they will revoke what they could not
|
|
212
|
+
* ask about.
|
|
213
|
+
*/
|
|
190
214
|
export interface GrantedModelSource {
|
|
191
|
-
resolve(): Promise<GrantedModel[] | null>;
|
|
215
|
+
resolve(): Promise<GrantedModel[] | GrantedResolution | null>;
|
|
192
216
|
}
|
|
193
217
|
/**
|
|
194
218
|
* Union the granted lists of every feed's screen.
|
|
@@ -222,6 +246,13 @@ export interface SpecialistModelManagerLike extends ModelManagerLike {
|
|
|
222
246
|
* rather than failing.
|
|
223
247
|
*/
|
|
224
248
|
checkForUpdates?(): Promise<unknown>;
|
|
249
|
+
/**
|
|
250
|
+
* Optional: stop tracking a model whose grant was WITHDRAWN. Optional because
|
|
251
|
+
* a fake need not implement it — but its absence is LOGGED, never silent,
|
|
252
|
+
* because a connector that cannot stop downloading a revoked model is exactly
|
|
253
|
+
* the failure this whole module exists to prevent.
|
|
254
|
+
*/
|
|
255
|
+
unregisterModel?(name: string): boolean;
|
|
225
256
|
}
|
|
226
257
|
export interface ModelOtaDeps {
|
|
227
258
|
/**
|
package/dist/modelOta.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelOta.d.ts","sourceRoot":"","sources":["../src/modelOta.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAC;AAIzB;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gCAAgC,EAAE,SAAS,MAAM,EAA4B,CAAC;AAO3F;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,MAAM,CAMT;AAED,0DAA0D;AAC1D,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,YAAY,EACnB,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CAAO,GACrC,gBAAgB,CAiClB;AAID;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,YAAY,IAAI,OAAO,CAAC;QAAE,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CACpE;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,yBAAyB,CAAC;CACnC;AAED,
|
|
1
|
+
{"version":3,"file":"modelOta.d.ts","sourceRoot":"","sources":["../src/modelOta.ts"],"names":[],"mappings":"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"}
|
package/dist/modelOta.js
CHANGED
|
@@ -216,12 +216,12 @@ function buildGrantedModelSource(options) {
|
|
|
216
216
|
screenId: f.screenId,
|
|
217
217
|
profile: await f.client.fetchProfile().catch(() => null),
|
|
218
218
|
})));
|
|
219
|
-
|
|
219
|
+
const answeredScreenIds = [];
|
|
220
220
|
const byId = new Map();
|
|
221
221
|
for (const { screenId, profile } of results) {
|
|
222
222
|
if (!profile)
|
|
223
223
|
continue;
|
|
224
|
-
|
|
224
|
+
answeredScreenIds.push(screenId || null);
|
|
225
225
|
for (const m of Array.isArray(profile.models) ? profile.models : []) {
|
|
226
226
|
if (!m || typeof m.modelId !== 'string' || !m.modelId)
|
|
227
227
|
continue;
|
|
@@ -247,9 +247,12 @@ function buildGrantedModelSource(options) {
|
|
|
247
247
|
}
|
|
248
248
|
}
|
|
249
249
|
}
|
|
250
|
-
if (
|
|
250
|
+
if (answeredScreenIds.length === 0)
|
|
251
251
|
return null;
|
|
252
|
-
return
|
|
252
|
+
return {
|
|
253
|
+
models: [...byId.values()].sort((a, b) => a.modelId.localeCompare(b.modelId)),
|
|
254
|
+
answeredScreenIds,
|
|
255
|
+
};
|
|
253
256
|
},
|
|
254
257
|
};
|
|
255
258
|
}
|
|
@@ -294,7 +297,13 @@ function startModelOta(config, models = [], deps = {}) {
|
|
|
294
297
|
*/
|
|
295
298
|
const managers = new Map();
|
|
296
299
|
const startedManagers = new Set();
|
|
297
|
-
|
|
300
|
+
/**
|
|
301
|
+
* modelId -> the manager identity that watches it. A Set was enough while
|
|
302
|
+
* grants only ever ACCUMULATED; revoking one has to reach the manager that
|
|
303
|
+
* registered it, and with several granting screens on one box that is not
|
|
304
|
+
* derivable after the fact.
|
|
305
|
+
*/
|
|
306
|
+
const watched = new Map();
|
|
298
307
|
const skipLogged = new Set();
|
|
299
308
|
let pollHandle = null;
|
|
300
309
|
let stopped = false;
|
|
@@ -357,7 +366,7 @@ function startModelOta(config, models = [], deps = {}) {
|
|
|
357
366
|
managers.set(identity, created);
|
|
358
367
|
return created;
|
|
359
368
|
};
|
|
360
|
-
const setGrantedModels = (next) => {
|
|
369
|
+
const setGrantedModels = (next, revocationScope) => {
|
|
361
370
|
if (stopped)
|
|
362
371
|
return;
|
|
363
372
|
try {
|
|
@@ -384,11 +393,50 @@ function startModelOta(config, models = [], deps = {}) {
|
|
|
384
393
|
continue;
|
|
385
394
|
// The registry id IS the OTA modelType — see GrantedModel.modelId.
|
|
386
395
|
m.registerModel(dest.modelId, dest.filePath);
|
|
387
|
-
watched.
|
|
396
|
+
watched.set(dest.modelId, identity);
|
|
388
397
|
touched.add(identity);
|
|
389
398
|
log(`[model-ota] watching ${dest.modelId} → ${dest.filePath}`
|
|
390
399
|
+ ` (asking as ${screenId ? `screen ${screenId}` : `host ${hostFingerprint}`})`);
|
|
391
400
|
}
|
|
401
|
+
// ── Revocation ────────────────────────────────────────────────────────
|
|
402
|
+
// Everything we watch that this answer did NOT grant. `setGrantedModels`
|
|
403
|
+
// was add-only until 2026-09-01, so a withdrawn grant — a rolled-back
|
|
404
|
+
// canary, a model retired for being wrong, one withheld to fit the RAM
|
|
405
|
+
// budget — kept being version-checked and re-downloaded for ever, and
|
|
406
|
+
// nothing on the box or in the logs said so.
|
|
407
|
+
//
|
|
408
|
+
// Reached ONLY from a list the server actually returned. A `null` (the
|
|
409
|
+
// API blipped) never gets here: the caller drops it, because "I could not
|
|
410
|
+
// ask" and "you are granted nothing" are different facts and only the
|
|
411
|
+
// second one may revoke.
|
|
412
|
+
const stillGranted = new Set((Array.isArray(next) ? next : [])
|
|
413
|
+
.map((m) => (typeof m?.modelId === 'string' ? m.modelId.trim() : ''))
|
|
414
|
+
.filter(Boolean));
|
|
415
|
+
for (const [modelId, identity] of [...watched]) {
|
|
416
|
+
if (stillGranted.has(modelId))
|
|
417
|
+
continue;
|
|
418
|
+
// Absence only means WITHDRAWN inside the scope that answered. A screen
|
|
419
|
+
// whose profile request failed contributed nothing to `next`, so every
|
|
420
|
+
// model only it granted looks withdrawn and is not — see
|
|
421
|
+
// `GrantedResolution`. Undefined scope means the caller gave a bare
|
|
422
|
+
// list, i.e. the whole answer, so everything is in scope.
|
|
423
|
+
if (revocationScope && !revocationScope.has(identity))
|
|
424
|
+
continue;
|
|
425
|
+
const m = managers.get(identity);
|
|
426
|
+
if (m && typeof m.unregisterModel === 'function') {
|
|
427
|
+
m.unregisterModel(modelId);
|
|
428
|
+
watched.delete(modelId);
|
|
429
|
+
// Re-arm the skip log: if this model is granted again later, its next
|
|
430
|
+
// refusal is worth saying out loud rather than being deduped against
|
|
431
|
+
// a message from before the revocation.
|
|
432
|
+
skipLogged.delete(modelId);
|
|
433
|
+
log(`[model-ota] grant revoked for ${modelId} — no longer downloading it`);
|
|
434
|
+
}
|
|
435
|
+
else {
|
|
436
|
+
log(`[model-ota] grant revoked for ${modelId} but this manager cannot unregister`
|
|
437
|
+
+ ' — it will keep being downloaded');
|
|
438
|
+
}
|
|
439
|
+
}
|
|
392
440
|
for (const identity of touched) {
|
|
393
441
|
const m = managers.get(identity);
|
|
394
442
|
if (!m)
|
|
@@ -431,8 +479,18 @@ function startModelOta(config, models = [], deps = {}) {
|
|
|
431
479
|
const refresh = () => {
|
|
432
480
|
Promise.resolve()
|
|
433
481
|
.then(() => source.resolve())
|
|
434
|
-
.then((resolved) => {
|
|
435
|
-
|
|
482
|
+
.then((resolved) => {
|
|
483
|
+
if (!resolved)
|
|
484
|
+
return; // could not ask — never a revocation
|
|
485
|
+
if (Array.isArray(resolved)) {
|
|
486
|
+
setGrantedModels(resolved);
|
|
487
|
+
return;
|
|
488
|
+
}
|
|
489
|
+
// A screen id maps to the same identity the download used, so the
|
|
490
|
+
// scope is comparable with `watched`'s values.
|
|
491
|
+
const scope = new Set((resolved.answeredScreenIds || []).map((id) => id || hostFingerprint));
|
|
492
|
+
setGrantedModels(resolved.models || [], scope);
|
|
493
|
+
})
|
|
436
494
|
.catch((err) => log(`[model-ota] granted-model refresh failed (non-fatal): ${err?.message || err}`));
|
|
437
495
|
};
|
|
438
496
|
refresh();
|
|
@@ -464,7 +522,7 @@ function startModelOta(config, models = [], deps = {}) {
|
|
|
464
522
|
},
|
|
465
523
|
setGrantedModels,
|
|
466
524
|
watchedModelIds() {
|
|
467
|
-
return [...watched].sort();
|
|
525
|
+
return [...watched.keys()].sort();
|
|
468
526
|
},
|
|
469
527
|
};
|
|
470
528
|
}
|
package/dist/modelOta.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelOta.js","sourceRoot":"","sources":["../src/modelOta.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"modelOta.js","sourceRoot":"","sources":["../src/modelOta.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* obstructionRelation — "is this thing BLOCKED by that thing", in image space.
|
|
3
|
+
*
|
|
4
|
+
* `blocked_fire_exit` is one of the nine classes we sell and the only one that
|
|
5
|
+
* is not an OBJECT. Every vocabulary anywhere has the PARTS — `exit`, `exit
|
|
6
|
+
* sign`, `fire extinguisher`, and any number of obstruction-shaped things — and
|
|
7
|
+
* none has the RELATION. A sweep of four repositories claiming to detect
|
|
8
|
+
* "fire passage occupancy" found that none ships trained weights and that one
|
|
9
|
+
* carries an ROI config block, i.e. its relation is intersection logic wearing a
|
|
10
|
+
* model's name. So the relation is geometry, and this is the geometry.
|
|
11
|
+
*
|
|
12
|
+
* ── THE GROUND PLANE IS STILL THE WHOLE PROBLEM ────────────────────────────
|
|
13
|
+
*
|
|
14
|
+
* `zoneContainment` establishes the rule this file inherits: the bottom-centre
|
|
15
|
+
* of a box is where the object touches the floor, and a point is inside a region
|
|
16
|
+
* or it is not, so no magic fraction is needed. The same applies here and for
|
|
17
|
+
* the same reason — a pallet's box top is not where the pallet IS.
|
|
18
|
+
*
|
|
19
|
+
* What is new is that the REGION is not drawn by an operator. It is derived from
|
|
20
|
+
* the protected object's own box: the floor immediately in front of an exit or
|
|
21
|
+
* an extinguisher is the thing that must stay clear, and on a camera looking
|
|
22
|
+
* down that floor is BELOW the object in the image and roughly as wide as it,
|
|
23
|
+
* widened by a reach allowance.
|
|
24
|
+
*
|
|
25
|
+
* ── WHAT A MONOCULAR CAMERA CANNOT DO, STATED UP FRONT ─────────────────────
|
|
26
|
+
*
|
|
27
|
+
* One camera cannot resolve depth. A person walking three metres in front of an
|
|
28
|
+
* extinguisher puts their ground contact in the SAME image region as a crate
|
|
29
|
+
* shoved against the wall beneath it. No threshold separates those two, because
|
|
30
|
+
* the information is not in the frame.
|
|
31
|
+
*
|
|
32
|
+
* The separator is TIME, and it already exists: a person walks on, a crate does
|
|
33
|
+
* not. `sensing_routes.sustain_seconds` and `routeEvaluatorService.checkSustain`
|
|
34
|
+
* are the server-side gate for exactly this, so this file answers ONE FRAME and
|
|
35
|
+
* a caller that wires it to an alert without a sustain is asserting that anyone
|
|
36
|
+
* who walks past an extinguisher has blocked it. `requiresSustain` is returned
|
|
37
|
+
* on every verdict so that obligation travels with the answer instead of living
|
|
38
|
+
* in a comment.
|
|
39
|
+
*
|
|
40
|
+
* ── WHY A PERSON IS NOT AN OBSTRUCTION, AND WHY THAT IS THE CALLER'S CALL ───
|
|
41
|
+
*
|
|
42
|
+
* `obstructionClasses` is a REQUIRED argument with no default. The set of things
|
|
43
|
+
* that can block an exit is a property of the granted model's vocabulary — one
|
|
44
|
+
* box declares `chair, couch, potted plant, suitcase, backpack`, another
|
|
45
|
+
* declares `dumpster, barricade` — and inventing a list here would be the
|
|
46
|
+
* enumerated allowlist this codebase asks not to write. It is derived at the
|
|
47
|
+
* call site from what the resident model actually emits.
|
|
48
|
+
*
|
|
49
|
+
* @reuse-audit
|
|
50
|
+
* considered: zoneContainment.evaluateZone / countInZone
|
|
51
|
+
* - REUSED, unchanged, as the containment kernel. The access footprint is a
|
|
52
|
+
* NormalizedRect and an obstruction is a PixelBox, which is precisely the
|
|
53
|
+
* pair `evaluateZone` already takes. Re-deriving containment here would be
|
|
54
|
+
* a second opinion about the same question, and the `groundContact`
|
|
55
|
+
* anchor is the reason that question has a threshold-free answer.
|
|
56
|
+
* considered: FaceDetector.iou
|
|
57
|
+
* - not reused, for the reason zoneContainment already records: IoU is a
|
|
58
|
+
* symmetric similarity and this is asymmetric. It is also the WRONG
|
|
59
|
+
* question twice over — a crate on the floor beneath a wall-mounted
|
|
60
|
+
* extinguisher may share almost no image area with it and still block it
|
|
61
|
+
* completely.
|
|
62
|
+
*/
|
|
63
|
+
import { type FrameSize, type NormalizedRect, type PixelBox } from './zoneContainment';
|
|
64
|
+
/** How the access footprint is derived from a protected object's box. */
|
|
65
|
+
export interface AccessFootprintOptions {
|
|
66
|
+
/**
|
|
67
|
+
* How far BELOW the protected object's box the floor region extends, as a
|
|
68
|
+
* multiple of that box's own height. Required — the right value differs for a
|
|
69
|
+
* door (a person's stride) and a wall-mounted extinguisher (arm's reach), and
|
|
70
|
+
* a default here would be a magic number nobody could justify.
|
|
71
|
+
*/
|
|
72
|
+
readonly reachBelow: number;
|
|
73
|
+
/**
|
|
74
|
+
* How far to either SIDE, as a multiple of the box's own width. Required, for
|
|
75
|
+
* the same reason.
|
|
76
|
+
*/
|
|
77
|
+
readonly reachSide: number;
|
|
78
|
+
}
|
|
79
|
+
export interface ObstructionVerdict {
|
|
80
|
+
/** Did any obstruction's ground contact land in the access footprint. */
|
|
81
|
+
readonly blocked: boolean;
|
|
82
|
+
/** The footprint that was tested, so a caller can render or log it. */
|
|
83
|
+
readonly footprint: NormalizedRect;
|
|
84
|
+
/** Which obstruction classes landed, in first-seen order. Empty when clear. */
|
|
85
|
+
readonly blockedBy: readonly string[];
|
|
86
|
+
/**
|
|
87
|
+
* ALWAYS true. A single frame cannot distinguish a person walking past from a
|
|
88
|
+
* crate left against a wall, because one camera has no depth. Carried on the
|
|
89
|
+
* verdict rather than written in a docblock so a caller cannot wire this to an
|
|
90
|
+
* alert without meeting it.
|
|
91
|
+
*/
|
|
92
|
+
readonly requiresSustain: true;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* The floor region in front of a protected object, in normalized coordinates.
|
|
96
|
+
*
|
|
97
|
+
* Clamped to the frame: a footprint that ran off the bottom would silently test
|
|
98
|
+
* a smaller region than the caller asked for, and an obstruction at the frame
|
|
99
|
+
* edge is exactly the case that matters.
|
|
100
|
+
*/
|
|
101
|
+
export declare function accessFootprint(protectedBox: PixelBox, frame: FrameSize, options: AccessFootprintOptions): NormalizedRect;
|
|
102
|
+
/**
|
|
103
|
+
* Is the protected object blocked, in THIS frame.
|
|
104
|
+
*
|
|
105
|
+
* `obstructionClasses` is required and must be non-empty: a call that passes
|
|
106
|
+
* nothing is asking "is anything at all near the exit", which every person
|
|
107
|
+
* walking past answers yes to.
|
|
108
|
+
*/
|
|
109
|
+
export declare function evaluateObstruction(protectedBox: PixelBox, candidates: readonly {
|
|
110
|
+
label: string;
|
|
111
|
+
box: PixelBox;
|
|
112
|
+
}[], frame: FrameSize, obstructionClasses: readonly string[], options: AccessFootprintOptions): ObstructionVerdict;
|
|
113
|
+
//# sourceMappingURL=obstructionRelation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"obstructionRelation.d.ts","sourceRoot":"","sources":["../src/obstructionRelation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,OAAO,EACL,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,QAAQ,EAGd,MAAM,mBAAmB,CAAC;AAE3B,yEAAyE;AACzE,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,+EAA+E;IAC/E,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC;CAChC;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,QAAQ,EACtB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,sBAAsB,GAC9B,cAAc,CAmBhB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,QAAQ,EACtB,UAAU,EAAE,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,QAAQ,CAAA;CAAE,EAAE,EACvD,KAAK,EAAE,SAAS,EAChB,kBAAkB,EAAE,SAAS,MAAM,EAAE,EACrC,OAAO,EAAE,sBAAsB,GAC9B,kBAAkB,CA+BpB"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.accessFootprint = accessFootprint;
|
|
4
|
+
exports.evaluateObstruction = evaluateObstruction;
|
|
5
|
+
/**
|
|
6
|
+
* obstructionRelation — "is this thing BLOCKED by that thing", in image space.
|
|
7
|
+
*
|
|
8
|
+
* `blocked_fire_exit` is one of the nine classes we sell and the only one that
|
|
9
|
+
* is not an OBJECT. Every vocabulary anywhere has the PARTS — `exit`, `exit
|
|
10
|
+
* sign`, `fire extinguisher`, and any number of obstruction-shaped things — and
|
|
11
|
+
* none has the RELATION. A sweep of four repositories claiming to detect
|
|
12
|
+
* "fire passage occupancy" found that none ships trained weights and that one
|
|
13
|
+
* carries an ROI config block, i.e. its relation is intersection logic wearing a
|
|
14
|
+
* model's name. So the relation is geometry, and this is the geometry.
|
|
15
|
+
*
|
|
16
|
+
* ── THE GROUND PLANE IS STILL THE WHOLE PROBLEM ────────────────────────────
|
|
17
|
+
*
|
|
18
|
+
* `zoneContainment` establishes the rule this file inherits: the bottom-centre
|
|
19
|
+
* of a box is where the object touches the floor, and a point is inside a region
|
|
20
|
+
* or it is not, so no magic fraction is needed. The same applies here and for
|
|
21
|
+
* the same reason — a pallet's box top is not where the pallet IS.
|
|
22
|
+
*
|
|
23
|
+
* What is new is that the REGION is not drawn by an operator. It is derived from
|
|
24
|
+
* the protected object's own box: the floor immediately in front of an exit or
|
|
25
|
+
* an extinguisher is the thing that must stay clear, and on a camera looking
|
|
26
|
+
* down that floor is BELOW the object in the image and roughly as wide as it,
|
|
27
|
+
* widened by a reach allowance.
|
|
28
|
+
*
|
|
29
|
+
* ── WHAT A MONOCULAR CAMERA CANNOT DO, STATED UP FRONT ─────────────────────
|
|
30
|
+
*
|
|
31
|
+
* One camera cannot resolve depth. A person walking three metres in front of an
|
|
32
|
+
* extinguisher puts their ground contact in the SAME image region as a crate
|
|
33
|
+
* shoved against the wall beneath it. No threshold separates those two, because
|
|
34
|
+
* the information is not in the frame.
|
|
35
|
+
*
|
|
36
|
+
* The separator is TIME, and it already exists: a person walks on, a crate does
|
|
37
|
+
* not. `sensing_routes.sustain_seconds` and `routeEvaluatorService.checkSustain`
|
|
38
|
+
* are the server-side gate for exactly this, so this file answers ONE FRAME and
|
|
39
|
+
* a caller that wires it to an alert without a sustain is asserting that anyone
|
|
40
|
+
* who walks past an extinguisher has blocked it. `requiresSustain` is returned
|
|
41
|
+
* on every verdict so that obligation travels with the answer instead of living
|
|
42
|
+
* in a comment.
|
|
43
|
+
*
|
|
44
|
+
* ── WHY A PERSON IS NOT AN OBSTRUCTION, AND WHY THAT IS THE CALLER'S CALL ───
|
|
45
|
+
*
|
|
46
|
+
* `obstructionClasses` is a REQUIRED argument with no default. The set of things
|
|
47
|
+
* that can block an exit is a property of the granted model's vocabulary — one
|
|
48
|
+
* box declares `chair, couch, potted plant, suitcase, backpack`, another
|
|
49
|
+
* declares `dumpster, barricade` — and inventing a list here would be the
|
|
50
|
+
* enumerated allowlist this codebase asks not to write. It is derived at the
|
|
51
|
+
* call site from what the resident model actually emits.
|
|
52
|
+
*
|
|
53
|
+
* @reuse-audit
|
|
54
|
+
* considered: zoneContainment.evaluateZone / countInZone
|
|
55
|
+
* - REUSED, unchanged, as the containment kernel. The access footprint is a
|
|
56
|
+
* NormalizedRect and an obstruction is a PixelBox, which is precisely the
|
|
57
|
+
* pair `evaluateZone` already takes. Re-deriving containment here would be
|
|
58
|
+
* a second opinion about the same question, and the `groundContact`
|
|
59
|
+
* anchor is the reason that question has a threshold-free answer.
|
|
60
|
+
* considered: FaceDetector.iou
|
|
61
|
+
* - not reused, for the reason zoneContainment already records: IoU is a
|
|
62
|
+
* symmetric similarity and this is asymmetric. It is also the WRONG
|
|
63
|
+
* question twice over — a crate on the floor beneath a wall-mounted
|
|
64
|
+
* extinguisher may share almost no image area with it and still block it
|
|
65
|
+
* completely.
|
|
66
|
+
*/
|
|
67
|
+
const zoneContainment_1 = require("./zoneContainment");
|
|
68
|
+
/**
|
|
69
|
+
* The floor region in front of a protected object, in normalized coordinates.
|
|
70
|
+
*
|
|
71
|
+
* Clamped to the frame: a footprint that ran off the bottom would silently test
|
|
72
|
+
* a smaller region than the caller asked for, and an obstruction at the frame
|
|
73
|
+
* edge is exactly the case that matters.
|
|
74
|
+
*/
|
|
75
|
+
function accessFootprint(protectedBox, frame, options) {
|
|
76
|
+
if (!Number.isFinite(options.reachBelow) || options.reachBelow < 0) {
|
|
77
|
+
throw new RangeError('accessFootprint: reachBelow must be a finite number >= 0');
|
|
78
|
+
}
|
|
79
|
+
if (!Number.isFinite(options.reachSide) || options.reachSide < 0) {
|
|
80
|
+
throw new RangeError('accessFootprint: reachSide must be a finite number >= 0');
|
|
81
|
+
}
|
|
82
|
+
const box = (0, zoneContainment_1.normalizeBox)(protectedBox, frame);
|
|
83
|
+
const sidePad = box.width * options.reachSide;
|
|
84
|
+
const belowPad = box.height * options.reachBelow;
|
|
85
|
+
// The footprint spans the object itself PLUS the floor beneath it. Including
|
|
86
|
+
// the object's own rows matters: a crate stacked against a door overlaps the
|
|
87
|
+
// door, and a footprint starting below the box would miss it.
|
|
88
|
+
const x = Math.max(0, box.x - sidePad);
|
|
89
|
+
const y = Math.max(0, box.y);
|
|
90
|
+
const right = Math.min(1, box.x + box.width + sidePad);
|
|
91
|
+
const bottom = Math.min(1, box.y + box.height + belowPad);
|
|
92
|
+
return { x, y, width: Math.max(0, right - x), height: Math.max(0, bottom - y) };
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Is the protected object blocked, in THIS frame.
|
|
96
|
+
*
|
|
97
|
+
* `obstructionClasses` is required and must be non-empty: a call that passes
|
|
98
|
+
* nothing is asking "is anything at all near the exit", which every person
|
|
99
|
+
* walking past answers yes to.
|
|
100
|
+
*/
|
|
101
|
+
function evaluateObstruction(protectedBox, candidates, frame, obstructionClasses, options) {
|
|
102
|
+
if (!Array.isArray(obstructionClasses) || obstructionClasses.length === 0) {
|
|
103
|
+
throw new RangeError('evaluateObstruction: obstructionClasses is required and must be non-empty. '
|
|
104
|
+
+ 'Derive it from the granted model\'s own vocabulary; an empty set makes every '
|
|
105
|
+
+ 'passer-by an obstruction.');
|
|
106
|
+
}
|
|
107
|
+
const footprint = accessFootprint(protectedBox, frame, options);
|
|
108
|
+
// Folded the way `modelClassLiveness` folds a class name, so `potted_plant`,
|
|
109
|
+
// `potted plant` and `Potted Plant` are one class rather than three misses.
|
|
110
|
+
const fold = (s) => s.trim().toLowerCase().replace(/[_\-\s]+/g, ' ');
|
|
111
|
+
const wanted = new Set(obstructionClasses.map(fold));
|
|
112
|
+
// Deduplicated on the FOLDED name, not the raw one: `potted_plant` and
|
|
113
|
+
// `Potted Plant` both pass the membership check above, and keying the seen-set
|
|
114
|
+
// on the original spelling would report one logical class twice. The first
|
|
115
|
+
// spelling encountered is the one reported.
|
|
116
|
+
const seen = new Set();
|
|
117
|
+
const blockedBy = [];
|
|
118
|
+
for (const candidate of candidates) {
|
|
119
|
+
const folded = fold(candidate.label);
|
|
120
|
+
if (!wanted.has(folded))
|
|
121
|
+
continue;
|
|
122
|
+
// `groundContact` by default — the bottom-centre point, threshold-free, for
|
|
123
|
+
// the reason zoneContainment's header gives.
|
|
124
|
+
if (!(0, zoneContainment_1.evaluateZone)(candidate.box, frame, footprint).inside)
|
|
125
|
+
continue;
|
|
126
|
+
if (seen.has(folded))
|
|
127
|
+
continue;
|
|
128
|
+
seen.add(folded);
|
|
129
|
+
blockedBy.push(candidate.label);
|
|
130
|
+
}
|
|
131
|
+
return { blocked: blockedBy.length > 0, footprint, blockedBy, requiresSustain: true };
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=obstructionRelation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"obstructionRelation.js","sourceRoot":"","sources":["../src/obstructionRelation.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED