@trillboards/edge-sdk 0.2.140 → 0.2.151
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 +149 -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 +110 -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 +59 -14
- 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,4 +1,7 @@
|
|
|
1
1
|
import type { VlmCandidate, VlmCandidateBufferStats, VlmCandidateOfferResult } from './VlmCandidateBuffer';
|
|
2
|
+
import { type UrgentTriagePolicy, type UrgentTriageResult } from './UrgentReviewTriage';
|
|
3
|
+
import { type ProfileReviewWork, type ProfileWorkResult } from './ProfileReviewWork';
|
|
4
|
+
export type CandidateStage = 'review' | 'delivery';
|
|
2
5
|
export interface DurableVlmCandidateSpoolOptions {
|
|
3
6
|
directory: string;
|
|
4
7
|
maxFrames?: number;
|
|
@@ -7,6 +10,18 @@ export interface DurableVlmCandidateSpoolOptions {
|
|
|
7
10
|
episodeGapMs?: number;
|
|
8
11
|
maxBytes?: number;
|
|
9
12
|
retentionMs?: number;
|
|
13
|
+
/** Opt-in continuous review. Freshness no longer deletes durable evidence. */
|
|
14
|
+
reviewWindowMs?: number;
|
|
15
|
+
reuseExactPendingImages?: boolean;
|
|
16
|
+
reuseExactRecentImages?: boolean;
|
|
17
|
+
/** Opt-in raw-archive workflow: pending archived originals must remain reviewable.
|
|
18
|
+
* The existing count/byte limits still apply; this does not enlarge the queue.
|
|
19
|
+
*/
|
|
20
|
+
preserveArchivedPending?: boolean;
|
|
21
|
+
/** Default off. Continuous-review experiments only. */
|
|
22
|
+
priorityScheduling?: boolean;
|
|
23
|
+
/** Validated by the loopback manager. Does not change final field ownership. */
|
|
24
|
+
urgentTriagePolicies?: Readonly<Record<string, UrgentTriagePolicy>>;
|
|
10
25
|
retryInitialMs?: number;
|
|
11
26
|
retryMaxMs?: number;
|
|
12
27
|
now?: () => number;
|
|
@@ -20,6 +35,7 @@ export interface DurableVlmCandidateSpoolStats extends VlmCandidateBufferStats {
|
|
|
20
35
|
writeFailed: number;
|
|
21
36
|
readFailed: number;
|
|
22
37
|
deleteFailed: number;
|
|
38
|
+
reusePrepared: number;
|
|
23
39
|
}
|
|
24
40
|
/**
|
|
25
41
|
* Disk-backed hold for motion-positive frames waiting on the local VLM.
|
|
@@ -45,6 +61,22 @@ export declare class DurableVlmCandidateSpool {
|
|
|
45
61
|
private readonly episodeGapMs;
|
|
46
62
|
private readonly maxBytes;
|
|
47
63
|
private readonly retentionMs;
|
|
64
|
+
private readonly reviewWindowMs;
|
|
65
|
+
private readonly reuseExactPendingImages;
|
|
66
|
+
private readonly reuseExactRecentImages;
|
|
67
|
+
private readonly priorityScheduling;
|
|
68
|
+
private readonly urgentTriagePolicies;
|
|
69
|
+
private readonly triageEligible;
|
|
70
|
+
private readonly triageFinished;
|
|
71
|
+
private readonly triagePositive;
|
|
72
|
+
private readonly triageOrder;
|
|
73
|
+
private triageTick;
|
|
74
|
+
private priorityTurns;
|
|
75
|
+
private deliveryPriorityTurns;
|
|
76
|
+
private readonly recentAnswers;
|
|
77
|
+
private reusePrepared;
|
|
78
|
+
private readonly preserveArchivedPending;
|
|
79
|
+
private capacityRejected;
|
|
48
80
|
private readonly retryInitialMs;
|
|
49
81
|
private readonly retryMaxMs;
|
|
50
82
|
private readonly now;
|
|
@@ -52,6 +84,8 @@ export declare class DurableVlmCandidateSpool {
|
|
|
52
84
|
private readonly inFlight;
|
|
53
85
|
private readonly serveOrder;
|
|
54
86
|
private serveTick;
|
|
87
|
+
private deliveryServeTick;
|
|
88
|
+
private readonly deliveryServeOrder;
|
|
55
89
|
private queued;
|
|
56
90
|
private persisted;
|
|
57
91
|
private persistedBytes;
|
|
@@ -82,24 +116,71 @@ export declare class DurableVlmCandidateSpool {
|
|
|
82
116
|
offer(candidate: Omit<VlmCandidate, 'enqueuedAtMs'> & {
|
|
83
117
|
enqueuedAtMs?: number;
|
|
84
118
|
}, nowMs?: number): VlmCandidateOfferResult;
|
|
85
|
-
peek(nowMs?: number): VlmCandidate | null;
|
|
86
|
-
take(nowMs?: number): VlmCandidate | null;
|
|
119
|
+
peek(nowMs?: number, stage?: CandidateStage, accept?: (candidate: VlmCandidate) => boolean): VlmCandidate | null;
|
|
120
|
+
take(nowMs?: number, stage?: CandidateStage, accept?: (candidate: VlmCandidate) => boolean): VlmCandidate | null;
|
|
87
121
|
/** Delete evidence only after analysis and server ingest were accepted. */
|
|
88
122
|
complete(candidate: VlmCandidate): void;
|
|
123
|
+
/** Commit a model result before upload, so network retries do not repeat inference. */
|
|
124
|
+
checkpoint(candidate: VlmCandidate, result: Record<string, unknown>): void;
|
|
125
|
+
/** Partial scope work uses the already reserved result budget, never upload eligibility. */
|
|
126
|
+
checkpointScopedReview(candidate: VlmCandidate, progress: import('./ScopedVlmReview').ScopedVlmProgress): void;
|
|
127
|
+
/** Revalidate group references against committed evidence, then commit the job selection. */
|
|
128
|
+
prepareProfileWork(candidate: VlmCandidate): ProfileReviewWork;
|
|
129
|
+
/** Rehearsal output is never cachedAnalysis and cannot become a delivery job. */
|
|
130
|
+
checkpointProfileWork(candidate: VlmCandidate, result: ProfileWorkResult): void;
|
|
131
|
+
private resolveProfileWork;
|
|
132
|
+
/** Read-only test/audit surface; no reference is exposed before writePair commits. */
|
|
133
|
+
inspectProfileWork(name: string, capturedAtMs: number, sha256: string): {
|
|
134
|
+
evidenceId: string;
|
|
135
|
+
work: ProfileReviewWork;
|
|
136
|
+
} | null;
|
|
137
|
+
/** A raw archive ID names this receipt, not a different visual question.
|
|
138
|
+
* Keep all selected IDs and original timestamps; share only the exact answer.
|
|
139
|
+
* Temporal/ordered observations still have no answer-reuse permission.
|
|
140
|
+
*/
|
|
141
|
+
private exactAnswerContext;
|
|
142
|
+
private rememberDirectAnswer;
|
|
143
|
+
private exactRecentAnswer;
|
|
144
|
+
/**
|
|
145
|
+
* Share a completed answer, never discard a visually similar frame. Every
|
|
146
|
+
* recipient remains a separate durable candidate until its own receiver ack.
|
|
147
|
+
* This pending-only path excludes future captures, and profile/camera boundaries
|
|
148
|
+
* are never crossed. A changed JPEG, however small the change, is ineligible.
|
|
149
|
+
*/
|
|
150
|
+
private prepareExactPendingAnswers;
|
|
151
|
+
/** Move a committed answer to the independent delivery lane. */
|
|
152
|
+
readyForDelivery(candidate: VlmCandidate): void;
|
|
89
153
|
/** Keep the same evidence and retry it after bounded exponential backoff. */
|
|
90
154
|
retry(candidate: VlmCandidate, nowMs?: number): void;
|
|
155
|
+
/**
|
|
156
|
+
* Retry a saved answer after a short connectivity probe interval. The manager
|
|
157
|
+
* shares this pause across its single upload lane, so a large offline queue
|
|
158
|
+
* cannot turn one connection failure into one request per saved image.
|
|
159
|
+
*/
|
|
160
|
+
retryDelivery(candidate: VlmCandidate, nowMs?: number): number;
|
|
161
|
+
private requeue;
|
|
91
162
|
expire(nowMs?: number): number;
|
|
92
163
|
oldestAgeMs(nowMs?: number): number | null;
|
|
93
164
|
getStats(nowMs?: number): DurableVlmCandidateSpoolStats;
|
|
165
|
+
/** One read-only advisory look. It never takes/removes a review or reserves a GPU slot. */
|
|
166
|
+
nextTriage(): {
|
|
167
|
+
candidate: VlmCandidate;
|
|
168
|
+
policy: UrgentTriagePolicy;
|
|
169
|
+
} | null;
|
|
170
|
+
checkpointTriage(result: UrgentTriageResult): boolean;
|
|
171
|
+
private restoreTriage;
|
|
94
172
|
private clearQueuedState;
|
|
95
173
|
private ensureDirectory;
|
|
96
174
|
private recover;
|
|
97
175
|
private validRecord;
|
|
98
176
|
private writePair;
|
|
177
|
+
private entryBytes;
|
|
178
|
+
private writeFile;
|
|
99
179
|
private writeMetadata;
|
|
100
180
|
private asCandidate;
|
|
101
181
|
private feedQueue;
|
|
102
182
|
private sortFeed;
|
|
183
|
+
private reviewComplete;
|
|
103
184
|
private nextEligible;
|
|
104
185
|
private evictFromFullestFeed;
|
|
105
186
|
private evictOldestOf;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DurableVlmCandidateSpool.d.ts","sourceRoot":"","sources":["../src/DurableVlmCandidateSpool.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,YAAY,EACZ,uBAAuB,EAEvB,uBAAuB,EACxB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"DurableVlmCandidateSpool.d.ts","sourceRoot":"","sources":["../src/DurableVlmCandidateSpool.ts"],"names":[],"mappings":"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"}
|