@trillboards/edge-sdk 0.2.138 → 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/TrillboardsSetupApp.m +131 -3
- package/deploy/macos/build-macos-pkg.sh +13 -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/setup-guidance.json +112 -0
- package/deploy/systemd/setup-detector.sh +2 -2
- package/deploy/systemd/setup-litertlm.sh +51 -27
- package/deploy/windows/build-windows.ps1 +11 -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/deploy/windows/trillboards-setup.ps1 +101 -2
- 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sensingRunMode.js","sourceRoot":"","sources":["../src/sensingRunMode.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sensingRunMode.js","sourceRoot":"","sources":["../src/sensingRunMode.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trillboards/edge-sdk",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.150",
|
|
4
4
|
"description": "Composable cross-platform Edge AI SDK for audience sensing on DOOH/CTV devices",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -11,19 +11,21 @@
|
|
|
11
11
|
"scripts": {
|
|
12
12
|
"build": "tsc",
|
|
13
13
|
"postbuild": "chmod +x dist/cli.js dist/mcp-server.js",
|
|
14
|
-
"test": "jest --passWithNoTests --forceExit",
|
|
14
|
+
"test": "jest --passWithNoTests --forceExit && node --test retained/__tests__/runtime.test.cjs retained/__tests__/archive-lifecycle.test.cjs",
|
|
15
|
+
"test:retained": "node --test retained/__tests__/runtime.test.cjs retained/__tests__/archive-lifecycle.test.cjs",
|
|
15
16
|
"clean": "rm -rf dist",
|
|
16
17
|
"prepublishOnly": "npm run build"
|
|
17
18
|
},
|
|
18
19
|
"dependencies": {
|
|
19
|
-
"@trillboards/edge-core": "^0.4.
|
|
20
|
+
"@trillboards/edge-core": "^0.4.11",
|
|
20
21
|
"@trillboards/edge-sensing": "^0.2.4",
|
|
21
22
|
"@trillboards/edge-federated": "^0.2.0 || ^1.0.0",
|
|
22
23
|
"@trillboards/edge-ads": "^0.2.0",
|
|
23
24
|
"@trillboards/edge-cloud": "^0.2.0",
|
|
24
25
|
"jpeg-js": "^0.4.4",
|
|
25
26
|
"jsqr": "^1.4.0",
|
|
26
|
-
"pngjs": "^7.0.0"
|
|
27
|
+
"pngjs": "^7.0.0",
|
|
28
|
+
"sharp": "0.33.5"
|
|
27
29
|
},
|
|
28
30
|
"optionalDependencies": {
|
|
29
31
|
"@trillboards/edge-platform-linux": "^0.2.0",
|
|
@@ -32,6 +34,7 @@
|
|
|
32
34
|
},
|
|
33
35
|
"files": [
|
|
34
36
|
"dist",
|
|
37
|
+
"retained",
|
|
35
38
|
"configs",
|
|
36
39
|
"deploy",
|
|
37
40
|
"LICENSE",
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
const fs = require('node:fs'), path = require('node:path'), assert = require('node:assert/strict');
|
|
3
|
+
const { createHash } = require('node:crypto');
|
|
4
|
+
const digest = bytes => createHash('sha256').update(bytes).digest('hex');
|
|
5
|
+
const emptyCounts = () => ({ captures: 0, selected: 0, reviewed: 0, received: 0, inactive: 0, grouped: 0 });
|
|
6
|
+
function recordCounts(row) {
|
|
7
|
+
return { captures: 1, selected: Number(row.selected), reviewed: Number(!!row.result),
|
|
8
|
+
received: Number(row.acknowledged), inactive: Number(row.reviewStage === null),
|
|
9
|
+
grouped: Number(row.disposition === 'archived_grouped_unchanged') };
|
|
10
|
+
}
|
|
11
|
+
function atomic(file, value) {
|
|
12
|
+
const tmp = file + '.tmp', fd = fs.openSync(tmp, 'w');
|
|
13
|
+
try { fs.writeFileSync(fd, JSON.stringify(value)); fs.fsyncSync(fd); } finally { fs.closeSync(fd); }
|
|
14
|
+
fs.renameSync(tmp, file);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** Only retire resolved/unneeded originals. A committed deletion plan is replayable
|
|
18
|
+
* after a crash; aggregate counters survive without an unbounded tombstone ledger.
|
|
19
|
+
* Pending work and temporal/grouping pins are supplied by the archive, not a TTL.
|
|
20
|
+
*/
|
|
21
|
+
class ArchiveLifecycle {
|
|
22
|
+
constructor(directory) {
|
|
23
|
+
this.directory = path.resolve(directory);
|
|
24
|
+
this.file = path.join(this.directory, 'ARCHIVE-LIFECYCLE.json');
|
|
25
|
+
this.state = fs.existsSync(this.file) ? JSON.parse(fs.readFileSync(this.file, 'utf8'))
|
|
26
|
+
: { version: 1, pruned: emptyCounts(), pending: null };
|
|
27
|
+
assert(this.state.version === 1 && Object.keys(emptyCounts()).every(key =>
|
|
28
|
+
Number.isSafeInteger(this.state.pruned?.[key]) && this.state.pruned[key] >= 0), 'Invalid archive lifecycle state');
|
|
29
|
+
this.completePending();
|
|
30
|
+
}
|
|
31
|
+
regular(file) {
|
|
32
|
+
const absolute = path.resolve(file);
|
|
33
|
+
assert(absolute.startsWith(this.directory + path.sep), 'Cleanup escaped its camera archive');
|
|
34
|
+
if (!fs.existsSync(absolute)) return false;
|
|
35
|
+
assert(fs.lstatSync(absolute).isFile(), 'Archive cleanup target is not a regular file');
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
completePending() {
|
|
39
|
+
const pending = this.state.pending;
|
|
40
|
+
if (!pending) return;
|
|
41
|
+
assert(Array.isArray(pending.records) && pending.records.length > 0 && pending.records.length <= 64
|
|
42
|
+
&& Array.isArray(pending.images) && pending.images.length <= 64, 'Invalid archive reclamation plan');
|
|
43
|
+
for (const entry of pending.records) {
|
|
44
|
+
assert(/^[a-f0-9]{32}$/.test(entry.id) && /^[a-f0-9]{64}$/.test(entry.sha256), 'Invalid cleanup record identity');
|
|
45
|
+
const file = path.join(this.directory, entry.id + '.json');
|
|
46
|
+
if (this.regular(file)) {
|
|
47
|
+
assert.equal(digest(fs.readFileSync(file)), entry.sha256, 'Cleanup record changed after commit');
|
|
48
|
+
fs.unlinkSync(file);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// A shared JPEG is owned by every remaining record, not just the one retired.
|
|
52
|
+
const live = new Set(fs.readdirSync(this.directory).filter(name => /^[a-f0-9]{32}\.json$/.test(name))
|
|
53
|
+
.map(name => JSON.parse(fs.readFileSync(path.join(this.directory, name), 'utf8')).imageSha256));
|
|
54
|
+
for (const sha of pending.images) {
|
|
55
|
+
assert(/^[a-f0-9]{64}$/.test(sha), 'Invalid cleanup image identity');
|
|
56
|
+
if (live.has(sha)) continue;
|
|
57
|
+
const file = path.join(this.directory, 'images', sha + '.jpg');
|
|
58
|
+
if (this.regular(file)) {
|
|
59
|
+
assert.equal(digest(fs.readFileSync(file)), sha, 'Cleanup image changed after commit');
|
|
60
|
+
fs.unlinkSync(file);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
this.state = { ...this.state, pending: null };
|
|
64
|
+
atomic(this.file, this.state);
|
|
65
|
+
}
|
|
66
|
+
retire(rows, remaining) {
|
|
67
|
+
assert(!this.state.pending, 'Archive reclamation must finish before another batch');
|
|
68
|
+
if (!rows.length) return;
|
|
69
|
+
const pruned = { ...this.state.pruned };
|
|
70
|
+
for (const row of rows) for (const [key, count] of Object.entries(recordCounts(row))) pruned[key] += count;
|
|
71
|
+
const live = new Set([...remaining.values()].map(row => row.imageSha256));
|
|
72
|
+
const records = rows.map(row => ({ id: row.id, sha256: digest(fs.readFileSync(path.join(this.directory, row.id + '.json'))) }));
|
|
73
|
+
const images = [...new Set(rows.map(row => row.imageSha256))].filter(sha => !live.has(sha));
|
|
74
|
+
this.state = { version: 1, pruned, pending: { records, images } };
|
|
75
|
+
atomic(this.file, this.state);
|
|
76
|
+
this.completePending();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
module.exports = { ArchiveLifecycle };
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
// Explicit experimental cross-camera pipeline. Each model still gets at most
|
|
3
|
+
// one actual call. All configured fields are reviewed on the original JPEG.
|
|
4
|
+
const assert = require('node:assert/strict');
|
|
5
|
+
const { AsyncLocalStorage } = require('node:async_hooks');
|
|
6
|
+
const { createHash } = require('node:crypto');
|
|
7
|
+
const take = name => require('../dist/' + name);
|
|
8
|
+
const sha = bytes => createHash('sha256').update(bytes).digest('hex');
|
|
9
|
+
|
|
10
|
+
class SerialModelLane {
|
|
11
|
+
constructor(name) { this.name = name; this.tail = Promise.resolve(); this.pending = 0; this.active = 0; this.maxActive = 0; }
|
|
12
|
+
async run(work) {
|
|
13
|
+
// The manager permits two reviews, one per feed. No unbounded model queue.
|
|
14
|
+
assert(this.pending < 2, 'Model lane overflow; retain original for retry');
|
|
15
|
+
this.pending++;
|
|
16
|
+
const previous = this.tail;
|
|
17
|
+
let release; this.tail = new Promise(resolve => { release = resolve; });
|
|
18
|
+
await previous;
|
|
19
|
+
this.active++; this.maxActive = Math.max(this.maxActive, this.active);
|
|
20
|
+
try { return await work(); }
|
|
21
|
+
finally { this.active--; this.pending--; release(); }
|
|
22
|
+
}
|
|
23
|
+
stats() { return { name: this.name, pending: this.pending, active: this.active, maxActive: this.maxActive }; }
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
class ModelStageScheduler {
|
|
27
|
+
constructor() {
|
|
28
|
+
this.vlm = new SerialModelLane('gemma'); this.detector = new SerialModelLane('rfdetr');
|
|
29
|
+
this.execution = new AsyncLocalStorage();
|
|
30
|
+
}
|
|
31
|
+
wrap(client) {
|
|
32
|
+
const scheduler = this, nativeProvider = client.localProvider;
|
|
33
|
+
assert(nativeProvider?.analyze && client.producerOptions && client.producerInjected === false,
|
|
34
|
+
'Stage scheduling requires the native uninjected mixed client');
|
|
35
|
+
// No monkey patch of a module, process-global provider, HTTP poster, or SDK.
|
|
36
|
+
client.localProvider = new Proxy(nativeProvider, { get(target, key) {
|
|
37
|
+
if (key === 'analyze') return input => scheduler.vlm.run(() => target.analyze(input));
|
|
38
|
+
const value = Reflect.get(target, key); return typeof value === 'function' ? value.bind(target) : value;
|
|
39
|
+
} });
|
|
40
|
+
client.producerInjected = true;
|
|
41
|
+
client.producer = { produce: (jpeg, fields, pins) => {
|
|
42
|
+
const request = scheduler.execution.getStore();
|
|
43
|
+
assert(request?.reviewContext && sha(request.jpeg) === sha(jpeg), 'Detector stage lost its retained evidence');
|
|
44
|
+
const context = request.reviewContext;
|
|
45
|
+
assert.deepEqual(fields.map(f => f.field).sort(), context.producerFields.map(f => f.field).sort(),
|
|
46
|
+
'A stage may not drop or add detector questions');
|
|
47
|
+
const regions = new Map(context.regions);
|
|
48
|
+
return scheduler.detector.run(() => new (take('DetectorFieldProducer').DetectorFieldProducer)({
|
|
49
|
+
...client.producerOptions, classThresholds: new Map(context.operatingPoints),
|
|
50
|
+
regionForField: field => regions.get(field) ?? null,
|
|
51
|
+
}).produce(jpeg, fields, pins));
|
|
52
|
+
} };
|
|
53
|
+
return new Proxy(client, { get(target, key) {
|
|
54
|
+
if (key === 'reviewCandidate' || key === 'analyze') return request => {
|
|
55
|
+
assert(request.reviewContext && request.evidenceId && Number.isFinite(request.capturedAt),
|
|
56
|
+
'Stages need the original retained context/identity/time');
|
|
57
|
+
assert(!request.reviewContext.detectorCounts && !request.reviewContext.scopedVlmReview
|
|
58
|
+
&& request.reviewContext.mixedModelExecution === undefined, 'Do not mix execution experiments');
|
|
59
|
+
return scheduler.execution.run(request, () => target[key](request));
|
|
60
|
+
};
|
|
61
|
+
const value = Reflect.get(target, key); return typeof value === 'function' ? value.bind(target) : value;
|
|
62
|
+
} });
|
|
63
|
+
}
|
|
64
|
+
stats() { return { gemma: this.vlm.stats(), rfdetr: this.detector.stats() }; }
|
|
65
|
+
}
|
|
66
|
+
module.exports = { SerialModelLane, ModelStageScheduler };
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
// Experimental adapter only. It reconciles a legacy compatibility alias; it
|
|
3
|
+
// never replaces an operator-declared field or manufactures a missing reading.
|
|
4
|
+
const assert = require('node:assert/strict');
|
|
5
|
+
const { createHash } = require('node:crypto');
|
|
6
|
+
const take = name => require('../dist/' + name);
|
|
7
|
+
const sha = bytes => createHash('sha256').update(bytes).digest('hex');
|
|
8
|
+
const RF_SHA = '8e8197112112b79d7cc5d0a94ecef659c05317a658aadc7c7643374c539d7615';
|
|
9
|
+
|
|
10
|
+
function ownsWholeFramePresence(context) {
|
|
11
|
+
if (!context?.retainedFieldContract || !context.modelSelection) return false;
|
|
12
|
+
const selection = take('RuntimeModelSelection').retainedModelSelection(context);
|
|
13
|
+
const fields = take('RetainedFieldContract').readFieldContract(context.retainedFieldContract);
|
|
14
|
+
// A separately requested/owned alias has its own semantics and is NOT ours.
|
|
15
|
+
if (fields.some(f => f.field === 'people_present')
|
|
16
|
+
|| selection.fieldOwners.some(f => f.field === 'people_present')
|
|
17
|
+
|| context.producerFields?.some(f => f.field === 'people_present')) return false;
|
|
18
|
+
const model = selection.models.find(m => m.modelId === 'rfdetr_medium');
|
|
19
|
+
if (model?.format !== 'onnx' || model.sha256 !== RF_SHA) return false;
|
|
20
|
+
const regions = new Map(context.regions ?? []);
|
|
21
|
+
return [['person_count', 'counter'], ['person_present', 'boolean']].every(([field, type]) =>
|
|
22
|
+
fields.some(f => f.field === field && f.type === type && f.modelId === model.modelId)
|
|
23
|
+
&& selection.fieldOwners.some(f => f.field === field && f.modelId === model.modelId)
|
|
24
|
+
&& context.producerFields?.filter(f => f.field === field).length === 1
|
|
25
|
+
&& context.producerFields.find(f => f.field === field).modelId === model.modelId
|
|
26
|
+
&& !context.producerFields.find(f => f.field === field).derivation && !regions.has(field));
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function reconcilePresenceAlias(saved, request) {
|
|
30
|
+
if (!ownsWholeFramePresence(request.reviewContext)) return saved;
|
|
31
|
+
const required = take('RetainedFieldContract').readFieldContract(request.reviewContext.retainedFieldContract);
|
|
32
|
+
take('RetainedFieldContract').assertCompleteFields(required, saved.structured, saved.detectorProduced);
|
|
33
|
+
assert.equal(saved.evidenceSha256, sha(request.jpeg), 'Authority result has different image bytes');
|
|
34
|
+
assert.equal(saved.runtimeSelectionSha256, take('ProfileReviewWork').reviewContextHash(request.reviewContext),
|
|
35
|
+
'Authority result has a different captured model/field contract');
|
|
36
|
+
const value = saved.structured.person_present, count = saved.structured.person_count;
|
|
37
|
+
assert(Number.isSafeInteger(count) && count >= 0 && value === (count > 0),
|
|
38
|
+
'RF presence/count disagreement must retain evidence for diagnosis');
|
|
39
|
+
assert.equal(saved.detectorProduced.person_present, 'rfdetr_medium');
|
|
40
|
+
assert.equal(saved.detectorProduced.person_count, 'rfdetr_medium');
|
|
41
|
+
if (saved.authorityConsistency) {
|
|
42
|
+
const proof = saved.authorityConsistency;
|
|
43
|
+
assert(proof.version === 1 && proof.modelId === 'rfdetr_medium'
|
|
44
|
+
&& proof.alias === 'people_present' && typeof proof.rawValue === 'boolean'
|
|
45
|
+
&& proof.value === value && proof.evidenceSha256 === saved.evidenceSha256
|
|
46
|
+
&& saved.structured.people_present === value, 'Cached authority proof is inconsistent');
|
|
47
|
+
return saved;
|
|
48
|
+
}
|
|
49
|
+
// Absent/non-boolean aliases are not invented. The native full schema gate
|
|
50
|
+
// remains responsible for any missing configured question.
|
|
51
|
+
if (typeof saved.structured.people_present !== 'boolean' || saved.structured.people_present === value) return saved;
|
|
52
|
+
const structured = { ...saved.structured, people_present: value };
|
|
53
|
+
return { ...saved, structured,
|
|
54
|
+
hasSignal: saved.analysisMethod === 'detector_counts_v1' || saved.analysisMethod === 'scoped_detector_counts_v1'
|
|
55
|
+
|| take('localSensing').isAlertWorthy(structured, request.reviewContext.absenceWatchedFields),
|
|
56
|
+
authorityConsistency: { version: 1, modelId: 'rfdetr_medium', alias: 'people_present',
|
|
57
|
+
rawValue: saved.structured.people_present, value, evidenceSha256: saved.evidenceSha256 } };
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
class ProfileAuthorityClient {
|
|
61
|
+
constructor(client) { this.client = client; }
|
|
62
|
+
prepareReview() { return this.client.prepareReview(); }
|
|
63
|
+
isReviewActive() { return this.client.isReviewActive?.() !== false; }
|
|
64
|
+
captureReviewContext() { return this.client.captureReviewContext(); }
|
|
65
|
+
getEndpoint() { return this.client.getEndpoint(); }
|
|
66
|
+
getReviewModelUse(context) { return this.client.getReviewModelUse(context); }
|
|
67
|
+
getAcceleratorHealth() { return this.client.getAcceleratorHealth(); }
|
|
68
|
+
getLocalInferenceStats() { return this.client.getLocalInferenceStats(); }
|
|
69
|
+
getProducerStats() { return this.client.getProducerStats?.(); }
|
|
70
|
+
getObservedAnalyzeMs() { return this.client.getObservedAnalyzeMs?.() ?? null; }
|
|
71
|
+
async reportCameraHealth(health) { return this.client.reportCameraHealth(health); }
|
|
72
|
+
async prepare(request) {
|
|
73
|
+
assert(typeof request.checkpointAnalysis === 'function', 'Authority review needs a durable checkpoint');
|
|
74
|
+
let saved;
|
|
75
|
+
await this.client.reviewCandidate({ ...request, checkpointAnalysis: result => {
|
|
76
|
+
saved = reconcilePresenceAlias(result, request); request.checkpointAnalysis(saved);
|
|
77
|
+
} });
|
|
78
|
+
assert(saved, 'Missing complete authority result');
|
|
79
|
+
return saved;
|
|
80
|
+
}
|
|
81
|
+
async reviewCandidate(request) { await this.prepare(request); }
|
|
82
|
+
async analyze(request) {
|
|
83
|
+
const saved = await this.prepare(request);
|
|
84
|
+
return this.client.analyze({ ...request, cachedAnalysis: saved,
|
|
85
|
+
extra: { ...request.extra, ...(saved.authorityConsistency ? { pilotAuthorityConsistency: saved.authorityConsistency } : {}) } });
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
module.exports = { ProfileAuthorityClient, reconcilePresenceAlias, ownsWholeFramePresence };
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
const fs=require('node:fs'),path=require('node:path'),crypto=require('node:crypto'),assert=require('node:assert/strict');
|
|
3
|
+
const sha=b=>crypto.createHash('sha256').update(b).digest('hex');
|
|
4
|
+
const {selectTemporal,resolveTemporalCoverage}=require('./temporal-grouping.cjs');
|
|
5
|
+
const reviewExecution=new (require('node:async_hooks').AsyncLocalStorage)();
|
|
6
|
+
function commit(file,value) {
|
|
7
|
+
const bytes=Buffer.isBuffer(value)?value:Buffer.from(JSON.stringify(value));
|
|
8
|
+
const tmp=file+'.tmp';const fd=fs.openSync(tmp,'w');try{fs.writeFileSync(fd,bytes);fs.fsyncSync(fd);}finally{fs.closeSync(fd);}fs.renameSync(tmp,file);
|
|
9
|
+
}
|
|
10
|
+
/** Local harness adapter: capture -> durable archive -> bounded native spool.
|
|
11
|
+
* Uses an explicit retainedCapture envelope; ordered-image inference remains separate.
|
|
12
|
+
* Every original is retained. Sampling is explicit; archived intermediate images are NOT called reviewed.
|
|
13
|
+
*/
|
|
14
|
+
class RetainedCaptureClient {
|
|
15
|
+
constructor(client,directory,{cameraId,intervalMs=500,maxCaptures=100000,maxBytes=32*1024**3,offerWindow=16,reviewStage=()=>'active',selectionMode='all',groupingPolicy=null,configuredApiBaseUrl,archiveRetentionMs}={}) {
|
|
16
|
+
require('../dist/continuousReview').assertRetainedReviewReceiver(client.getEndpoint(),configuredApiBaseUrl);
|
|
17
|
+
assert(cameraId && Number.isSafeInteger(intervalMs)&&intervalMs>=500);
|
|
18
|
+
assert(['all','state-change-v1'].includes(selectionMode));
|
|
19
|
+
if(selectionMode==='state-change-v1')assert(groupingPolicy&&groupingPolicy.mode==='shadow','Explicit grouping policy required');
|
|
20
|
+
assert(Number.isSafeInteger(maxCaptures)&&maxCaptures>0&&Number.isSafeInteger(maxBytes)&&maxBytes>0,'Invalid archive capacity');
|
|
21
|
+
assert(archiveRetentionMs===undefined||Number.isSafeInteger(archiveRetentionMs)&&archiveRetentionMs>=500&&archiveRetentionMs<=86400000,'Invalid archive retention');
|
|
22
|
+
Object.assign(this,{client,directory,cameraId,intervalMs,maxCaptures,maxBytes,offerWindow,reviewStage,selectionMode,archiveRetentionMs});
|
|
23
|
+
this.groupReferences=new Map();this.previousCaptureRecord=null;this.previousSelectedRecord=null;
|
|
24
|
+
this.entries=new Map();this.queued=new Set();this.anchor=null;this.nextDue=null;this.lastAt=-1;this.bytes=0;
|
|
25
|
+
this.counts={captures:0,selected:0,reviewed:0,received:0,inactive:0,grouped:0};
|
|
26
|
+
fs.mkdirSync(directory,{recursive:true});fs.mkdirSync(path.join(directory,'images'),{recursive:true});
|
|
27
|
+
this.records=new Map();
|
|
28
|
+
const policy={version:1,cameraId,intervalMs,maxCaptures,maxBytes,...(configuredApiBaseUrl?{configuredApiBaseUrl}:{}),...(archiveRetentionMs===undefined?{}:{archiveRetentionMs,archiveLifecycle:'resolved_and_unneeded_only_v1'}),algorithm:'first_capture_at_or_after_fixed_slot; no synthetic timestamps',...(selectionMode==='all'?{}:{selectionMode,groupingPolicy,temporalPolicy:'explicit_grouped_continuity_opt_in_else_preserve_all'})};
|
|
29
|
+
const policyFile=path.join(directory,'POLICY.json');
|
|
30
|
+
if(fs.existsSync(policyFile))assert.deepEqual(JSON.parse(fs.readFileSync(policyFile)),policy,'Archive policy changed');else commit(policyFile,policy);
|
|
31
|
+
this.lifecycle=archiveRetentionMs===undefined?null:new(require('./ArchiveLifecycle.cjs').ArchiveLifecycle)(directory);
|
|
32
|
+
if(this.lifecycle)this.counts={...this.lifecycle.state.pruned};
|
|
33
|
+
const files=fs.readdirSync(directory).filter(f=>/^[a-f0-9]{32}\.json$/.test(f));
|
|
34
|
+
const records=files.map(f=>JSON.parse(fs.readFileSync(path.join(directory,f)))).sort((a,b)=>a.capturedAt-b.capturedAt);
|
|
35
|
+
for(const r of records){assert.equal(r.cameraId,cameraId);assert.equal(sha(fs.readFileSync(this.image(r))),r.imageSha256);this.records.set(r.id,r);if(r.selected&&!r.acknowledged)this.entries.set(r.id,r);this.counts.captures++;if(r.selected)this.counts.selected++;if(r.result)this.counts.reviewed++;if(r.acknowledged)this.counts.received++;if(r.reviewStage===null)this.counts.inactive++;if(r.disposition==='archived_grouped_unchanged')this.counts.grouped++;this.bytes+=r.imageBytes;this.advance(r);}
|
|
36
|
+
}
|
|
37
|
+
image(r){return path.join(this.directory,'images',r.imageSha256+'.jpg');}
|
|
38
|
+
file(id){return path.join(this.directory,id+'.json');}
|
|
39
|
+
advance(r){this.previousCaptureRecord=r;if(r.selected){this.previousSelectedRecord=r;const key=this.referenceKey(r.capturedAt,r.imageSha256,r.candidate.reviewContext);this.groupReferences.set(key,r.id);if(this.groupReferences.size>256)this.groupReferences.delete(this.groupReferences.keys().next().value);}if(this.anchor===null){this.anchor=r.capturedAt;this.nextDue=r.capturedAt;}if(r.selected)this.nextDue=this.anchor+(Math.floor((r.capturedAt-this.anchor)/this.intervalMs)+1)*this.intervalMs;this.lastAt=r.capturedAt;}
|
|
40
|
+
referenceKey(at,digest,context){return JSON.stringify([at,digest,sha(Buffer.from(JSON.stringify(context??null)))]);}
|
|
41
|
+
chooseReview(c,digest,due,reviewStage){
|
|
42
|
+
if(reviewStage===null)return{selected:false,disposition:'archived_profile_inactive'};
|
|
43
|
+
if(!due&&!c.reviewContext?.temporalReviewContract?.groupedContinuity)return{selected:false,disposition:'archived_between_review_slots'};
|
|
44
|
+
const keep=reason=>({selected:true,disposition:'pending_review',selectionReason:reason});
|
|
45
|
+
if(this.selectionMode!=='state-change-v1')return keep('review_all_control');
|
|
46
|
+
const context=c.reviewContext??{};
|
|
47
|
+
// Ordered multi-image contracts remain independent and are never grouped here.
|
|
48
|
+
if(context.orderedSequence||context.orderedCaptureContract)return keep('temporal_observation');
|
|
49
|
+
if(context.temporalReviewContract){
|
|
50
|
+
if(!context.temporalReviewContract.groupedContinuity)return keep('temporal_observation');
|
|
51
|
+
return selectTemporal(c,this.groupingChoice(c,digest),this.previousCaptureRecord,this.previousSelectedRecord);
|
|
52
|
+
}
|
|
53
|
+
return this.groupingChoice(c,digest);
|
|
54
|
+
}
|
|
55
|
+
groupingChoice(c,digest){
|
|
56
|
+
const context=c.reviewContext??{},keep=reason=>({selected:true,disposition:'pending_review',selectionReason:reason});
|
|
57
|
+
const g=c.groupingShadow;
|
|
58
|
+
if(!g||g.version!==1||g.mode!=='shadow'||g.capturedAtMs!==c.enqueuedAtMs||g.imageSha256!==digest||
|
|
59
|
+
g.contextSha256!==sha(Buffer.from(JSON.stringify(context)))||!Array.isArray(g.scopes)||!g.scopes.length||g.scopes.length>16||
|
|
60
|
+
typeof g.wouldSelect!=='boolean'||g.scopes.some(s=>!s||typeof s!=='object'||typeof s.select!=='boolean')||g.wouldSelect!==g.scopes.some(s=>s.select))return keep('missing_or_invalid_grouping');
|
|
61
|
+
const expected=require('../dist/FrameGroupingShadow').groupingScopes(context).map(s=>s.field).sort();
|
|
62
|
+
if(JSON.stringify(g.scopes.map(s=>s.field).sort())!==JSON.stringify(expected))return keep('grouping_scope_mismatch');
|
|
63
|
+
if(g.wouldSelect)return keep('group_selected');
|
|
64
|
+
const references=[];
|
|
65
|
+
for(const s of g.scopes){
|
|
66
|
+
if(s.reason!=='unchanged'||!Number.isSafeInteger(s.referenceCapturedAtMs)||s.referenceCapturedAtMs>=c.enqueuedAtMs||!/^[a-f0-9]{64}$/.test(s.referenceSha256??''))return keep('invalid_group_reference');
|
|
67
|
+
const id=this.groupReferences.get(this.referenceKey(s.referenceCapturedAtMs,s.referenceSha256,context))??sha(Buffer.from(JSON.stringify([c.name,s.referenceCapturedAtMs,s.referenceSha256,context]))).slice(0,32);
|
|
68
|
+
if(!id||!fs.existsSync(this.file(id)))return keep('reference_not_durably_selected');
|
|
69
|
+
try {
|
|
70
|
+
const original=JSON.parse(fs.readFileSync(this.file(id)));
|
|
71
|
+
if(!original.selected||original.cameraId!==c.name||original.capturedAt!==s.referenceCapturedAtMs||original.imageSha256!==s.referenceSha256||
|
|
72
|
+
JSON.stringify(original.candidate.reviewContext)!==JSON.stringify(context)||!fs.existsSync(this.image(original))||sha(fs.readFileSync(this.image(original)))!==original.imageSha256)return keep('reference_identity_failed');
|
|
73
|
+
}catch{return keep('reference_identity_failed');}
|
|
74
|
+
references.push(id);
|
|
75
|
+
}
|
|
76
|
+
// A saved, unreviewed grouped view is not assigned the reference's AI answer.
|
|
77
|
+
return{selected:false,disposition:'archived_grouped_unchanged',selectionReason:'unchanged_with_saved_reference',groupReferenceIds:[...new Set(references)]};
|
|
78
|
+
}
|
|
79
|
+
prepareReview(){return this.client.prepareReview();}
|
|
80
|
+
isReviewActive(){return this.client.isReviewActive?.()!==false;}
|
|
81
|
+
captureReviewContext(){return this.client.captureReviewContext();}
|
|
82
|
+
getEndpoint(){return this.client.getEndpoint();}
|
|
83
|
+
getReviewModelUse(c){return this.client.getReviewModelUse(this.baseContext(c));}
|
|
84
|
+
getAcceleratorHealth(){return this.client.getAcceleratorHealth();}
|
|
85
|
+
getLocalInferenceStats(){return this.client.getLocalInferenceStats();}
|
|
86
|
+
getProducerStats(){return this.client.getProducerStats?.();}
|
|
87
|
+
getObservedAnalyzeMs(){return this.client.getObservedAnalyzeMs?.()??null;}
|
|
88
|
+
async reportCameraHealth(health){return this.client.reportCameraHealth(health);}
|
|
89
|
+
baseContext(c){if(!c)return c;const x={...c};if(x.retainedCapture?.kind==='retained_single_capture')delete x.retainedCapture;return x;}
|
|
90
|
+
archivePins(){return new Set([...this.entries.keys(),...this.queued,this.previousCaptureRecord?.id,this.previousSelectedRecord?.id].filter(Boolean));}
|
|
91
|
+
reclaim(at){
|
|
92
|
+
if(!this.lifecycle)return;
|
|
93
|
+
const pins=this.archivePins(),todo=[...pins];
|
|
94
|
+
const pin=id=>{if(id&&!pins.has(id)){assert(this.records.has(id),'Archive reference missing before cleanup');pins.add(id);todo.push(id);}};
|
|
95
|
+
for(let index=0;index<todo.length;index++){
|
|
96
|
+
const r=this.records.get(todo[index]);assert(r,'Protected archive record missing');
|
|
97
|
+
for(const id of r.groupReferenceIds??[])pin(id);
|
|
98
|
+
pin(r.result?.temporalReview?.waitAnchor?.evidenceId);
|
|
99
|
+
// Preserve the bounded original chain required to verify sparse temporal coverage.
|
|
100
|
+
if((!r.selected||!r.acknowledged)&&r.candidate.reviewContext?.temporalReviewContract?.groupedContinuity&&r.previousSelectedId){
|
|
101
|
+
pin(r.previousSelectedId);let id=r.previousCaptureId,walked=0;
|
|
102
|
+
while(id&&id!==r.previousSelectedId){assert(++walked<=128,'Archive coverage chain exceeds bounded window');pin(id);id=this.records.get(id).previousCaptureId;}
|
|
103
|
+
}
|
|
104
|
+
for(const scope of r.selected?[]:r.candidate.groupingShadow?.scopes??[]){
|
|
105
|
+
if(scope.referenceCapturedAtMs!==undefined){const id=this.groupReferences.get(this.referenceKey(scope.referenceCapturedAtMs,scope.referenceSha256,r.candidate.reviewContext));if(id)pin(id);}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
const rows=[];
|
|
109
|
+
for(const r of this.records.values()){
|
|
110
|
+
if(rows.length>=64)break;
|
|
111
|
+
if(pins.has(r.id)||r.selected&&!r.acknowledged||r.disposition==='awaiting_rule_decision'
|
|
112
|
+
||Math.max(r.capturedAt,r.acknowledgedAtCaptureMs??r.capturedAt)>at-this.archiveRetentionMs)continue;
|
|
113
|
+
rows.push(r);
|
|
114
|
+
}
|
|
115
|
+
if(!rows.length)return;
|
|
116
|
+
const remaining=new Map(this.records);for(const row of rows)remaining.delete(row.id);
|
|
117
|
+
this.lifecycle.retire(rows,remaining);
|
|
118
|
+
this.records=remaining;for(const row of rows)this.bytes-=row.imageBytes;
|
|
119
|
+
for(const[key,id]of this.groupReferences)if(!remaining.has(id))this.groupReferences.delete(key);
|
|
120
|
+
}
|
|
121
|
+
retainOrderedCapture(c) {
|
|
122
|
+
assert.equal(c.name,this.cameraId);assert(Number.isSafeInteger(c.enqueuedAtMs));assert(c.enqueuedAtMs>=this.lastAt,'Capture time moved backwards');
|
|
123
|
+
const digest=sha(c.jpeg),id=sha(Buffer.from(JSON.stringify([c.name,c.enqueuedAtMs,digest,c.reviewContext]))).slice(0,32);
|
|
124
|
+
if(fs.existsSync(this.file(id)))return;
|
|
125
|
+
this.reclaim(c.enqueuedAtMs);
|
|
126
|
+
if((this.lifecycle?this.records.size:this.counts.captures)>=this.maxCaptures || this.bytes+c.jpeg.length>this.maxBytes)throw Error('CAPTURE_STORAGE_EXHAUSTED: unresolved evidence retained; capture must pause visibly');
|
|
127
|
+
const reviewStage=this.reviewStage(c.enqueuedAtMs);assert(reviewStage===null||typeof reviewStage==='string');
|
|
128
|
+
const choice=this.chooseReview(c,digest,this.nextDue===null || c.enqueuedAtMs>=this.nextDue,reviewStage);const selected=choice.selected;
|
|
129
|
+
const r={version:1,id,cameraId:c.name,capturedAt:c.enqueuedAtMs,imageSha256:digest,imageBytes:c.jpeg.length,selected,reviewStage,
|
|
130
|
+
...choice,previousCaptureId:this.previousCaptureRecord?.id??null,previousSelectedId:this.previousSelectedRecord?.id??null,candidate:{...c,jpeg:undefined},result:null,acknowledged:false};
|
|
131
|
+
if(!fs.existsSync(this.image(r)))commit(this.image(r),c.jpeg);
|
|
132
|
+
commit(this.file(id),r);this.records.set(id,r);if(selected)this.entries.set(id,r);this.counts.captures++;if(selected)this.counts.selected++;if(reviewStage===null)this.counts.inactive++;if(r.disposition==='archived_grouped_unchanged')this.counts.grouped++;this.bytes+=c.jpeg.length;this.advance(r);
|
|
133
|
+
}
|
|
134
|
+
pendingOrderedCandidates(){
|
|
135
|
+
const available=this.offerWindow-this.queued.size;if(available<=0)return[];const out=[];
|
|
136
|
+
for(const r of this.entries.values()){
|
|
137
|
+
if(!r.selected||r.acknowledged||this.queued.has(r.id))continue;
|
|
138
|
+
out.push({...r.candidate,jpeg:fs.readFileSync(this.image(r)),retainedId:r.id,
|
|
139
|
+
reviewContext:{...r.candidate.reviewContext,retainedCapture:{version:1,id:r.id,kind:'retained_single_capture'}}});
|
|
140
|
+
if(out.length>=available)break;
|
|
141
|
+
}return out;
|
|
142
|
+
}
|
|
143
|
+
offered(c,result){if(result==='buffered'||result==='coalesced')this.queued.add(c.retainedId);}
|
|
144
|
+
flushOrderedCapture(){}
|
|
145
|
+
async prepare(request){
|
|
146
|
+
const r=this.entries.get(request.evidenceId)??(/^[a-f0-9]{32}$/.test(request.evidenceId)&&fs.existsSync(this.file(request.evidenceId))?JSON.parse(fs.readFileSync(this.file(request.evidenceId))):null);assert(r&&r.selected,'Unknown selected evidence');
|
|
147
|
+
assert.equal(request.capturedAt,r.capturedAt);assert.equal(sha(request.jpeg),r.imageSha256);
|
|
148
|
+
assert.deepEqual(this.baseContext(request.reviewContext),r.candidate.reviewContext,'Capture context changed');
|
|
149
|
+
const coverageCache=new Map();
|
|
150
|
+
const req={...request,reviewContext:r.candidate.reviewContext,temporalContinuityBreak:r.temporalContinuityBroken===true,resolveTemporalCoverage:contract=>{const key=JSON.stringify(contract);if(!coverageCache.has(key))coverageCache.set(key,resolveTemporalCoverage(this,r,contract));return coverageCache.get(key);},cachedAnalysis:request.cachedAnalysis??r.result,
|
|
151
|
+
checkpointAnalysis:result=>{const first=!r.result;r.result=result;commit(this.file(r.id),r);if(first)this.counts.reviewed++;request.checkpointAnalysis(result);}};
|
|
152
|
+
await reviewExecution.run({evidenceId:r.id,cameraId:r.cameraId},()=>this.client.reviewCandidate(req));assert(r.result,'No durable result');return {...req,cachedAnalysis:r.result};
|
|
153
|
+
}
|
|
154
|
+
async reviewCandidate(request){await this.prepare(request);}
|
|
155
|
+
async analyze(request){
|
|
156
|
+
const req=await this.prepare(request),response=await this.client.analyze(req);
|
|
157
|
+
if(response.ok&&response.body?.accepted===true&&response.body.evidenceId===request.evidenceId&&response.body.evidenceReview?.capturedAtMs===request.capturedAt){
|
|
158
|
+
await this.client.acknowledgeAcceptedReview?.(req);
|
|
159
|
+
const r=this.entries.get(request.evidenceId)??JSON.parse(fs.readFileSync(this.file(request.evidenceId)));const first=!r.acknowledged;r.acknowledged=true;r.acknowledgedAtCaptureMs=this.lastAt;r.disposition='reviewed_and_received';commit(this.file(r.id),r);this.records.set(r.id,r);if(first)this.counts.received++;this.queued.delete(r.id);this.entries.delete(r.id);
|
|
160
|
+
}return response;
|
|
161
|
+
}
|
|
162
|
+
stats(){const {captures,selected,reviewed,received,inactive,grouped}=this.counts;return{captures,selected,archivedProfileInactive:inactive,archivedBetweenReviews:captures-selected-inactive-grouped,archivedGroupedUnreviewed:grouped,reviewed,received,pending:this.entries.size,oldestPendingCapturedAt:this.entries.values().next().value?.capturedAt??null,logicalImageBytes:this.bytes,retainedCaptures:this.records.size,prunedCaptures:this.lifecycle?.state.pruned.captures??0};}
|
|
163
|
+
}
|
|
164
|
+
module.exports={RetainedCaptureClient,reviewExecution};
|