@trillboards/edge-sdk 0.2.40 → 0.2.41

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.
Files changed (82) hide show
  1. package/README.md +1 -1
  2. package/deploy/docker/{Dockerfile.cloud-sense → Dockerfile.connector} +52 -39
  3. package/deploy/docker/README.md +73 -1
  4. package/deploy/docker/connector-entrypoint.sh +46 -80
  5. package/deploy/macos/README.md +1 -1
  6. package/deploy/macos/test-install-pair.sh +9 -9
  7. package/deploy/systemd/install.sh +16 -1
  8. package/deploy/systemd/setup-litertlm.sh +201 -0
  9. package/deploy/systemd/trillboards-edge.service +8 -4
  10. package/deploy/systemd/trillboards-litertlm.service +46 -0
  11. package/deploy/windows/register-task.ps1 +6 -3
  12. package/deploy/windows/run-connector.ps1 +1 -1
  13. package/deploy/windows/trillboards-edge-task.vbs +5 -1
  14. package/dist/CloudSensingManager.d.ts +45 -19
  15. package/dist/CloudSensingManager.d.ts.map +1 -1
  16. package/dist/CloudSensingManager.js +89 -46
  17. package/dist/CloudSensingManager.js.map +1 -1
  18. package/dist/EdgeAgent.js +1 -1
  19. package/dist/SensingProfileClient.d.ts +9 -0
  20. package/dist/SensingProfileClient.d.ts.map +1 -1
  21. package/dist/SensingProfileClient.js +4 -0
  22. package/dist/SensingProfileClient.js.map +1 -1
  23. package/dist/SetupSessionClient.d.ts +0 -1
  24. package/dist/SetupSessionClient.d.ts.map +1 -1
  25. package/dist/autoSense.d.ts +42 -31
  26. package/dist/autoSense.d.ts.map +1 -1
  27. package/dist/autoSense.js +127 -99
  28. package/dist/autoSense.js.map +1 -1
  29. package/dist/cli.d.ts.map +1 -1
  30. package/dist/cli.js +25 -84
  31. package/dist/cli.js.map +1 -1
  32. package/dist/combinedSense.d.ts +1 -3
  33. package/dist/combinedSense.d.ts.map +1 -1
  34. package/dist/combinedSense.js +0 -1
  35. package/dist/combinedSense.js.map +1 -1
  36. package/dist/config.d.ts +17 -64
  37. package/dist/config.d.ts.map +1 -1
  38. package/dist/config.js +0 -10
  39. package/dist/config.js.map +1 -1
  40. package/dist/deployedCadence.d.ts +37 -75
  41. package/dist/deployedCadence.d.ts.map +1 -1
  42. package/dist/deployedCadence.js +45 -105
  43. package/dist/deployedCadence.js.map +1 -1
  44. package/dist/deployedCadenceSource.d.ts +0 -2
  45. package/dist/deployedCadenceSource.d.ts.map +1 -1
  46. package/dist/deployedCadenceSource.js +0 -1
  47. package/dist/deployedCadenceSource.js.map +1 -1
  48. package/dist/diagnose.d.ts +1 -1
  49. package/dist/diagnose.js +1 -1
  50. package/dist/index.d.ts +0 -3
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +1 -8
  53. package/dist/index.js.map +1 -1
  54. package/dist/localInferenceSchema.d.ts +19 -0
  55. package/dist/localInferenceSchema.d.ts.map +1 -1
  56. package/dist/localInferenceSchema.js +23 -0
  57. package/dist/localInferenceSchema.js.map +1 -1
  58. package/dist/localSensing.d.ts +48 -107
  59. package/dist/localSensing.d.ts.map +1 -1
  60. package/dist/localSensing.js +80 -171
  61. package/dist/localSensing.js.map +1 -1
  62. package/dist/sensingCatchRate.d.ts +246 -0
  63. package/dist/sensingCatchRate.d.ts.map +1 -0
  64. package/dist/sensingCatchRate.js +514 -0
  65. package/dist/sensingCatchRate.js.map +1 -0
  66. package/dist/sensingRunMode.d.ts +14 -11
  67. package/dist/sensingRunMode.d.ts.map +1 -1
  68. package/dist/sensingRunMode.js +9 -92
  69. package/dist/sensingRunMode.js.map +1 -1
  70. package/dist/setupMode.d.ts +0 -1
  71. package/dist/setupMode.d.ts.map +1 -1
  72. package/dist/setupMode.js +5 -3
  73. package/dist/setupMode.js.map +1 -1
  74. package/dist/startupDiscovery.d.ts +43 -0
  75. package/dist/startupDiscovery.d.ts.map +1 -0
  76. package/dist/startupDiscovery.js +72 -0
  77. package/dist/startupDiscovery.js.map +1 -0
  78. package/package.json +1 -1
  79. package/dist/CloudEscalationPolicy.d.ts +0 -143
  80. package/dist/CloudEscalationPolicy.d.ts.map +0 -1
  81. package/dist/CloudEscalationPolicy.js +0 -137
  82. package/dist/CloudEscalationPolicy.js.map +0 -1
@@ -65,6 +65,7 @@
65
65
  * on the preAnalyzed ingest path (gated OUT of the sold bidstream).
66
66
  */
67
67
  Object.defineProperty(exports, "__esModule", { value: true });
68
+ exports.DEFAULT_SCENE_FIELD_KEYS = void 0;
68
69
  exports.buildLocalSensingSchema = buildLocalSensingSchema;
69
70
  exports.buildLocalSensingPrompt = buildLocalSensingPrompt;
70
71
  /**
@@ -99,6 +100,28 @@ const AUDIENCE_FIELD_ORDER = [
99
100
  'people_present',
100
101
  'confidence',
101
102
  ];
103
+ /**
104
+ * Every field key the SDK itself puts in the schema — the union of the presence
105
+ * primitives and the DOOH audience block, whichever field set a profile resolves to.
106
+ *
107
+ * These are the SCENE-OCCUPANCY vocabulary: each one describes the people in front of
108
+ * the camera (or the frame as a whole), and each reads its own "nobody here" value on an
109
+ * empty scene — `person_count: 0`, `people_present: false`, `crowd_density: 'empty'`,
110
+ * `audience_intent_stage: 'none'`. The 'none'/'empty'/'unknown' members are the SDK's own
111
+ * invention (see DEFAULT_FIELD_PROPS: enums that had no "no people" member in the cloud
112
+ * contract were GIVEN one so the model never has to emit null), which is exactly why an
113
+ * empty reading here means "the scene is empty" and nothing more.
114
+ *
115
+ * `localSensing.isAlertWorthy` uses this as the privacy FLOOR: an operator's route may
116
+ * make the absence of their own subject alert-worthy, but it can never do so for these —
117
+ * a blank-room frame is the harm the evidence gate exists to prevent, and no route
118
+ * condition may unlock it. Exported (rather than re-listed in localSensing) so the gate
119
+ * and the schema builder can never drift apart on what counts as a scene field.
120
+ */
121
+ exports.DEFAULT_SCENE_FIELD_KEYS = new Set([
122
+ ...PRESENCE_PRIMITIVE_ORDER,
123
+ ...AUDIENCE_FIELD_ORDER,
124
+ ]);
102
125
  /**
103
126
  * The property spec for every DEFAULT field, declared ONCE. `buildLocalSensingSchema`
104
127
  * composes a field set out of this table rather than forking into two builders.
@@ -1 +1 @@
1
- {"version":3,"file":"localInferenceSchema.js","sourceRoot":"","sources":["../src/localInferenceSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"localInferenceSchema.js","sourceRoot":"","sources":["../src/localInferenceSchema.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,6 @@ import { SensingProfileClient } from './SensingProfileClient';
5
5
  import { type ResolvedFeed, type SensingClient, type SensingLoopDeps } from './CloudSensingManager';
6
6
  import type { SharedFrameSource } from './MosaicSource';
7
7
  import { type LocalSchemaFieldSet } from './localInferenceSchema';
8
- import { type CloudEscalationPolicyOptions, type CloudEscalationStats } from './CloudEscalationPolicy';
9
8
  import type { EdgeAgentConfig } from './config';
10
9
  /**
11
10
  * Map a deployed profile's SELF-DESCRIBING type to the on-device field set.
@@ -43,30 +42,6 @@ export interface LocalSensingClientOptions {
43
42
  * isAlertWorthy(). Default: true.
44
43
  */
45
44
  attachEvidenceFrame?: boolean;
46
- /**
47
- * Per-frame resilience: when ON-DEVICE inference THROWS for a single frame,
48
- * POST that frame to the CLOUD VLM (uploadClient.analyze) instead of losing it.
49
- * Reuses the SAME upload client (no new provider). Opt-in (default false) so
50
- * the plain local-sense path is unchanged; auto-sense's local branch enables it.
51
- */
52
- cloudFallbackOnError?: boolean;
53
- /**
54
- * Confidence-based CLOUD ESCALATION (Phase 6d). When the on-device model
55
- * flags a CANDIDATE — a frame carrying real signal, judged by the SAME
56
- * `isAlertWorthy` gate that governs the evidence frame — send THAT ONE frame
57
- * to the cloud VLM for adjudication instead of shipping the local verdict.
58
- *
59
- * Distinct from `cloudFallbackOnError` (a per-frame degrade when local
60
- * inference THROWS) and from `EdgeAgentConfig.localSensing.allowCloudFallback`
61
- * (a whole-mode switch when the local runtime is unavailable). Those two reach
62
- * for the cloud because the local path is BROKEN; this one because the local
63
- * path WORKED and its judgement is worth confirming.
64
- *
65
- * Off unless `enabled: true` — see CloudEscalationPolicy.
66
- */
67
- cloudEscalation?: CloudEscalationPolicyOptions;
68
- /** Feed label used only in the escalation log line. */
69
- feedName?: string;
70
45
  }
71
46
  /**
72
47
  * Decide whether an on-device result is potentially ALERT-WORTHY — the gate that
@@ -90,46 +65,30 @@ export interface LocalSensingClientOptions {
90
65
  * Non-discriminative keys (source, captured_at, confidence, scene_description)
91
66
  * are ignored — see NON_DISCRIMINATIVE_KEYS for why.
92
67
  *
93
- * KNOWN BOUNDARY (deliberate privacy tradeoff): a route that alerts on ABSENCE
94
- * — `person_count lte 0`, `people_present eq false`, `shelf_state eq "empty"` —
95
- * fires on a genuinely empty scene, which this gate suppresses by design (a
96
- * blank-room frame is exactly the privacy harm the gate exists to prevent). The
97
- * server owns the route predicates and can request a frame for those routes;
98
- * operators who want every frame can disable the gate (attachEvidenceFrame).
99
- */
100
- export declare function isAlertWorthy(result: Record<string, unknown>): boolean;
101
- /**
102
- * A stable fingerprint of the ALERT-BEARING state of one result — "has the
103
- * operator-visible situation changed?" in one comparable string.
68
+ * ABSENCE (`absenceWatchedFields`) — the empty-shelf half. The rule above answers
69
+ * "is anything HERE?", which is the right question for people and the WRONG one for
70
+ * stock: "the shelf is empty" is a positive finding about a subject that IS in frame,
71
+ * and the operator asked to be told about it. So a field named in `absenceWatchedFields`
72
+ * flips: its EMPTY reading (`shelf_state: 'empty'`, `stock_level: 0`,
73
+ * `product_available: false`, `[]`, `{}`) counts as signal.
104
74
  *
105
- * Built from EXACTLY the keys `isAlertWorthy` judges (NON_DISCRIMINATIVE_KEYS
106
- * excluded), so the two can never drift: the same fields that decide whether a
107
- * frame carries signal decide whether that signal is NEW. Keys are sorted so
108
- * the model's property order cannot manufacture a change, and values are
109
- * compared as emitted — a `queue_length` of 3 and of 4 are genuinely different
110
- * facts and an operator route may key on exactly that boundary, so this
111
- * deliberately does NOT bucket numbers into invented bands.
75
+ * That set is not guessed from the field's spelling and is not an allowlist of stock
76
+ * words. The server derives it per screen from the operator's OWN saved route
77
+ * conditions — a field is in it only when an enabled route would actually FIRE on that
78
+ * field's empty reading (`shelf_state eq 'empty'`). So `smoking_activity_detected: false`
79
+ * on an empty scene stays suppressed, because no route targets its absence, and a
80
+ * profile with no absence-targeting route behaves byte-for-byte as before.
112
81
  *
113
- * Used by CloudEscalationPolicy's novelty bound: an unchanged signature means a
114
- * verdict the cloud has already adjudicated, so the frame stays on-premises.
82
+ * The privacy FLOOR is unconditional: `DEFAULT_SCENE_FIELD_KEYS` — the presence
83
+ * primitives and the DOOH audience block, i.e. every field whose subject IS the people
84
+ * in front of the camera — can NEVER be unlocked this way, even by a route that
85
+ * explicitly targets them (`person_count lte 0`). Absence of PEOPLE is the blank-room
86
+ * frame the gate exists to prevent; absence of STOCK is the operator's finding. That is
87
+ * the whole distinction, and it is enforced structurally rather than by tuning.
88
+ * Operators who want every frame regardless can still disable the gate
89
+ * (attachEvidenceFrame).
115
90
  */
116
- export declare function alertSignature(result: Record<string, unknown>): string;
117
- /**
118
- * Is cloud escalation actually ON for this local-sensing configuration?
119
- *
120
- * TWO settings decide it, and this is the ONLY place that combines them:
121
- * `cloudEscalation.enabled` opts in, and `attachEvidenceFrame: false` — the
122
- * operator's "no frame ever leaves this machine" switch — outranks it, because
123
- * escalation sends a frame. `LocalSensingClient` enforces the rule and the
124
- * startup banner reports it; they must read the same expression or the banner
125
- * will one day claim an egress posture the client is not running.
126
- */
127
- export declare function isCloudEscalationEnabled(options: {
128
- attachEvidenceFrame?: boolean;
129
- cloudEscalation?: {
130
- enabled?: boolean;
131
- };
132
- } | null | undefined): boolean;
91
+ export declare function isAlertWorthy(result: Record<string, unknown>, absenceWatchedFields?: ReadonlySet<string> | readonly string[]): boolean;
133
92
  /**
134
93
  * LocalSensingClient — the SensingClient the cadence loop uses in LOCAL mode.
135
94
  * It runs the VLM ON-DEVICE (LiteRtVlmProvider — Gemma 4 on LiteRT-LM via
@@ -153,33 +112,26 @@ export declare function isCloudEscalationEnabled(options: {
153
112
  * gating local-inferred data out of the sold bidstream while still firing the
154
113
  * operator's Sense-Anything routes.
155
114
  *
156
- * ── CLOUD ESCALATION (opt-in, Phase 6d) ─────────────────────────────────────
157
- * Local Gemma is the always-on gate; the CLOUD is the judge for the frames it
158
- * flags. When `cloudEscalation.enabled` and the policy admits this frame, the
159
- * SAME JPEG is POSTed through the SAME upload client's `analyze()` — the cloud
160
- * path the connector already owns — and the cloud VLM's verdict becomes the
161
- * observation. Three properties are load-bearing:
115
+ * ── THERE IS NO CLOUD PATH ─────────────────────────────────────────────────
116
+ * This client once had three doors to the cloud VLM: `cloudFallbackOnError` (a
117
+ * per-frame degrade when local inference threw), `cloudEscalation` (Phase 6d —
118
+ * local Gemma gates, the cloud adjudicates the candidates it flags), and the
119
+ * whole-mode `allowCloudFallback` in auto-sense. All three are gone, and this
120
+ * supersedes the escalation architecture from #11971 ("local Gemma decides
121
+ * *when* to look, the cloud decides *what* it saw").
162
122
  *
163
- * 1. ONE FRAME, ONE OBSERVATION. An escalated frame does NOT also post its
164
- * local `preAnalyzed` result. Posting both would double-count the same
165
- * physical frame and put two verdicts for one moment in the stream —
166
- * exactly the dual write the codebase forbids. The cloud verdict
167
- * supersedes; the local one was a sampling decision, not a datum.
168
- * 2. NO PROVENANCE LAUNDERING. What lands is what the CLOUD inferred from a
169
- * real frame, so the server's normal cloud provenance is the truthful
170
- * stamp — identical to `cloud-sense` and to the existing
171
- * `cloudFallbackOnError` frame. Nothing the local model produced enters
172
- * that record, so `ingest_source='local_connector'` (which exists to keep
173
- * operator-forgeable structured input out of the sold bidstream) does not
174
- * apply and is not evaded: there IS no local structured input on this path.
175
- * 3. THE PRIVACY GATE IS UNCHANGED. Escalation reuses `isAlertWorthy`, so the
176
- * set of frames that can leave the premises is exactly the set that
177
- * already leaves as evidence photos — and `attachEvidenceFrame: false`
178
- * (the operator's "no frame ever leaves" switch) disables escalation
179
- * outright. An empty scene never escalates.
123
+ * The reason is arithmetic, not architecture. Measured 2026-08-12 over 255,812
124
+ * image-bearing cloud VLM calls: $0.007008 per analyzed frame. At a 30s cadence
125
+ * that is ~$605/camera/month, so a 16-camera store cost ~$9,688/month against a
126
+ * $99-500 subscription — about 10x underwater. Escalation narrowed WHICH frames
127
+ * went, and the earlier plan (plans/cctv-byo-sensing-plan.md:26) narrowed HOW
128
+ * OFTEN; neither changes the sign. A path that meters per frame does not belong
129
+ * in a flat-rate product, so the path is removed rather than rate-limited.
180
130
  *
181
- * A failed cloud call falls back to posting the local result, so an escalation
182
- * can degrade the ACCURACY of one frame but can never LOSE it.
131
+ * What replaces it: nothing on the frame path. A frame the on-device runtime
132
+ * cannot analyze is dropped and the fault is surfaced (see the catch in
133
+ * `analyze`), and a connector with no usable runtime WAITS and beacons its
134
+ * `waiting` state rather than silently spending.
183
135
  */
184
136
  export declare class LocalSensingClient implements SensingClient {
185
137
  private readonly localProvider;
@@ -190,25 +142,22 @@ export declare class LocalSensingClient implements SensingClient {
190
142
  private readonly basePrompt;
191
143
  private cachedSchema;
192
144
  private cachedPrompt;
145
+ /**
146
+ * Fields whose ABSENT reading an operator route on this screen fires on, from the
147
+ * deployed profile (see SensingProfileClient.absenceWatchedFields). Refreshed on the
148
+ * SAME cadence as the schema, because a route saved after the last poll must not be
149
+ * able to change the gate before the model is even emitting its field. Empty until a
150
+ * profile fetch succeeds, so the gate's default is the strict pre-existing behavior.
151
+ */
152
+ private cachedAbsenceWatchedFields;
193
153
  private lastProfileFetchMs;
194
154
  /** Send the analyzed JPEG (gated to alert-worthy frames) as evidence. Default true. */
195
155
  private readonly attachEvidenceFrame;
196
- /** On a local-inference throw, POST that one frame to the cloud VLM. Default false. */
197
- private readonly cloudFallbackOnError;
198
- /**
199
- * Rate/novelty bound on cloud escalation for THIS feed. Per-client (not
200
- * global) on purpose: the budget an operator reasons about is "per camera",
201
- * and one busy camera must not spend a quiet one's confirmations.
202
- */
203
- private readonly escalationPolicy;
204
- /** Feed label for the escalation log line. */
205
- private readonly feedName;
206
156
  /**
207
157
  * Frames the ON-DEVICE runtime actually produced a result for.
208
158
  *
209
159
  * Counted at the one place that knows — immediately after `localProvider
210
- * .analyze()` RETURNS — so a `cloudFallbackOnError` frame (local threw, the
211
- * cloud answered) and an escalated frame are both excluded. `auto-sense`
160
+ * .analyze()` RETURNS. `auto-sense`
212
161
  * reads this through `getSensingHealth().localInferences` as the only
213
162
  * positive proof that a `litert-lm serve` too busy to answer `/v1/models` is
214
163
  * busy rather than dead; a counter that a cloud call could advance would make
@@ -244,14 +193,6 @@ export declare class LocalSensingClient implements SensingClient {
244
193
  * log-diving. See LiteRtVlmProvider.getAcceleratorHealth.
245
194
  */
246
195
  getAcceleratorHealth(): LiteRtAcceleratorHealth;
247
- /**
248
- * Cloud-escalation counters for this feed — how many candidate frames were
249
- * adjudicated by the cloud VLM, and why the rest were not. Read by
250
- * `CloudSensingManager.getSensingHealth()` so escalation shows up on the
251
- * operator's periodic capacity line: sending frames off-premises must be
252
- * VISIBLE, not merely documented.
253
- */
254
- getEscalationStats(): CloudEscalationStats;
255
196
  /** Frames the on-device runtime produced a result for. See the field docs. */
256
197
  getLocalInferenceStats(): {
257
198
  completed: number;
@@ -1 +1 @@
1
- {"version":3,"file":"localSensing.d.ts","sourceRoot":"","sources":["../src/localSensing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"localSensing.d.ts","sourceRoot":"","sources":["../src/localSensing.ts"],"names":[],"mappings":"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"}