@trillboards/edge-sdk 0.2.140 → 0.2.150
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/README.md +2 -2
- package/deploy/detector/pyproject.toml +20 -2
- package/deploy/detector/tests/test_execution.py +124 -0
- package/deploy/detector/tests/test_model_identity.py +80 -0
- package/deploy/detector/tests/test_registry.py +18 -0
- package/deploy/detector/tests/test_server.py +3 -1
- package/deploy/detector/tests/test_version_stamp.py +4 -1
- package/deploy/detector/trillboards_detector/_version.py +2 -2
- package/deploy/detector/trillboards_detector/cli.py +3 -0
- package/deploy/detector/trillboards_detector/detections.py +7 -0
- package/deploy/detector/trillboards_detector/errors.py +4 -0
- package/deploy/detector/trillboards_detector/execution.py +109 -0
- package/deploy/detector/trillboards_detector/loader.py +6 -3
- package/deploy/detector/trillboards_detector/registry.py +27 -5
- package/deploy/detector/trillboards_detector/server.py +29 -2
- package/deploy/detector/trillboards_detector/session.py +15 -3
- package/deploy/litertlm/test_trillboards_litertlm_shim.py +81 -0
- package/deploy/litertlm/test_verify_model_proof.py +30 -0
- package/deploy/litertlm/trillboards_litertlm_shim.py +150 -1
- package/deploy/litertlm/verify_model_proof.py +30 -0
- package/deploy/macos/build-macos-pkg.sh +10 -10
- package/deploy/macos/scripts/setup-detector.sh +2 -2
- package/deploy/macos/scripts/setup-litertlm.sh +66 -30
- package/deploy/macos/test-setup-litertlm-reinstall.sh +57 -4
- package/deploy/systemd/setup-detector.sh +2 -2
- package/deploy/systemd/setup-litertlm.sh +51 -27
- package/deploy/windows/build-windows.ps1 +10 -6
- package/deploy/windows/bundle-windows-installer.ps1 +3 -3
- package/deploy/windows/e2e/test-local-sense.ps1 +6 -5
- package/deploy/windows/install-update.ps1 +52 -9
- package/deploy/windows/set-executable-icon.ps1 +24 -5
- package/deploy/windows/setup-detector.ps1 +142 -4
- package/deploy/windows/setup-litertlm.ps1 +53 -10
- package/dist/AudienceAnalyzeClient.d.ts +10 -0
- package/dist/AudienceAnalyzeClient.d.ts.map +1 -1
- package/dist/AudienceAnalyzeClient.js +5 -4
- package/dist/AudienceAnalyzeClient.js.map +1 -1
- package/dist/CloudSensingManager.d.ts +38 -1
- package/dist/CloudSensingManager.d.ts.map +1 -1
- package/dist/CloudSensingManager.js +403 -25
- package/dist/CloudSensingManager.js.map +1 -1
- package/dist/DetectorFieldProducer.d.ts +5 -1
- package/dist/DetectorFieldProducer.d.ts.map +1 -1
- package/dist/DetectorFieldProducer.js +8 -1
- package/dist/DetectorFieldProducer.js.map +1 -1
- package/dist/DurableVlmCandidateSpool.d.ts +83 -2
- package/dist/DurableVlmCandidateSpool.d.ts.map +1 -1
- package/dist/DurableVlmCandidateSpool.js +596 -30
- package/dist/DurableVlmCandidateSpool.js.map +1 -1
- package/dist/EdgeAgent.js +1 -1
- package/dist/FrameGroupingShadow.d.ts +51 -0
- package/dist/FrameGroupingShadow.d.ts.map +1 -0
- package/dist/FrameGroupingShadow.js +158 -0
- package/dist/FrameGroupingShadow.js.map +1 -0
- package/dist/ImageClassifierFieldProducer.d.ts +36 -0
- package/dist/ImageClassifierFieldProducer.d.ts.map +1 -0
- package/dist/ImageClassifierFieldProducer.js +150 -0
- package/dist/ImageClassifierFieldProducer.js.map +1 -0
- package/dist/LiteRtVlmProvider.d.ts +5 -0
- package/dist/LiteRtVlmProvider.d.ts.map +1 -1
- package/dist/LiteRtVlmProvider.js +72 -7
- package/dist/LiteRtVlmProvider.js.map +1 -1
- package/dist/LocalDetectorClient.d.ts +6 -0
- package/dist/LocalDetectorClient.d.ts.map +1 -1
- package/dist/LocalDetectorClient.js +8 -0
- package/dist/LocalDetectorClient.js.map +1 -1
- package/dist/OrderedFrameReview.d.ts +57 -0
- package/dist/OrderedFrameReview.d.ts.map +1 -0
- package/dist/OrderedFrameReview.js +121 -0
- package/dist/OrderedFrameReview.js.map +1 -0
- package/dist/OrderedReviewClient.d.ts +38 -0
- package/dist/OrderedReviewClient.d.ts.map +1 -0
- package/dist/OrderedReviewClient.js +121 -0
- package/dist/OrderedReviewClient.js.map +1 -0
- package/dist/OrderedSequenceStore.d.ts +69 -0
- package/dist/OrderedSequenceStore.d.ts.map +1 -0
- package/dist/OrderedSequenceStore.js +257 -0
- package/dist/OrderedSequenceStore.js.map +1 -0
- package/dist/ProfileReviewWork.d.ts +68 -0
- package/dist/ProfileReviewWork.d.ts.map +1 -0
- package/dist/ProfileReviewWork.js +150 -0
- package/dist/ProfileReviewWork.js.map +1 -0
- package/dist/RetainedFieldContract.d.ts +21 -0
- package/dist/RetainedFieldContract.d.ts.map +1 -0
- package/dist/RetainedFieldContract.js +92 -0
- package/dist/RetainedFieldContract.js.map +1 -0
- package/dist/ReviewModelUse.d.ts +7 -0
- package/dist/ReviewModelUse.d.ts.map +1 -0
- package/dist/ReviewModelUse.js +30 -0
- package/dist/ReviewModelUse.js.map +1 -0
- package/dist/ReviewPriority.d.ts +12 -0
- package/dist/ReviewPriority.d.ts.map +1 -0
- package/dist/ReviewPriority.js +45 -0
- package/dist/ReviewPriority.js.map +1 -0
- package/dist/RuntimeModelSelection.d.ts +10 -0
- package/dist/RuntimeModelSelection.d.ts.map +1 -0
- package/dist/RuntimeModelSelection.js +58 -0
- package/dist/RuntimeModelSelection.js.map +1 -0
- package/dist/SceneChangeDetector.d.ts +1 -1
- package/dist/SceneChangeDetector.d.ts.map +1 -1
- package/dist/SceneChangeDetector.js +18 -6
- package/dist/SceneChangeDetector.js.map +1 -1
- package/dist/ScopedVlmReview.d.ts +76 -0
- package/dist/ScopedVlmReview.d.ts.map +1 -0
- package/dist/ScopedVlmReview.js +267 -0
- package/dist/ScopedVlmReview.js.map +1 -0
- package/dist/SensingProfileClient.d.ts +50 -0
- package/dist/SensingProfileClient.d.ts.map +1 -1
- package/dist/SensingProfileClient.js +58 -2
- package/dist/SensingProfileClient.js.map +1 -1
- package/dist/TemporalReviewClient.d.ts +43 -0
- package/dist/TemporalReviewClient.d.ts.map +1 -0
- package/dist/TemporalReviewClient.js +117 -0
- package/dist/TemporalReviewClient.js.map +1 -0
- package/dist/TemporalReviewJournal.d.ts +91 -0
- package/dist/TemporalReviewJournal.d.ts.map +1 -0
- package/dist/TemporalReviewJournal.js +337 -0
- package/dist/TemporalReviewJournal.js.map +1 -0
- package/dist/UrgentReviewTriage.d.ts +35 -0
- package/dist/UrgentReviewTriage.d.ts.map +1 -0
- package/dist/UrgentReviewTriage.js +52 -0
- package/dist/UrgentReviewTriage.js.map +1 -0
- package/dist/VideoSegmentUploader.d.ts +293 -0
- package/dist/VideoSegmentUploader.d.ts.map +1 -0
- package/dist/VideoSegmentUploader.js +1002 -0
- package/dist/VideoSegmentUploader.js.map +1 -0
- package/dist/VlmCandidateBuffer.d.ts +19 -0
- package/dist/VlmCandidateBuffer.d.ts.map +1 -1
- package/dist/VlmCandidateBuffer.js.map +1 -1
- package/dist/autoSense.d.ts +2 -2
- package/dist/autoSense.d.ts.map +1 -1
- package/dist/autoSense.js +16 -11
- package/dist/autoSense.js.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/continuousReview.d.ts +71 -0
- package/dist/continuousReview.d.ts.map +1 -0
- package/dist/continuousReview.js +53 -0
- package/dist/continuousReview.js.map +1 -0
- package/dist/detectorCountReview.d.ts +9 -0
- package/dist/detectorCountReview.d.ts.map +1 -0
- package/dist/detectorCountReview.js +79 -0
- package/dist/detectorCountReview.js.map +1 -0
- package/dist/diagnose.d.ts +1 -1
- package/dist/diagnose.js +1 -1
- package/dist/installerOnboardingMode.d.ts.map +1 -1
- package/dist/installerOnboardingMode.js +5 -3
- package/dist/installerOnboardingMode.js.map +1 -1
- package/dist/localInferenceSchema.d.ts +8 -0
- package/dist/localInferenceSchema.d.ts.map +1 -1
- package/dist/localInferenceSchema.js +3 -3
- package/dist/localInferenceSchema.js.map +1 -1
- package/dist/localSenseE2eHarness.d.ts +12 -0
- package/dist/localSenseE2eHarness.d.ts.map +1 -1
- package/dist/localSenseE2eHarness.js +77 -4
- package/dist/localSenseE2eHarness.js.map +1 -1
- package/dist/localSensing.d.ts +91 -18
- package/dist/localSensing.d.ts.map +1 -1
- package/dist/localSensing.js +678 -153
- package/dist/localSensing.js.map +1 -1
- package/dist/mixedScopedCounts.d.ts +17 -0
- package/dist/mixedScopedCounts.d.ts.map +1 -0
- package/dist/mixedScopedCounts.js +90 -0
- package/dist/mixedScopedCounts.js.map +1 -0
- package/dist/sensingCatchRate.d.ts +9 -5
- package/dist/sensingCatchRate.d.ts.map +1 -1
- package/dist/sensingCatchRate.js +10 -6
- package/dist/sensingCatchRate.js.map +1 -1
- package/dist/sensingRunMode.d.ts +5 -0
- package/dist/sensingRunMode.d.ts.map +1 -1
- package/dist/sensingRunMode.js +56 -0
- package/dist/sensingRunMode.js.map +1 -1
- package/package.json +7 -4
- package/retained/ArchiveLifecycle.cjs +79 -0
- package/retained/ModelStageScheduler.cjs +66 -0
- package/retained/ProfileAuthorityClient.cjs +88 -0
- package/retained/RetainedCaptureClient.cjs +164 -0
- package/retained/WaitRecheckCaptureClient.cjs +109 -0
- package/retained/__tests__/archive-lifecycle.test.cjs +117 -0
- package/retained/__tests__/runtime.test.cjs +384 -0
- package/retained/alert-rule-policy.cjs +37 -0
- package/retained/manager.cjs +133 -0
- package/retained/pilot-profile-client.cjs +82 -0
- package/retained/temporal-grouping.cjs +78 -0
- package/retained/website-api-capability.cjs +122 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ModelPin } from './RuntimeModelSelection';
|
|
1
2
|
/**
|
|
2
3
|
* LiteRtVlmProvider — runs the audience/sensing VLM ON-DEVICE via Google AI
|
|
3
4
|
* Edge **LiteRT-LM** (`litert-lm serve`), the SAME runtime the CTV agent-core
|
|
@@ -377,6 +378,7 @@ export interface LiteRtAcceleratorHealth {
|
|
|
377
378
|
reason: string | null;
|
|
378
379
|
}
|
|
379
380
|
export interface LocalAnalyzeRequest {
|
|
381
|
+
expectedModel?: ModelPin;
|
|
380
382
|
/** Raw JPEG bytes for this frame. */
|
|
381
383
|
jpeg: Buffer;
|
|
382
384
|
/** The JSON Schema the output is validated against (the profile contract). */
|
|
@@ -421,6 +423,8 @@ export declare class LiteRtVlmProvider {
|
|
|
421
423
|
private acceleratorReason;
|
|
422
424
|
/** How many frames were saved by quoting a bare enum value. See repairBareEnumValues. */
|
|
423
425
|
private bareEnumRepairs;
|
|
426
|
+
/** Complete single-integer answers recovered from omitted JSON punctuation. */
|
|
427
|
+
private singleIntegerRepairs;
|
|
424
428
|
constructor(options?: LiteRtVlmProviderOptions, poster?: HttpJsonPoster);
|
|
425
429
|
/** The resolved chat-completions URL (exposed for assertions / logging). */
|
|
426
430
|
getEndpoint(): string;
|
|
@@ -435,6 +439,7 @@ export declare class LiteRtVlmProvider {
|
|
|
435
439
|
* moved, so it is counted rather than swallowed.
|
|
436
440
|
*/
|
|
437
441
|
getBareEnumRepairCount(): number;
|
|
442
|
+
getSingleIntegerRepairCount(): number;
|
|
438
443
|
/**
|
|
439
444
|
* What this provider resolved about the host's accelerator — the health
|
|
440
445
|
* surface for "did we get the GPU, and if not, why not". Read by the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiteRtVlmProvider.d.ts","sourceRoot":"","sources":["../src/LiteRtVlmProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LiteRtVlmProvider.d.ts","sourceRoot":"","sources":["../src/LiteRtVlmProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,7 @@ exports.isDegenerateCompletion = isDegenerateCompletion;
|
|
|
38
38
|
const http = __importStar(require("http"));
|
|
39
39
|
const https = __importStar(require("https"));
|
|
40
40
|
const url_1 = require("url");
|
|
41
|
+
const RuntimeModelSelection_1 = require("./RuntimeModelSelection");
|
|
41
42
|
const wavEncode_1 = require("./wavEncode");
|
|
42
43
|
/** Suffix litert-lm appends to a model id to select its GPU-delegate variant. */
|
|
43
44
|
exports.GPU_MODEL_SUFFIX = ',gpu';
|
|
@@ -214,6 +215,8 @@ class LiteRtVlmProvider {
|
|
|
214
215
|
this.acceleratorReason = null;
|
|
215
216
|
/** How many frames were saved by quoting a bare enum value. See repairBareEnumValues. */
|
|
216
217
|
this.bareEnumRepairs = 0;
|
|
218
|
+
/** Complete single-integer answers recovered from omitted JSON punctuation. */
|
|
219
|
+
this.singleIntegerRepairs = 0;
|
|
217
220
|
const base = (options.litertLmBaseUrl || 'http://localhost:9379').replace(/\/+$/, '');
|
|
218
221
|
this.endpoint = `${base}/v1/chat/completions`;
|
|
219
222
|
this.modelsEndpoint = `${base}/v1/models`;
|
|
@@ -262,6 +265,9 @@ class LiteRtVlmProvider {
|
|
|
262
265
|
getBareEnumRepairCount() {
|
|
263
266
|
return this.bareEnumRepairs;
|
|
264
267
|
}
|
|
268
|
+
getSingleIntegerRepairCount() {
|
|
269
|
+
return this.singleIntegerRepairs;
|
|
270
|
+
}
|
|
265
271
|
/**
|
|
266
272
|
* What this provider resolved about the host's accelerator — the health
|
|
267
273
|
* surface for "did we get the GPU, and if not, why not". Read by the
|
|
@@ -370,6 +376,8 @@ class LiteRtVlmProvider {
|
|
|
370
376
|
return result;
|
|
371
377
|
}
|
|
372
378
|
catch (err) {
|
|
379
|
+
if (request.expectedModel)
|
|
380
|
+
throw err; // Selected reviews never silently demote delegates.
|
|
373
381
|
if (!(err instanceof RetryableLiteRtError))
|
|
374
382
|
throw err;
|
|
375
383
|
// Only the GPU variant has a fallback left; a CPU failure is a real failure.
|
|
@@ -565,7 +573,8 @@ class LiteRtVlmProvider {
|
|
|
565
573
|
});
|
|
566
574
|
let result;
|
|
567
575
|
try {
|
|
568
|
-
result = await this.poster(this.endpoint, { method: 'POST', headers: { 'Content-Type': 'application/json'
|
|
576
|
+
result = await this.poster(this.endpoint, { method: 'POST', headers: { 'Content-Type': 'application/json',
|
|
577
|
+
...(request.expectedModel ? { 'X-Trillboards-Model-Sha256': request.expectedModel.sha256 } : {}) }, timeoutMs: this.timeoutMs }, body);
|
|
569
578
|
}
|
|
570
579
|
catch (err) {
|
|
571
580
|
// A TRANSPORT failure is the definition of transient, and until this it was
|
|
@@ -607,6 +616,8 @@ class LiteRtVlmProvider {
|
|
|
607
616
|
catch (err) {
|
|
608
617
|
throw new RetryableLiteRtError(`Could not parse LiteRT-LM response JSON: ${err.message}`);
|
|
609
618
|
}
|
|
619
|
+
if (request.expectedModel)
|
|
620
|
+
(0, RuntimeModelSelection_1.assertVlmRuntimeProof)(envelope.runtimeModel, request.expectedModel, model);
|
|
610
621
|
const content = envelope?.choices?.[0]?.message?.content;
|
|
611
622
|
if (typeof content !== 'string' || content.length === 0) {
|
|
612
623
|
throw new RetryableLiteRtError('LiteRT-LM returned no message content');
|
|
@@ -637,16 +648,28 @@ class LiteRtVlmProvider {
|
|
|
637
648
|
recovered = null;
|
|
638
649
|
}
|
|
639
650
|
}
|
|
651
|
+
let singleIntegerRepaired = false;
|
|
652
|
+
if (recovered === null) {
|
|
653
|
+
recovered = repairSingleIntegerField(content, request.schema);
|
|
654
|
+
singleIntegerRepaired = recovered !== null;
|
|
655
|
+
}
|
|
640
656
|
if (recovered === null) {
|
|
641
657
|
throw new RetryableLiteRtError(`Could not parse a JSON object from LiteRT-LM content: ${err.message}`);
|
|
642
658
|
}
|
|
643
659
|
parsed = recovered;
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
660
|
+
if (singleIntegerRepaired) {
|
|
661
|
+
this.singleIntegerRepairs += 1;
|
|
662
|
+
this.log(`[litert-lm] repaired single integer field ${Object.keys(parsed)[0]}: `
|
|
663
|
+
+ `restored JSON punctuation only; raw=${JSON.stringify(content)}`);
|
|
664
|
+
}
|
|
665
|
+
else {
|
|
666
|
+
this.bareEnumRepairs += 1;
|
|
667
|
+
// Say so. A silent fixer would hide the next instance of this class —
|
|
668
|
+
// including a model/prompt change that makes it start happening on a
|
|
669
|
+
// contract where it never did.
|
|
670
|
+
this.log(`[litert-lm] repaired bare enum value(s) for ${repaired.join(', ')} — the model emitted `
|
|
671
|
+
+ `a declared member unquoted; frame kept without spending a retry`);
|
|
672
|
+
}
|
|
650
673
|
}
|
|
651
674
|
// The model may emit an integer-valued field as a float (e.g. person_count:
|
|
652
675
|
// 1.0). Coerce declared integer fields back to int before validating.
|
|
@@ -696,6 +719,48 @@ function repairAndParseJson(text) {
|
|
|
696
719
|
function escapeRegExp(s) {
|
|
697
720
|
return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
698
721
|
}
|
|
722
|
+
/**
|
|
723
|
+
* Recover only a complete named integer answer such as `person_count:1`.
|
|
724
|
+
* The 15 September native comparison reproduced this for every counting arm.
|
|
725
|
+
* Never infer a missing key/value, accept prose or complete a multi-field answer.
|
|
726
|
+
* Existing schema validation still runs after this punctuation-only repair.
|
|
727
|
+
*/
|
|
728
|
+
function repairSingleIntegerField(text, schema) {
|
|
729
|
+
const props = schema?.properties;
|
|
730
|
+
const required = schema?.required;
|
|
731
|
+
if (schema.type !== 'object' || !props || typeof props !== 'object')
|
|
732
|
+
return null;
|
|
733
|
+
const keys = Object.keys(props);
|
|
734
|
+
if (keys.length !== 1 || !Array.isArray(required) || required.length !== 1 || required[0] !== keys[0])
|
|
735
|
+
return null;
|
|
736
|
+
const key = keys[0], spec = props[key];
|
|
737
|
+
if (spec?.type !== 'integer')
|
|
738
|
+
return null;
|
|
739
|
+
let body = text.trim();
|
|
740
|
+
if (body.startsWith('{') || body.endsWith('}')) {
|
|
741
|
+
if (!body.startsWith('{') || !body.endsWith('}'))
|
|
742
|
+
return null;
|
|
743
|
+
body = body.slice(1, -1).trim();
|
|
744
|
+
}
|
|
745
|
+
const literal = escapeRegExp(key);
|
|
746
|
+
const match = new RegExp(`^(?:"${literal}"|${literal})\\s*:\\s*(0|[1-9]\\d*)$`).exec(body);
|
|
747
|
+
if (!match)
|
|
748
|
+
return null;
|
|
749
|
+
const value = Number(match[1]);
|
|
750
|
+
if (!Number.isSafeInteger(value))
|
|
751
|
+
return null;
|
|
752
|
+
if (typeof spec.minimum === 'number' && value < spec.minimum)
|
|
753
|
+
return null;
|
|
754
|
+
if (typeof spec.maximum === 'number' && value > spec.maximum)
|
|
755
|
+
return null;
|
|
756
|
+
if (typeof spec.exclusiveMinimum === 'number' && value <= spec.exclusiveMinimum)
|
|
757
|
+
return null;
|
|
758
|
+
if (typeof spec.exclusiveMaximum === 'number' && value >= spec.exclusiveMaximum)
|
|
759
|
+
return null;
|
|
760
|
+
if (typeof spec.multipleOf === 'number' && (spec.multipleOf <= 0 || value % spec.multipleOf !== 0))
|
|
761
|
+
return null;
|
|
762
|
+
return { [key]: value };
|
|
763
|
+
}
|
|
699
764
|
/**
|
|
700
765
|
* Quote a BARE enum value the model emitted unquoted — and nothing else.
|
|
701
766
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiteRtVlmProvider.js","sourceRoot":"","sources":["../src/LiteRtVlmProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+ZA,wDAsBC;AArbD,2CAA6B;AAC7B,6CAA+B;AAC/B,6BAA0B;AAC1B,2CAKqB;AA0RrB,iFAAiF;AACpE,QAAA,gBAAgB,GAAG,MAAM,CAAC;AAEvC;;;;;;;;GAQG;AACU,QAAA,wBAAwB,GAAG,QAAQ,CAAC;AAEjD;;;;GAIG;AACH,MAAM,qBAAqB,GAAG,IAAK,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAEnC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,GAAG,EAAE,CAAC;AAgBvB;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,sBAAsB,CAAC,IAAY;IACjD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACtB,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpB,4EAA4E;IAC5E,0EAA0E;IAC1E,8EAA8E;IAC9E,6EAA6E;IAC7E,uEAAuE;IACvE,0EAA0E;IAC1E,4EAA4E;IAC5E,8EAA8E;IAC9E,6CAA6C;IAC7C,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAE3F,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;QACrC,IAAI,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;IAChE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AA+ED,wEAAwE;AACxE,MAAM,oBAAqB,SAAQ,KAAK;CAAG;AAE3C;;;;;;;;;;;;;GAaG;AACH,MAAM,2BAA4B,SAAQ,oBAAoB;CAAG;AAEjE;;;;;;;;;GASG;AACH,MAAM,uBAAwB,SAAQ,2BAA2B;CAAG;AAEpE,MAAa,iBAAiB;IA4B5B,YAAY,UAAoC,EAAE,EAAE,MAAuB;QAd3E;;;;WAIG;QACK,mBAAc,GAAkB,IAAI,CAAC;QAC7C,+EAA+E;QACvE,kBAAa,GAAmB,IAAI,CAAC;QAC7C,6EAA6E;QACrE,eAAU,GAAG,KAAK,CAAC;QACnB,sBAAiB,GAAkB,IAAI,CAAC;QAChD,yFAAyF;QACjF,oBAAe,GAAG,CAAC,CAAC;QAG1B,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,eAAe,IAAI,uBAAuB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACtF,IAAI,CAAC,QAAQ,GAAG,GAAG,IAAI,sBAAsB,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG,GAAG,IAAI,YAAY,CAAC;QAC1C,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,IAAI,yBAAyB,CAAC;QACnE,6EAA6E;QAC7E,qEAAqE;QACrE,MAAM,kBAAkB,GAAG,eAAe,CAAC,QAAQ,CAAC,wBAAgB,CAAC,CAAC;QACtE,IAAI,CAAC,SAAS,GAAG,kBAAkB;YACjC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,wBAAgB,CAAC,MAAM,CAAC;YACpD,CAAC,CAAC,eAAe,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,kBAAkB;YACnC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,KAAK,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC;YACnE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAO,CAAC;QAC9C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,GAAG,CAAC;QACpD,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,6BAAqB,CAAC;QAC9C,sCAAsC;QACtC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACtE,yEAAyE;QACzE,4EAA4E;QAC5E,4EAA4E;QAC5E,wEAAwE;QACxE,2EAA2E;QAC3E,oBAAoB;QACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IACrF,CAAC;IAED,4EAA4E;IAC5E,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,kFAAkF;IAClF,QAAQ;QACN,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,2DAA2D;IACnD,QAAQ;QACd,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,wBAAgB,EAAE,CAAC;IAChD,CAAC;IAED;;;;;OAKG;IACH,sBAAsB;QACpB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,oBAAoB;QAClB,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,wBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;YAC/E,iBAAiB,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,aAAa;YAC7D,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,IAAI,CAAC,iBAAiB;SAC/B,CAAC;IACJ,CAAC;IAED,yFAAyF;IACjF,KAAK,CAAC,aAAa;QACzB,IAAI,MAA4C,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CACxB,IAAI,CAAC,cAAc,EACnB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,EAC5F,EAAE,CACH,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,GAAG,GAAG,IAAI,MAAM,CAAC,UAAU,IAAI,GAAG;YAAE,OAAO,IAAI,CAAC;QACrE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAuC,CAAC;YAC7E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC9C,OAAO,MAAM,CAAC,IAAI;iBACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBACzD,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACK,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,YAAqB;QACnE,IACE,IAAI,CAAC,WAAW,KAAK,KAAK;YAC1B,IAAI,CAAC,WAAW,KAAK,cAAc;YACnC,IAAI,CAAC,UAAU;YACf,OAAO;QACT,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,MAAM,GAAG,MAAM,CAAC;QACpB,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC1C,IAAI,CAAC,aAAa,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/E,MAAM,KAAK,GAAG,MAAM,KAAK,IAAI;gBAC3B,CAAC,CAAC,kBAAkB,IAAI,CAAC,cAAc,EAAE;gBACzC,CAAC,CAAC,aAAa,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;YAClD,MAAM;gBACJ,gDAAgD,IAAI,CAAC,QAAQ,EAAE,iBAAiB;oBAChF,oDAAoD,KAAK,KAAK;oBAC9D,aAAa,gCAAwB,0CAA0C;oBAC/E,4CAA4C,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;QAChC,IAAI,CAAC,GAAG,CACN,uEAAuE;YACrE,IAAI,IAAI,CAAC,SAAS,+BAA+B,MAAM,GAAG,CAC7D,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,OAAO,CAAC,OAA4B;QACxC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACtD,0EAA0E;YAC1E,uEAAuE;YACvE,8BAA8B;YAC9B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,sEAAsE;YACtE,yEAAyE;YACzE,IAAI,IAAI,CAAC,WAAW,KAAK,cAAc;gBAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YACvE,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,GAAG,YAAY,oBAAoB,CAAC;gBAAE,MAAM,GAAG,CAAC;YACtD,6EAA6E;YAC7E,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,wBAAgB,CAAC;gBAAE,MAAM,GAAG,CAAC;YAC/E,wEAAwE;YACxE,sEAAsE;YACtE,kEAAkE;YAClE,IAAI,CAAC,CAAC,GAAG,YAAY,2BAA2B,CAAC;gBAAE,MAAM,GAAG,CAAC;YAC7D,yEAAyE;YACzE,uEAAuE;YACvE,yEAAyE;YACzE,wEAAwE;YACxE,qDAAqD;YACrD,IAAI,IAAI,CAAC,WAAW,KAAK,cAAc,EAAE,CAAC;gBACxC,MAAM,MAAM,GACV,yDAAyD,GAAG,CAAC,OAAO,EAAE,CAAC;gBACzE,IAAI,IAAI,CAAC,iBAAiB,KAAK,MAAM,EAAE,CAAC;oBACtC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;oBAChC,IAAI,CAAC,GAAG,CAAC,eAAe,MAAM,EAAE,CAAC,CAAC;gBACpC,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,YAAY,uBAAuB,CAAC,CAAC;YAClF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;YACrC,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,eAAe,CACnB,GAAiB,EACjB,aAAqB,mCAAuB,EAC5C,UAAmD,EAAE;QAErD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC9E,CAAC;QACD,wEAAwE;QACxE,wEAAwE;QACxE,MAAM,IAAI,GAAG,IAAA,iCAAqB,EAAC,GAAG,EAAE,UAAU,EAAE,mCAAuB,CAAC,CAAC;QAC7E,MAAM,GAAG,GAAG,IAAA,uBAAW,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;QAEjC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,KAAK;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EACF,OAAO,CAAC,MAAM;gCACd,iGAAiG;yBACpG;wBACD;4BACE,IAAI,EAAE,aAAa;4BACnB,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE;yBAC7D;qBACF;iBACF;aACF;YACD,WAAW,EAAE,CAAC;YACd,4EAA4E;YAC5E,0EAA0E;YAC1E,oEAAoE;YACpE,uEAAuE;YACvE,wEAAwE;YACxE,4CAA4C;YAC5C,KAAK,EAAE,YAAY;YACnB,qBAAqB,EAAE,qBAAqB;YAC5C,IAAI,EAAE,CAAC;SACR,CAAC,CAAC;QAEH,IAAI,MAA4C,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CACxB,IAAI,CAAC,QAAQ,EACb;gBACE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS;aAC/C,EACD,IAAI,CACL,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,2BAA2B,CACnC,qDAAsD,GAAa,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAC9F,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,UAAU,GAAG,GAAG,IAAI,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;YACxD,MAAM,OAAO,GAAG,2BAA2B,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YACrG,MAAM,MAAM,CAAC,UAAU,KAAK,GAAG;gBAC7B,CAAC,CAAC,IAAI,uBAAuB,CAAC,OAAO,CAAC;gBACtC,CAAC,CAAC,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,QAAiE,CAAC;QACtE,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,oBAAoB,CAC5B,iDAAkD,GAAa,CAAC,OAAO,EAAE,CAC1E,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpE,OAAO;YACL,IAAI;YACJ,UAAU,EAAE,sBAAsB,CAAC,IAAI,CAAC;YACxC,KAAK;YACL,OAAO,EAAE,IAAI,CAAC,MAAM,GAAG,UAAU;SAClC,CAAC;IACJ,CAAC;IAED,2DAA2D;IACnD,KAAK,CAAC,WAAW,CACvB,OAA4B,EAC5B,KAAa;QAEb,IAAI,OAA0B,CAAC;QAC/B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;YAC/D,yEAAyE;YACzE,yEAAyE;YACzE,yEAAyE;YACzE,0EAA0E;YAC1E,0EAA0E;YAC1E,oEAAoE;YACpE,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC5C,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;YACxD,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YAC5E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,GAAG,GAAY,CAAC;gBACvB,IAAI,CAAC,CAAC,GAAG,YAAY,oBAAoB,CAAC;oBAAE,MAAM,GAAG,CAAC;gBACtD,mEAAmE;gBACnE,sEAAsE;gBACtE,sEAAsE;gBACtE,wEAAwE;gBACxE,sEAAsE;gBACtE,IAAI,GAAG,YAAY,uBAAuB,IAAI,KAAK,CAAC,QAAQ,CAAC,wBAAgB,CAAC;oBAAE,MAAM,GAAG,CAAC;gBAC1F,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;oBAC9D,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,OAAO,IAAI,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACzD,CAAC;IAED,2DAA2D;IACnD,KAAK,CAAC,WAAW,CACvB,OAA4B,EAC5B,WAAmB,EACnB,KAAa,EACb,OAAO,GAAG,CAAC,EACX,OAAe,YAAY;QAE3B,MAAM,OAAO,GAAG,0BAA0B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5E,MAAM,UAAU,GACd,GAAG,OAAO,CAAC,MAAM,MAAM;cACrB,mFAAmF;cACnF,4BAA4B;cAC5B,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,6EAA6E;QAC7E,6EAA6E;QAC7E,qEAAqE;QACrE,0EAA0E;QAC1E,wEAAwE;QACxE,6EAA6E;QAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,KAAK;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;wBAClC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;qBACnD;iBACF;aACF;YACD,WAAW;YACX,2EAA2E;YAC3E,0EAA0E;YAC1E,+BAA+B;YAC/B,qBAAqB,EAAE,qBAAqB;YAC5C,yEAAyE;YACzE,sEAAsE;YACtE,uEAAuE;YACvE,gEAAgE;YAChE,KAAK,EAAE,IAAI;YACX,sEAAsE;YACtE,0EAA0E;YAC1E,wEAAwE;YACxE,0EAA0E;YAC1E,iEAAiE;YACjE,sEAAsE;YACtE,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;QAEH,IAAI,MAA4C,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CACxB,IAAI,CAAC,QAAQ,EACb,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EAC9F,IAAI,CACL,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,4EAA4E;YAC5E,wEAAwE;YACxE,yEAAyE;YACzE,2EAA2E;YAC3E,EAAE;YACF,wEAAwE;YACxE,yEAAyE;YACzE,yEAAyE;YACzE,yEAAyE;YACzE,2EAA2E;YAC3E,wEAAwE;YACxE,0EAA0E;YAC1E,yEAAyE;YACzE,gDAAgD;YAChD,EAAE;YACF,yEAAyE;YACzE,4DAA4D;YAC5D,MAAM,OAAO,GAAI,GAAa,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;YACvD,IAAI,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,MAAM,GAAG,CAAC;YACtD,MAAM,IAAI,2BAA2B,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,GAAG,GAAG,IAAI,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;YACxD,MAAM,OAAO,GAAG,2BAA2B,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YACrG,mEAAmE;YACnE,0EAA0E;YAC1E,qEAAqE;YACrE,4DAA4D;YAC5D,MAAM,MAAM,CAAC,UAAU,KAAK,GAAG;gBAC7B,CAAC,CAAC,IAAI,uBAAuB,CAAC,OAAO,CAAC;gBACtC,CAAC,CAAC,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,QAAiE,CAAC;QACtE,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,oBAAoB,CAAC,4CAA6C,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACvG,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;QACzD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,oBAAoB,CAAC,uCAAuC,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,MAA+B,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,uEAAuE;YACvE,sEAAsE;YACtE,0EAA0E;YAC1E,oEAAoE;YACpE,yEAAyE;YACzE,kEAAkE;YAClE,EAAE;YACF,0EAA0E;YAC1E,yEAAyE;YACzE,0EAA0E;YAC1E,gEAAgE;YAChE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACvF,IAAI,SAAS,GAAmC,IAAI,CAAC;YACrD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC;oBACH,SAAS,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;gBAC/C,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS,GAAG,IAAI,CAAC;gBACnB,CAAC;YACH,CAAC;YACD,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,MAAM,IAAI,oBAAoB,CAC5B,yDAA0D,GAAa,CAAC,OAAO,EAAE,CAClF,CAAC;YACJ,CAAC;YACD,MAAM,GAAG,SAAS,CAAC;YACnB,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;YAC1B,sEAAsE;YACtE,qEAAqE;YACrE,+BAA+B;YAC/B,IAAI,CAAC,GAAG,CACN,+CAA+C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB;kBACrF,iEAAiE,CACtE,CAAC;QACJ,CAAC;QAED,4EAA4E;QAC5E,sEAAsE;QACtE,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAE5C,sEAAsE;QACtE,sEAAsE;QACtE,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAChE,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,oBAAoB,CAAC,8CAA8C,SAAS,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AApgBD,8CAogBC;AAED;;;;;GAKG;AACH,SAAS,uBAAuB,CAAC,MAA+B;IAC9D,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAE,MAAc,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/F,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;SACzB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;QACnB,MAAM,CAAC,GAAG,IAAW,CAAC;QACtB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC;YAAE,OAAO,MAAM,GAAG,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAC/E,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;QACtF,OAAO,MAAM,GAAG,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;IACxC,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,IAAY;IACtC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,GAAG,KAAK;QAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAA4B,CAAC;AAClD,CAAC;AAED,uDAAuD;AACvD,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAS,oBAAoB,CAC3B,IAAY,EACZ,MAA+B;IAE/B,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAE,MAAc,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/F,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,OAAO,GAAI,IAAY,EAAE,IAAI,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,SAAS;QACtC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAChE,yEAAyE;YACzE,yEAAyE;YACzE,6CAA6C;YAC7C,MAAM,EAAE,GAAG,IAAI,MAAM,CACnB,KAAK,YAAY,CAAC,GAAG,CAAC,cAAc,YAAY,CAAC,MAAM,CAAC,iBAAiB,EACzE,GAAG,CACJ,CAAC;YACF,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC5B,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC;YACjB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,MAAM,GAAG,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AACjC,CAAC;AAED,0FAA0F;AAC1F,SAAS,mBAAmB,CAAC,GAA4B,EAAE,MAA+B;IACxF,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAE,MAAc,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/F,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,GAAI,IAAY,EAAE,IAAI,CAAC;QAC9B,MAAM,KAAK,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7E,IAAI,KAAK,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAW,CAAC,EAAE,CAAC;YACjF,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAW,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAC5B,GAA4B,EAC5B,MAA+B;IAE/B,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAE,MAAc,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/F,MAAM,QAAQ,GAAa,KAAK,CAAC,OAAO,CAAE,MAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAE,MAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpG,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAC/F,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,0BAA0B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAE1E,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,EAAE,GAAI,IAAY,EAAE,IAAI,CAAC;QAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAClF,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,uBAAuB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACvE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACI,MAAM,qBAAqB,GAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAC1E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,SAAG,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA2B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACtE,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACxD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CACrB,GAAG,EACH;YACE,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YAC5E,OAAO,EAAE,OAAO,CAAC,SAAS;YAC1B,uEAAuE;YACvE,oEAAoE;YACpE,gEAAgE;YAChE,uEAAuE;YACvE,gEAAgE;YAChE,kBAAkB,EAAE,IAAI;SACzB,EACD,CAAC,GAAG,EAAE,EAAE;YACN,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACtD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CACjB,OAAO,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAC5F,CAAC;QACJ,CAAC,CACF,CAAC;QACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC;QAC/E,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACtB,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AArCW,QAAA,qBAAqB,yBAqChC"}
|
|
1
|
+
{"version":3,"file":"LiteRtVlmProvider.js","sourceRoot":"","sources":["../src/LiteRtVlmProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,7 @@ export interface Detection {
|
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
26
|
export interface DetectResult {
|
|
27
|
+
modelHashes?: Record<string, string>;
|
|
27
28
|
detections: Detection[];
|
|
28
29
|
/** Wall-clock ms the service spent on inference, as the service reports it. */
|
|
29
30
|
inferenceMs: number | null;
|
|
@@ -42,6 +43,10 @@ export interface DetectorHttpPoster {
|
|
|
42
43
|
}>;
|
|
43
44
|
}
|
|
44
45
|
export interface LocalDetectorClientOptions {
|
|
46
|
+
expectedModel?: {
|
|
47
|
+
modelId: string;
|
|
48
|
+
sha256: string;
|
|
49
|
+
};
|
|
45
50
|
baseUrl?: string;
|
|
46
51
|
timeoutMs?: number;
|
|
47
52
|
/**
|
|
@@ -135,6 +140,7 @@ export declare class LocalDetectorClient {
|
|
|
135
140
|
private readonly classes;
|
|
136
141
|
private readonly minConfidence;
|
|
137
142
|
private readonly poster;
|
|
143
|
+
private readonly expectedModel;
|
|
138
144
|
constructor(options?: LocalDetectorClientOptions, poster?: DetectorHttpPoster);
|
|
139
145
|
getDetectEndpoint(): string;
|
|
140
146
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalDetectorClient.d.ts","sourceRoot":"","sources":["../src/LocalDetectorClient.ts"],"names":[],"mappings":"AA6DA,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,+EAA+E;AAC/E,MAAM,WAAW,SAAS;IACxB,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;;;;OASG;IACH,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9D;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,+EAA+E;IAC/E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,sEAAsE;IACtE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,wEAAwE;AACxE,MAAM,WAAW,kBAAkB;IACjC,CACE,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAC/E,IAAI,EAAE,MAAM,GAAG,IAAI,GAClB,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAmBD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,OAAO,EAAE,OAAO,CAAC;IACjB,mCAAmC;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,kBAAkB,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC;;;;;;;;;;OAUG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,mEAAmE;AACnE,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,GAAG,EAAE,gBAAgB,CAAC;CACvB;AAED,mFAAmF;AACnF,qBAAa,wBAAyB,SAAQ,KAAK;CAAG;AAEtD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;
|
|
1
|
+
{"version":3,"file":"LocalDetectorClient.d.ts","sourceRoot":"","sources":["../src/LocalDetectorClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -84,6 +84,7 @@ class DetectorUnavailableError extends Error {
|
|
|
84
84
|
exports.DetectorUnavailableError = DetectorUnavailableError;
|
|
85
85
|
class LocalDetectorClient {
|
|
86
86
|
constructor(options = {}, poster) {
|
|
87
|
+
this.expectedModel = options.expectedModel;
|
|
87
88
|
const base = (options.baseUrl || `http://127.0.0.1:${exports.DEFAULT_DETECTOR_PORT}`).replace(/\/+$/, '');
|
|
88
89
|
this.detectEndpoint = `${base}/detect`;
|
|
89
90
|
this.healthEndpoint = `${base}/health`;
|
|
@@ -211,6 +212,7 @@ class LocalDetectorClient {
|
|
|
211
212
|
throw new Error('detect() requires a non-empty jpeg buffer');
|
|
212
213
|
const body = JSON.stringify({
|
|
213
214
|
image_b64: jpeg.toString('base64'),
|
|
215
|
+
...(this.expectedModel ? { expected_model: this.expectedModel } : {}),
|
|
214
216
|
...(this.classes.length > 0 ? { classes: this.classes } : {}),
|
|
215
217
|
min_confidence: this.minConfidence,
|
|
216
218
|
});
|
|
@@ -270,8 +272,14 @@ class LocalDetectorClient {
|
|
|
270
272
|
box: { x: b.x, y: b.y, width: b.width, height: b.height },
|
|
271
273
|
});
|
|
272
274
|
}
|
|
275
|
+
if (this.expectedModel && (parsed.model !== this.expectedModel.modelId
|
|
276
|
+
|| !parsed.model_hashes || Object.keys(parsed.model_hashes).length !== 1
|
|
277
|
+
|| parsed.model_hashes[this.expectedModel.modelId] !== this.expectedModel.sha256)) {
|
|
278
|
+
throw new DetectorUnavailableError('Model verification failed: detector did not execute the selected artifact');
|
|
279
|
+
}
|
|
273
280
|
return {
|
|
274
281
|
detections,
|
|
282
|
+
...(this.expectedModel ? { modelHashes: parsed.model_hashes } : {}),
|
|
275
283
|
inferenceMs: isFiniteNumber(parsed?.inference_ms) && parsed.inference_ms > 0
|
|
276
284
|
? Math.round(parsed.inference_ms)
|
|
277
285
|
: null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalDetectorClient.js","sourceRoot":"","sources":["../src/LocalDetectorClient.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,+BAA8C;AAE9C,+EAA+E;AAClE,QAAA,qBAAqB,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"LocalDetectorClient.js","sourceRoot":"","sources":["../src/LocalDetectorClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { type HttpJsonPoster, type LocalAnalyzeRequest } from './LiteRtVlmProvider';
|
|
2
|
+
import type { NormalizedPoint } from './zoneContainment';
|
|
3
|
+
import type { ModelPin } from './RuntimeModelSelection';
|
|
4
|
+
export interface OrderedEvidenceFrame {
|
|
5
|
+
evidenceId: string;
|
|
6
|
+
cameraId: string;
|
|
7
|
+
contextSha256: string;
|
|
8
|
+
capturedAtMs: number;
|
|
9
|
+
imageSha256: string;
|
|
10
|
+
jpeg: Buffer;
|
|
11
|
+
}
|
|
12
|
+
export interface OrderedFrameOptions {
|
|
13
|
+
sequenceId: string;
|
|
14
|
+
cameraId: string;
|
|
15
|
+
contextSha256: string;
|
|
16
|
+
frames: OrderedEvidenceFrame[];
|
|
17
|
+
region?: NormalizedPoint[];
|
|
18
|
+
prompt: string;
|
|
19
|
+
schema: Record<string, unknown>;
|
|
20
|
+
expectedModel: ModelPin;
|
|
21
|
+
runtimeModel: string;
|
|
22
|
+
baseUrl: string;
|
|
23
|
+
/** The caller must durably save these receipts and prepared image buffers. A failed write rejects. */
|
|
24
|
+
record: (receipt: Record<string, unknown>) => void | Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Explicit local experiment: one bounded sequence through the existing Gemma
|
|
28
|
+
* transport, parser and model proof. Not armed by capture, queue or production
|
|
29
|
+
* profile selection. Every original and crop is retained before the first POST.
|
|
30
|
+
*/
|
|
31
|
+
export declare function createOrderedFrameReviewer(options: OrderedFrameOptions, transport?: HttpJsonPoster): Promise<{
|
|
32
|
+
identity: {
|
|
33
|
+
version: number;
|
|
34
|
+
kind: string;
|
|
35
|
+
sequenceId: string;
|
|
36
|
+
cameraId: string;
|
|
37
|
+
contextSha256: string;
|
|
38
|
+
expectedModel: {
|
|
39
|
+
modelId: string;
|
|
40
|
+
format: "onnx" | "litert-lm" | "tflite-image-classifier" | "safetensors-rfdetr";
|
|
41
|
+
sha256: string;
|
|
42
|
+
};
|
|
43
|
+
region: NormalizedPoint[] | undefined;
|
|
44
|
+
prompt: string;
|
|
45
|
+
schema: Record<string, unknown>;
|
|
46
|
+
frames: {
|
|
47
|
+
evidenceId: string;
|
|
48
|
+
capturedAtMs: number;
|
|
49
|
+
imageSha256: string;
|
|
50
|
+
cropSha256: string;
|
|
51
|
+
}[];
|
|
52
|
+
};
|
|
53
|
+
identitySha256: string;
|
|
54
|
+
getAcceleratorHealth: () => import("./LiteRtVlmProvider").LiteRtAcceleratorHealth;
|
|
55
|
+
analyze(request: LocalAnalyzeRequest): Promise<Record<string, unknown>>;
|
|
56
|
+
}>;
|
|
57
|
+
//# sourceMappingURL=OrderedFrameReview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrderedFrameReview.d.ts","sourceRoot":"","sources":["../src/OrderedFrameReview.ts"],"names":[],"mappings":"AACA,OAAO,EAA4C,KAAK,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE9H,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AACD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,aAAa,EAAE,QAAQ,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,sGAAsG;IACtG,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpE;AAKD;;;;GAIG;AACH,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,mBAAmB,EAAE,SAAS,GAAE,cAAsC;;;;;;;;;;;;;;;;;;;;;;;;qBAkFrG,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;GAiBhF"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createOrderedFrameReviewer = createOrderedFrameReviewer;
|
|
4
|
+
const crypto_1 = require("crypto");
|
|
5
|
+
const LiteRtVlmProvider_1 = require("./LiteRtVlmProvider");
|
|
6
|
+
const ScopedVlmReview_1 = require("./ScopedVlmReview");
|
|
7
|
+
const jpegFrameSize_1 = require("./jpegFrameSize");
|
|
8
|
+
const digest = (data) => (0, crypto_1.createHash)('sha256').update(data).digest('hex');
|
|
9
|
+
const hashPattern = /^[a-f0-9]{64}$/;
|
|
10
|
+
const idPattern = /^[a-zA-Z0-9][a-zA-Z0-9_.-]{0,127}$/;
|
|
11
|
+
/**
|
|
12
|
+
* Explicit local experiment: one bounded sequence through the existing Gemma
|
|
13
|
+
* transport, parser and model proof. Not armed by capture, queue or production
|
|
14
|
+
* profile selection. Every original and crop is retained before the first POST.
|
|
15
|
+
*/
|
|
16
|
+
async function createOrderedFrameReviewer(options, transport = LiteRtVlmProvider_1.defaultHttpJsonPoster) {
|
|
17
|
+
const url = new URL(options.baseUrl);
|
|
18
|
+
if (url.protocol !== 'http:' || !['127.0.0.1', '[::1]'].includes(url.hostname)
|
|
19
|
+
|| url.username || url.password || url.search || url.hash || !['', '/'].includes(url.pathname)) {
|
|
20
|
+
throw Error('Ordered review requires an isolated loopback service');
|
|
21
|
+
}
|
|
22
|
+
if (!idPattern.test(options.sequenceId) || !idPattern.test(options.cameraId) || !hashPattern.test(options.contextSha256)
|
|
23
|
+
|| !Array.isArray(options.frames) || options.frames.length < 2 || options.frames.length > 5
|
|
24
|
+
|| !options.prompt || options.prompt.length > 2048 || typeof options.record !== 'function'
|
|
25
|
+
|| options.expectedModel?.format !== 'litert-lm' || !idPattern.test(options.expectedModel.modelId)
|
|
26
|
+
|| !hashPattern.test(options.expectedModel.sha256) || !idPattern.test(options.runtimeModel)) {
|
|
27
|
+
throw Error('Invalid ordered review contract');
|
|
28
|
+
}
|
|
29
|
+
// Copy all caller-owned values before the first await, including the actual pixels.
|
|
30
|
+
const { sequenceId, cameraId, contextSha256, prompt, runtimeModel, record } = options;
|
|
31
|
+
const schema = JSON.parse(JSON.stringify(options.schema));
|
|
32
|
+
const schemaJson = JSON.stringify(schema), pin = { ...options.expectedModel };
|
|
33
|
+
const region = options.region ? JSON.parse(JSON.stringify(options.region)) : undefined;
|
|
34
|
+
const frames = options.frames.map(f => ({ ...f, jpeg: Buffer.from(f.jpeg) }));
|
|
35
|
+
let bytes = 0, previous = -Infinity, dimensions = '';
|
|
36
|
+
const ids = new Set();
|
|
37
|
+
for (const frame of frames) {
|
|
38
|
+
const size = (0, jpegFrameSize_1.readJpegFrameSize)(frame.jpeg);
|
|
39
|
+
if (!idPattern.test(frame.evidenceId) || ids.has(frame.evidenceId) || frame.cameraId !== cameraId
|
|
40
|
+
|| frame.contextSha256 !== contextSha256 || !Number.isSafeInteger(frame.capturedAtMs)
|
|
41
|
+
|| frame.capturedAtMs < 0 || frame.capturedAtMs <= previous || !hashPattern.test(frame.imageSha256)
|
|
42
|
+
|| digest(frame.jpeg) !== frame.imageSha256 || !size || size.width * size.height > 16777216
|
|
43
|
+
|| frame.jpeg.length < 4 || frame.jpeg.readUInt16BE(frame.jpeg.length - 2) !== 0xffd9) {
|
|
44
|
+
throw Error('Invalid, mixed or out-of-order retained frame');
|
|
45
|
+
}
|
|
46
|
+
const shape = `${size.width}x${size.height}`;
|
|
47
|
+
if (dimensions && shape !== dimensions)
|
|
48
|
+
throw Error('Camera dimensions changed within sequence');
|
|
49
|
+
dimensions = shape;
|
|
50
|
+
ids.add(frame.evidenceId);
|
|
51
|
+
previous = frame.capturedAtMs;
|
|
52
|
+
bytes += frame.jpeg.length;
|
|
53
|
+
}
|
|
54
|
+
if (bytes > 16 * 1024 ** 2 || frames[frames.length - 1].capturedAtMs - frames[0].capturedAtMs > 5000) {
|
|
55
|
+
throw Error('Sequence exceeds bounded evidence budget');
|
|
56
|
+
}
|
|
57
|
+
const prepared = [];
|
|
58
|
+
for (const frame of frames) {
|
|
59
|
+
const croppedJpeg = region ? await (0, ScopedVlmReview_1.cropLasso)(frame.jpeg, region) : Buffer.from(frame.jpeg);
|
|
60
|
+
prepared.push({ ...frame, croppedJpeg, cropSha256: digest(croppedJpeg) });
|
|
61
|
+
}
|
|
62
|
+
if (prepared.reduce((n, f) => n + f.croppedJpeg.length, 0) > 8 * 1024 ** 2)
|
|
63
|
+
throw Error('Sequence crop budget exceeded');
|
|
64
|
+
const identity = {
|
|
65
|
+
version: 1, kind: 'ordered_frame_rehearsal', sequenceId, cameraId, contextSha256,
|
|
66
|
+
expectedModel: pin, region, prompt, schema,
|
|
67
|
+
frames: prepared.map(({ evidenceId, capturedAtMs, imageSha256, cropSha256 }) => ({ evidenceId, capturedAtMs, imageSha256, cropSha256 })),
|
|
68
|
+
};
|
|
69
|
+
const identitySha256 = digest(JSON.stringify(identity));
|
|
70
|
+
// Immutable strings survive mutation of the observer's receipt or original buffers.
|
|
71
|
+
const parts = prepared.flatMap((f, i) => [
|
|
72
|
+
{ type: 'text', text: `Frame ${i + 1}/${prepared.length}; +${f.capturedAtMs - frames[0].capturedAtMs} ms from sequence start.` },
|
|
73
|
+
{ type: 'image_url', image_url: { url: `data:image/jpeg;base64,${f.croppedJpeg.toString('base64')}` } },
|
|
74
|
+
]);
|
|
75
|
+
const anchorHash = prepared[prepared.length - 1].cropSha256;
|
|
76
|
+
await record({ phase: 'prepared', identitySha256, identity: JSON.parse(JSON.stringify(identity)),
|
|
77
|
+
inputs: prepared.map(f => ({ evidenceId: f.evidenceId, originalJpeg: Buffer.from(f.jpeg), croppedJpeg: Buffer.from(f.croppedJpeg) })) });
|
|
78
|
+
const provider = new LiteRtVlmProvider_1.LiteRtVlmProvider({ litertLmBaseUrl: url.origin, model: runtimeModel,
|
|
79
|
+
accelerator: 'gpu_required', maxAttempts: 1, retryBackoffMs: 0 }, async (endpoint, requestOptions, body) => {
|
|
80
|
+
const request = JSON.parse(body);
|
|
81
|
+
const content = request.messages?.[0]?.content;
|
|
82
|
+
if (endpoint !== `${url.origin}/v1/chat/completions` || request.messages?.length !== 1
|
|
83
|
+
|| content?.length !== 2 || content[0]?.type !== 'text' || content[1]?.type !== 'image_url'
|
|
84
|
+
|| !content[0].text.startsWith(prompt + '\n\n')
|
|
85
|
+
|| digest(Buffer.from(content[1].image_url.url.split(',')[1], 'base64')) !== anchorHash
|
|
86
|
+
|| requestOptions.headers['X-Trillboards-Model-Sha256'] !== pin.sha256) {
|
|
87
|
+
throw Error('Native single-frame request differs from the bound sequence anchor');
|
|
88
|
+
}
|
|
89
|
+
request.messages[0].content = [{ type: 'text', text: 'These images show the same camera area in time order. Assess the questions across the sequence; a visible occurrence in any frame qualifies. Do not infer intent.\n' + content[0].text }, ...parts];
|
|
90
|
+
const sequenceBody = JSON.stringify(request);
|
|
91
|
+
await record({ phase: 'request', identitySha256, bodySha256: digest(sequenceBody), imageCount: prepared.length,
|
|
92
|
+
model: request.model, prompt: request.messages[0].content[0].text, frameIdentities: JSON.parse(JSON.stringify(identity.frames)) });
|
|
93
|
+
const response = await transport(endpoint, requestOptions, sequenceBody);
|
|
94
|
+
await record({ phase: 'response', identitySha256, response: { ...response } });
|
|
95
|
+
return response;
|
|
96
|
+
});
|
|
97
|
+
let used = false;
|
|
98
|
+
return {
|
|
99
|
+
identity: JSON.parse(JSON.stringify(identity)),
|
|
100
|
+
identitySha256,
|
|
101
|
+
getAcceleratorHealth: () => provider.getAcceleratorHealth(),
|
|
102
|
+
async analyze(request) {
|
|
103
|
+
if (used || digest(request.jpeg) !== anchorHash || request.prompt !== prompt
|
|
104
|
+
|| JSON.stringify(request.schema) !== schemaJson || request.expectedModel?.modelId !== pin.modelId
|
|
105
|
+
|| request.expectedModel?.sha256 !== pin.sha256 || request.expectedModel?.format !== pin.format) {
|
|
106
|
+
throw Error('Sequence reviewer is single-use and bound to its exact anchor, scope and model');
|
|
107
|
+
}
|
|
108
|
+
used = true;
|
|
109
|
+
try {
|
|
110
|
+
const structured = await provider.analyze({ jpeg: Buffer.from(request.jpeg), prompt, schema, expectedModel: pin });
|
|
111
|
+
await record({ phase: 'complete', identitySha256, structured: JSON.parse(JSON.stringify(structured)) });
|
|
112
|
+
return structured;
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
await record({ phase: 'failed', identitySha256, error: String(error) });
|
|
116
|
+
throw error; // Never convert failure to no-event or fall back to one image.
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=OrderedFrameReview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrderedFrameReview.js","sourceRoot":"","sources":["../src/OrderedFrameReview.ts"],"names":[],"mappings":"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"}
|