@parentspath/shared-constants 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/sleep.d.ts +74 -0
- package/dist/sleep.d.ts.map +1 -0
- package/dist/sleep.js +146 -0
- package/dist/sleep.js.map +1 -0
- package/dist/validators/events.d.ts +60 -25
- package/dist/validators/events.d.ts.map +1 -1
- package/dist/validators/events.js +18 -7
- package/dist/validators/events.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./constants"), exports);
|
|
18
18
|
__exportStar(require("./validators/events"), exports);
|
|
19
|
+
__exportStar(require("./sleep"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,sDAAoC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,sDAAoC;AACpC,0CAAwB"}
|
package/dist/sleep.d.ts
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sleep disturbance filtering — the logic that turns a flood of raw sensor
|
|
3
|
+
* readings into the handful of human-meaningful stirs a parent (and the LLM)
|
|
4
|
+
* actually cares about.
|
|
5
|
+
*
|
|
6
|
+
* Producer: Sleepy Sounds ingestion calls `filterDisturbances()` on its raw
|
|
7
|
+
* candidates and emits only the survivors as `sleep_disturbance` events.
|
|
8
|
+
* Consumer: any app calls `summarizeSleepNight()` to render a session + its
|
|
9
|
+
* disturbances into one LLM-ready sentence.
|
|
10
|
+
*
|
|
11
|
+
* See parents-apps/docs/data-architecture/04-decisions.md
|
|
12
|
+
* § "sleep_disturbance — significance filtering and per-session cap".
|
|
13
|
+
*/
|
|
14
|
+
/** Audio peak this many dB over the night's noise floor → candidate. */
|
|
15
|
+
export declare const DISTURBANCE_AUDIO_OVER_FLOOR_DB = 15;
|
|
16
|
+
/** Normalized motion (0–1) at/above this → candidate. */
|
|
17
|
+
export declare const DISTURBANCE_MOTION_INDEX = 0.3;
|
|
18
|
+
/** A candidate must persist at least this long to count. */
|
|
19
|
+
export declare const DISTURBANCE_MIN_SUSTAIN_SEC = 30;
|
|
20
|
+
/** Candidates within this many minutes merge into one. */
|
|
21
|
+
export declare const DISTURBANCE_MERGE_WINDOW_MIN = 5;
|
|
22
|
+
/** Never emit more than this many disturbances per session. */
|
|
23
|
+
export declare const DISTURBANCE_PER_SESSION_CAP = 8;
|
|
24
|
+
/** Audio peak this many dB over floor → `significant` (vs `minor`). */
|
|
25
|
+
export declare const DISTURBANCE_SIGNIFICANT_OVER_FLOOR_DB = 25;
|
|
26
|
+
/** Duration (min) at/above which a disturbance is `significant`. */
|
|
27
|
+
export declare const DISTURBANCE_SIGNIFICANT_MIN = 2;
|
|
28
|
+
export type DisturbanceType = 'stir' | 'wake' | 'cry' | 'noise';
|
|
29
|
+
export type DisturbanceIntensity = 'minor' | 'significant';
|
|
30
|
+
/** Raw candidate as produced by the sensor ingestion (pre-filter). */
|
|
31
|
+
export interface RawDisturbanceCandidate {
|
|
32
|
+
offset_min: number;
|
|
33
|
+
type: DisturbanceType;
|
|
34
|
+
duration_sec: number;
|
|
35
|
+
audio_peak_db: number;
|
|
36
|
+
motion_index?: number;
|
|
37
|
+
ended_session?: boolean;
|
|
38
|
+
}
|
|
39
|
+
/** A filtered, classified disturbance ready to become a sleep_disturbance event. */
|
|
40
|
+
export interface ClassifiedDisturbance {
|
|
41
|
+
offset_min: number;
|
|
42
|
+
type: DisturbanceType;
|
|
43
|
+
duration_min: number;
|
|
44
|
+
intensity: DisturbanceIntensity;
|
|
45
|
+
audio_peak_db: number;
|
|
46
|
+
motion_index: number;
|
|
47
|
+
}
|
|
48
|
+
/** Does this raw candidate clear the candidate gate (loud OR moving enough, long enough)? */
|
|
49
|
+
export declare function isDisturbanceCandidate(c: RawDisturbanceCandidate, noiseFloorDb: number): boolean;
|
|
50
|
+
/** minor vs significant. */
|
|
51
|
+
export declare function classifyIntensity(c: RawDisturbanceCandidate, noiseFloorDb: number): DisturbanceIntensity;
|
|
52
|
+
/**
|
|
53
|
+
* The full pipeline: gate → merge bursts → cap → classify.
|
|
54
|
+
* Returns the disturbances worth persisting, in chronological order.
|
|
55
|
+
*/
|
|
56
|
+
export declare function filterDisturbances(candidates: RawDisturbanceCandidate[], noiseFloorDb: number): ClassifiedDisturbance[];
|
|
57
|
+
/** `sleep_session.wake_count` = emitted disturbances of type wake|cry. */
|
|
58
|
+
export declare function deriveWakeCount(disturbances: Pick<ClassifiedDisturbance, 'type'>[]): number;
|
|
59
|
+
export interface SleepNightSummaryInput {
|
|
60
|
+
started_at: string;
|
|
61
|
+
ended_at: string;
|
|
62
|
+
duration_min: number;
|
|
63
|
+
quality: string;
|
|
64
|
+
period?: string;
|
|
65
|
+
disturbances: Pick<ClassifiedDisturbance, 'offset_min' | 'type' | 'intensity' | 'audio_peak_db' | 'duration_min'>[];
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* One human sentence describing a sleep and its disturbances — the exact form
|
|
69
|
+
* injected into the LLM consult prompt.
|
|
70
|
+
* "Nap 14:00–15:30 (1h 30m, good) — significant stir at 0:23 (68dB, 2m),
|
|
71
|
+
* woke at 0:57."
|
|
72
|
+
*/
|
|
73
|
+
export declare function summarizeSleepNight(s: SleepNightSummaryInput): string;
|
|
74
|
+
//# sourceMappingURL=sleep.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sleep.d.ts","sourceRoot":"","sources":["../src/sleep.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,wEAAwE;AACxE,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAClD,yDAAyD;AACzD,eAAO,MAAM,wBAAwB,MAAO,CAAC;AAC7C,4DAA4D;AAC5D,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAC9C,0DAA0D;AAC1D,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,+DAA+D;AAC/D,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAC7C,uEAAuE;AACvE,eAAO,MAAM,qCAAqC,KAAK,CAAC;AACxD,oEAAoE;AACpE,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;AAChE,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,aAAa,CAAC;AAE3D,sEAAsE;AACtE,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,eAAe,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,oFAAoF;AACpF,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,eAAe,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,oBAAoB,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,6FAA6F;AAC7F,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAKhG;AAED,4BAA4B;AAC5B,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,GAAG,oBAAoB,CAMxG;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,uBAAuB,EAAE,EACrC,YAAY,EAAE,MAAM,GACnB,qBAAqB,EAAE,CA0CzB;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,EAAE,GAAG,MAAM,CAE3F;AAID,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,IAAI,CAAC,qBAAqB,EAAE,YAAY,GAAG,MAAM,GAAG,WAAW,GAAG,eAAe,GAAG,cAAc,CAAC,EAAE,CAAC;CACrH;AAkBD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,sBAAsB,GAAG,MAAM,CAoBrE"}
|
package/dist/sleep.js
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Sleep disturbance filtering — the logic that turns a flood of raw sensor
|
|
4
|
+
* readings into the handful of human-meaningful stirs a parent (and the LLM)
|
|
5
|
+
* actually cares about.
|
|
6
|
+
*
|
|
7
|
+
* Producer: Sleepy Sounds ingestion calls `filterDisturbances()` on its raw
|
|
8
|
+
* candidates and emits only the survivors as `sleep_disturbance` events.
|
|
9
|
+
* Consumer: any app calls `summarizeSleepNight()` to render a session + its
|
|
10
|
+
* disturbances into one LLM-ready sentence.
|
|
11
|
+
*
|
|
12
|
+
* See parents-apps/docs/data-architecture/04-decisions.md
|
|
13
|
+
* § "sleep_disturbance — significance filtering and per-session cap".
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.DISTURBANCE_SIGNIFICANT_MIN = exports.DISTURBANCE_SIGNIFICANT_OVER_FLOOR_DB = exports.DISTURBANCE_PER_SESSION_CAP = exports.DISTURBANCE_MERGE_WINDOW_MIN = exports.DISTURBANCE_MIN_SUSTAIN_SEC = exports.DISTURBANCE_MOTION_INDEX = exports.DISTURBANCE_AUDIO_OVER_FLOOR_DB = void 0;
|
|
17
|
+
exports.isDisturbanceCandidate = isDisturbanceCandidate;
|
|
18
|
+
exports.classifyIntensity = classifyIntensity;
|
|
19
|
+
exports.filterDisturbances = filterDisturbances;
|
|
20
|
+
exports.deriveWakeCount = deriveWakeCount;
|
|
21
|
+
exports.summarizeSleepNight = summarizeSleepNight;
|
|
22
|
+
// ── Thresholds (tune against real sensor data) ──────────────────────────────────
|
|
23
|
+
/** Audio peak this many dB over the night's noise floor → candidate. */
|
|
24
|
+
exports.DISTURBANCE_AUDIO_OVER_FLOOR_DB = 15;
|
|
25
|
+
/** Normalized motion (0–1) at/above this → candidate. */
|
|
26
|
+
exports.DISTURBANCE_MOTION_INDEX = 0.30;
|
|
27
|
+
/** A candidate must persist at least this long to count. */
|
|
28
|
+
exports.DISTURBANCE_MIN_SUSTAIN_SEC = 30;
|
|
29
|
+
/** Candidates within this many minutes merge into one. */
|
|
30
|
+
exports.DISTURBANCE_MERGE_WINDOW_MIN = 5;
|
|
31
|
+
/** Never emit more than this many disturbances per session. */
|
|
32
|
+
exports.DISTURBANCE_PER_SESSION_CAP = 8;
|
|
33
|
+
/** Audio peak this many dB over floor → `significant` (vs `minor`). */
|
|
34
|
+
exports.DISTURBANCE_SIGNIFICANT_OVER_FLOOR_DB = 25;
|
|
35
|
+
/** Duration (min) at/above which a disturbance is `significant`. */
|
|
36
|
+
exports.DISTURBANCE_SIGNIFICANT_MIN = 2;
|
|
37
|
+
/** Does this raw candidate clear the candidate gate (loud OR moving enough, long enough)? */
|
|
38
|
+
function isDisturbanceCandidate(c, noiseFloorDb) {
|
|
39
|
+
if (c.duration_sec < exports.DISTURBANCE_MIN_SUSTAIN_SEC)
|
|
40
|
+
return false;
|
|
41
|
+
const loud = c.audio_peak_db >= noiseFloorDb + exports.DISTURBANCE_AUDIO_OVER_FLOOR_DB;
|
|
42
|
+
const moving = (c.motion_index ?? 0) >= exports.DISTURBANCE_MOTION_INDEX;
|
|
43
|
+
return loud || moving;
|
|
44
|
+
}
|
|
45
|
+
/** minor vs significant. */
|
|
46
|
+
function classifyIntensity(c, noiseFloorDb) {
|
|
47
|
+
const durationMin = c.duration_sec / 60;
|
|
48
|
+
const loudEnough = c.audio_peak_db >= noiseFloorDb + exports.DISTURBANCE_SIGNIFICANT_OVER_FLOOR_DB;
|
|
49
|
+
const longEnough = durationMin >= exports.DISTURBANCE_SIGNIFICANT_MIN;
|
|
50
|
+
if (loudEnough || longEnough || c.ended_session)
|
|
51
|
+
return 'significant';
|
|
52
|
+
return 'minor';
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* The full pipeline: gate → merge bursts → cap → classify.
|
|
56
|
+
* Returns the disturbances worth persisting, in chronological order.
|
|
57
|
+
*/
|
|
58
|
+
function filterDisturbances(candidates, noiseFloorDb) {
|
|
59
|
+
// 1. Gate.
|
|
60
|
+
const gated = candidates
|
|
61
|
+
.filter((c) => isDisturbanceCandidate(c, noiseFloorDb))
|
|
62
|
+
.sort((a, b) => a.offset_min - b.offset_min);
|
|
63
|
+
// 2. Merge bursts within the merge window (keep strongest peak, sum durations,
|
|
64
|
+
// keep the "loudest" type, OR-in ended_session).
|
|
65
|
+
const merged = [];
|
|
66
|
+
for (const c of gated) {
|
|
67
|
+
const prev = merged[merged.length - 1];
|
|
68
|
+
if (prev && c.offset_min - prev.offset_min <= exports.DISTURBANCE_MERGE_WINDOW_MIN) {
|
|
69
|
+
prev.duration_sec += c.duration_sec;
|
|
70
|
+
prev.audio_peak_db = Math.max(prev.audio_peak_db, c.audio_peak_db);
|
|
71
|
+
prev.motion_index = Math.max(prev.motion_index ?? 0, c.motion_index ?? 0);
|
|
72
|
+
prev.ended_session = prev.ended_session || c.ended_session;
|
|
73
|
+
// upgrade type toward the more serious one
|
|
74
|
+
const rank = { noise: 0, stir: 1, cry: 2, wake: 3 };
|
|
75
|
+
if (rank[c.type] > rank[prev.type])
|
|
76
|
+
prev.type = c.type;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
merged.push({ ...c });
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// 3. Cap: keep the most intense N (by peak), then restore chronological order.
|
|
83
|
+
let capped = merged;
|
|
84
|
+
if (merged.length > exports.DISTURBANCE_PER_SESSION_CAP) {
|
|
85
|
+
capped = [...merged]
|
|
86
|
+
.sort((a, b) => b.audio_peak_db - a.audio_peak_db)
|
|
87
|
+
.slice(0, exports.DISTURBANCE_PER_SESSION_CAP)
|
|
88
|
+
.sort((a, b) => a.offset_min - b.offset_min);
|
|
89
|
+
}
|
|
90
|
+
// 4. Classify + shape.
|
|
91
|
+
return capped.map((c) => ({
|
|
92
|
+
offset_min: Math.round(c.offset_min),
|
|
93
|
+
type: c.type,
|
|
94
|
+
duration_min: Math.max(0, Math.round(c.duration_sec / 60)),
|
|
95
|
+
intensity: classifyIntensity(c, noiseFloorDb),
|
|
96
|
+
audio_peak_db: Math.round(c.audio_peak_db),
|
|
97
|
+
motion_index: Number((c.motion_index ?? 0).toFixed(2)),
|
|
98
|
+
}));
|
|
99
|
+
}
|
|
100
|
+
/** `sleep_session.wake_count` = emitted disturbances of type wake|cry. */
|
|
101
|
+
function deriveWakeCount(disturbances) {
|
|
102
|
+
return disturbances.filter((d) => d.type === 'wake' || d.type === 'cry').length;
|
|
103
|
+
}
|
|
104
|
+
function hm(iso) {
|
|
105
|
+
const d = new Date(iso);
|
|
106
|
+
return `${String(d.getHours()).padStart(2, '0')}:${String(d.getMinutes()).padStart(2, '0')}`;
|
|
107
|
+
}
|
|
108
|
+
function offsetClock(offsetMin) {
|
|
109
|
+
const h = Math.floor(offsetMin / 60);
|
|
110
|
+
const m = offsetMin % 60;
|
|
111
|
+
return `${h}:${String(m).padStart(2, '0')}`;
|
|
112
|
+
}
|
|
113
|
+
function durLabel(min) {
|
|
114
|
+
if (min < 60)
|
|
115
|
+
return `${min}m`;
|
|
116
|
+
const h = Math.floor(min / 60);
|
|
117
|
+
const m = min % 60;
|
|
118
|
+
return m === 0 ? `${h}h` : `${h}h ${m}m`;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* One human sentence describing a sleep and its disturbances — the exact form
|
|
122
|
+
* injected into the LLM consult prompt.
|
|
123
|
+
* "Nap 14:00–15:30 (1h 30m, good) — significant stir at 0:23 (68dB, 2m),
|
|
124
|
+
* woke at 0:57."
|
|
125
|
+
*/
|
|
126
|
+
function summarizeSleepNight(s) {
|
|
127
|
+
const label = s.period === 'night' ? 'Night sleep' : 'Nap';
|
|
128
|
+
const head = `${label} ${hm(s.started_at)}–${hm(s.ended_at)} (${durLabel(s.duration_min)}, ${s.quality})`;
|
|
129
|
+
if (!s.disturbances || s.disturbances.length === 0) {
|
|
130
|
+
return `${head} — undisturbed.`;
|
|
131
|
+
}
|
|
132
|
+
const parts = s.disturbances
|
|
133
|
+
.slice()
|
|
134
|
+
.sort((a, b) => a.offset_min - b.offset_min)
|
|
135
|
+
.map((d) => {
|
|
136
|
+
const verb = d.type === 'wake' ? 'woke'
|
|
137
|
+
: d.type === 'cry' ? 'cried'
|
|
138
|
+
: d.type === 'noise' ? 'noise'
|
|
139
|
+
: 'stir';
|
|
140
|
+
const sig = d.intensity === 'significant' ? 'significant ' : '';
|
|
141
|
+
const detail = `${d.audio_peak_db}dB${d.duration_min ? `, ${d.duration_min}m` : ''}`;
|
|
142
|
+
return `${sig}${verb} at ${offsetClock(d.offset_min)} (${detail})`;
|
|
143
|
+
});
|
|
144
|
+
return `${head} — ${parts.join(', ')}.`;
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=sleep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sleep.js","sourceRoot":"","sources":["../src/sleep.ts"],"names":[],"mappings":"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"}
|
|
@@ -187,29 +187,45 @@ export declare const SleepDisturbanceSchema: z.ZodObject<{
|
|
|
187
187
|
event_type: z.ZodLiteral<"sleep_disturbance">;
|
|
188
188
|
data: z.ZodObject<{
|
|
189
189
|
v: z.ZodLiteral<1>;
|
|
190
|
-
|
|
190
|
+
session_id: z.ZodString;
|
|
191
|
+
offset_min: z.ZodNumber;
|
|
192
|
+
type: z.ZodEnum<["stir", "wake", "cry", "noise"]>;
|
|
191
193
|
duration_min: z.ZodNumber;
|
|
194
|
+
intensity: z.ZodEnum<["minor", "significant"]>;
|
|
192
195
|
audio_peak_db: z.ZodNumber;
|
|
196
|
+
motion_index: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
193
197
|
detected_by: z.ZodEnum<["passive", "manual"]>;
|
|
194
198
|
}, "strip", z.ZodTypeAny, {
|
|
195
199
|
v: 1;
|
|
196
|
-
type: "wake";
|
|
200
|
+
type: "stir" | "wake" | "cry" | "noise";
|
|
197
201
|
duration_min: number;
|
|
202
|
+
session_id: string;
|
|
203
|
+
offset_min: number;
|
|
204
|
+
intensity: "minor" | "significant";
|
|
198
205
|
audio_peak_db: number;
|
|
206
|
+
motion_index: number;
|
|
199
207
|
detected_by: "passive" | "manual";
|
|
200
208
|
}, {
|
|
201
209
|
v: 1;
|
|
202
|
-
type: "wake";
|
|
210
|
+
type: "stir" | "wake" | "cry" | "noise";
|
|
203
211
|
duration_min: number;
|
|
212
|
+
session_id: string;
|
|
213
|
+
offset_min: number;
|
|
214
|
+
intensity: "minor" | "significant";
|
|
204
215
|
audio_peak_db: number;
|
|
205
216
|
detected_by: "passive" | "manual";
|
|
217
|
+
motion_index?: number | undefined;
|
|
206
218
|
}>;
|
|
207
219
|
}, "strip", z.ZodTypeAny, {
|
|
208
220
|
data: {
|
|
209
221
|
v: 1;
|
|
210
|
-
type: "wake";
|
|
222
|
+
type: "stir" | "wake" | "cry" | "noise";
|
|
211
223
|
duration_min: number;
|
|
224
|
+
session_id: string;
|
|
225
|
+
offset_min: number;
|
|
226
|
+
intensity: "minor" | "significant";
|
|
212
227
|
audio_peak_db: number;
|
|
228
|
+
motion_index: number;
|
|
213
229
|
detected_by: "passive" | "manual";
|
|
214
230
|
};
|
|
215
231
|
v: number;
|
|
@@ -219,10 +235,14 @@ export declare const SleepDisturbanceSchema: z.ZodObject<{
|
|
|
219
235
|
}, {
|
|
220
236
|
data: {
|
|
221
237
|
v: 1;
|
|
222
|
-
type: "wake";
|
|
238
|
+
type: "stir" | "wake" | "cry" | "noise";
|
|
223
239
|
duration_min: number;
|
|
240
|
+
session_id: string;
|
|
241
|
+
offset_min: number;
|
|
242
|
+
intensity: "minor" | "significant";
|
|
224
243
|
audio_peak_db: number;
|
|
225
244
|
detected_by: "passive" | "manual";
|
|
245
|
+
motion_index?: number | undefined;
|
|
226
246
|
};
|
|
227
247
|
v: number;
|
|
228
248
|
event_type: "sleep_disturbance";
|
|
@@ -237,38 +257,50 @@ export declare const AwakeWindowSchema: z.ZodObject<{
|
|
|
237
257
|
event_type: z.ZodLiteral<"awake_window">;
|
|
238
258
|
data: z.ZodObject<{
|
|
239
259
|
v: z.ZodLiteral<1>;
|
|
260
|
+
duration_min: z.ZodNumber;
|
|
240
261
|
started_at: z.ZodString;
|
|
241
262
|
ended_at: z.ZodString;
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
263
|
+
significance: z.ZodEnum<["brief", "alertness_window"]>;
|
|
264
|
+
context: z.ZodEnum<["night_to_night", "night_to_nap", "nap_to_nap", "nap_to_night"]>;
|
|
265
|
+
time_of_day: z.ZodEnum<["overnight", "daytime"]>;
|
|
266
|
+
label: z.ZodString;
|
|
267
|
+
prev_event_id: z.ZodString;
|
|
268
|
+
next_event_id: z.ZodString;
|
|
246
269
|
}, "strip", z.ZodTypeAny, {
|
|
247
270
|
v: 1;
|
|
248
271
|
duration_min: number;
|
|
249
|
-
notes: string;
|
|
250
272
|
started_at: string;
|
|
251
273
|
ended_at: string;
|
|
252
|
-
|
|
253
|
-
|
|
274
|
+
significance: "brief" | "alertness_window";
|
|
275
|
+
context: "night_to_night" | "night_to_nap" | "nap_to_nap" | "nap_to_night";
|
|
276
|
+
time_of_day: "overnight" | "daytime";
|
|
277
|
+
label: string;
|
|
278
|
+
prev_event_id: string;
|
|
279
|
+
next_event_id: string;
|
|
254
280
|
}, {
|
|
255
281
|
v: 1;
|
|
256
282
|
duration_min: number;
|
|
257
283
|
started_at: string;
|
|
258
284
|
ended_at: string;
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
285
|
+
significance: "brief" | "alertness_window";
|
|
286
|
+
context: "night_to_night" | "night_to_nap" | "nap_to_nap" | "nap_to_night";
|
|
287
|
+
time_of_day: "overnight" | "daytime";
|
|
288
|
+
label: string;
|
|
289
|
+
prev_event_id: string;
|
|
290
|
+
next_event_id: string;
|
|
262
291
|
}>;
|
|
263
292
|
}, "strip", z.ZodTypeAny, {
|
|
264
293
|
data: {
|
|
265
294
|
v: 1;
|
|
266
295
|
duration_min: number;
|
|
267
|
-
notes: string;
|
|
268
296
|
started_at: string;
|
|
269
297
|
ended_at: string;
|
|
270
|
-
|
|
271
|
-
|
|
298
|
+
significance: "brief" | "alertness_window";
|
|
299
|
+
context: "night_to_night" | "night_to_nap" | "nap_to_nap" | "nap_to_night";
|
|
300
|
+
time_of_day: "overnight" | "daytime";
|
|
301
|
+
label: string;
|
|
302
|
+
prev_event_id: string;
|
|
303
|
+
next_event_id: string;
|
|
272
304
|
};
|
|
273
305
|
v: number;
|
|
274
306
|
event_type: "awake_window";
|
|
@@ -280,9 +312,12 @@ export declare const AwakeWindowSchema: z.ZodObject<{
|
|
|
280
312
|
duration_min: number;
|
|
281
313
|
started_at: string;
|
|
282
314
|
ended_at: string;
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
315
|
+
significance: "brief" | "alertness_window";
|
|
316
|
+
context: "night_to_night" | "night_to_nap" | "nap_to_nap" | "nap_to_night";
|
|
317
|
+
time_of_day: "overnight" | "daytime";
|
|
318
|
+
label: string;
|
|
319
|
+
prev_event_id: string;
|
|
320
|
+
next_event_id: string;
|
|
286
321
|
};
|
|
287
322
|
v: number;
|
|
288
323
|
event_type: "awake_window";
|
|
@@ -309,15 +344,15 @@ export declare const PumpingSchema: z.ZodObject<{
|
|
|
309
344
|
amount_ml: number;
|
|
310
345
|
duration_min: number;
|
|
311
346
|
notes: string;
|
|
312
|
-
method: "manual" | "electric";
|
|
313
347
|
time_of_day: string;
|
|
348
|
+
method: "manual" | "electric";
|
|
314
349
|
}, {
|
|
315
350
|
breast: "left" | "right" | "both";
|
|
316
351
|
v: 1;
|
|
317
352
|
amount_ml: number;
|
|
318
353
|
duration_min: number;
|
|
319
|
-
method: "manual" | "electric";
|
|
320
354
|
time_of_day: string;
|
|
355
|
+
method: "manual" | "electric";
|
|
321
356
|
notes?: string | undefined;
|
|
322
357
|
}>;
|
|
323
358
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -327,8 +362,8 @@ export declare const PumpingSchema: z.ZodObject<{
|
|
|
327
362
|
amount_ml: number;
|
|
328
363
|
duration_min: number;
|
|
329
364
|
notes: string;
|
|
330
|
-
method: "manual" | "electric";
|
|
331
365
|
time_of_day: string;
|
|
366
|
+
method: "manual" | "electric";
|
|
332
367
|
};
|
|
333
368
|
v: number;
|
|
334
369
|
event_type: "pumping";
|
|
@@ -340,8 +375,8 @@ export declare const PumpingSchema: z.ZodObject<{
|
|
|
340
375
|
v: 1;
|
|
341
376
|
amount_ml: number;
|
|
342
377
|
duration_min: number;
|
|
343
|
-
method: "manual" | "electric";
|
|
344
378
|
time_of_day: string;
|
|
379
|
+
method: "manual" | "electric";
|
|
345
380
|
notes?: string | undefined;
|
|
346
381
|
};
|
|
347
382
|
v: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/validators/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM1B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYxB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa7B,CAAC;
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/validators/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM1B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYxB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa7B,CAAC;AAKH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAajC,CAAC;AAKH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc5B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWxB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa/B,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASvB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASvB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQvB,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQtB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUzB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUvB,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW1B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS5B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ7B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS5B,CAAC"}
|
|
@@ -37,28 +37,39 @@ exports.SleepSessionSchema = exports.BaseEventSchema.extend({
|
|
|
37
37
|
is_passive: zod_1.z.boolean(),
|
|
38
38
|
}),
|
|
39
39
|
});
|
|
40
|
+
// A meaningful stir/wake WITHIN a sleep session. Emitted only when it clears
|
|
41
|
+
// the significance filter (see classifyDisturbance in sleep.ts). offset_min and
|
|
42
|
+
// session_id nest it under its parent sleep_session for the LLM.
|
|
40
43
|
exports.SleepDisturbanceSchema = exports.BaseEventSchema.extend({
|
|
41
44
|
event_type: zod_1.z.literal(constants_1.EVENT_TYPE.SLEEP_DISTURBANCE),
|
|
42
45
|
data: zod_1.z.object({
|
|
43
46
|
v: zod_1.z.literal(1),
|
|
44
|
-
|
|
47
|
+
session_id: zod_1.z.string().uuid(),
|
|
48
|
+
offset_min: zod_1.z.number().int().nonnegative(),
|
|
49
|
+
type: zod_1.z.enum(['stir', 'wake', 'cry', 'noise']),
|
|
45
50
|
duration_min: zod_1.z.number().int().nonnegative(),
|
|
51
|
+
intensity: zod_1.z.enum(['minor', 'significant']),
|
|
46
52
|
audio_peak_db: zod_1.z.number(),
|
|
53
|
+
motion_index: zod_1.z.number().min(0).max(1).optional().default(0),
|
|
47
54
|
detected_by: zod_1.z.enum(['passive', 'manual']),
|
|
48
55
|
}),
|
|
49
56
|
});
|
|
50
|
-
// AwakeWindow:
|
|
51
|
-
//
|
|
57
|
+
// AwakeWindow: auto-derived from gaps between adjacent sleep_session events.
|
|
58
|
+
// Never written manually. Provides LLM with overnight alertness signal.
|
|
59
|
+
// AWAKE_MIN_MINUTES=5 (any gap), AWAKE_SIGNIFICANT_MINUTES=15 (alertness_window).
|
|
52
60
|
exports.AwakeWindowSchema = exports.BaseEventSchema.extend({
|
|
53
61
|
event_type: zod_1.z.literal(constants_1.EVENT_TYPE.AWAKE_WINDOW),
|
|
54
62
|
data: zod_1.z.object({
|
|
55
63
|
v: zod_1.z.literal(1),
|
|
64
|
+
duration_min: zod_1.z.number().int().nonnegative(),
|
|
56
65
|
started_at: zod_1.z.string().datetime(),
|
|
57
66
|
ended_at: zod_1.z.string().datetime(),
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
67
|
+
significance: zod_1.z.enum(['brief', 'alertness_window']),
|
|
68
|
+
context: zod_1.z.enum(['night_to_night', 'night_to_nap', 'nap_to_nap', 'nap_to_night']),
|
|
69
|
+
time_of_day: zod_1.z.enum(['overnight', 'daytime']),
|
|
70
|
+
label: zod_1.z.string(),
|
|
71
|
+
prev_event_id: zod_1.z.string().uuid(),
|
|
72
|
+
next_event_id: zod_1.z.string().uuid(),
|
|
62
73
|
}),
|
|
63
74
|
});
|
|
64
75
|
exports.PumpingSchema = exports.BaseEventSchema.extend({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/validators/events.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,4CAAuE;AAE1D,QAAA,eAAe,GAAG,OAAC,CAAC,MAAM,CAAC;IACtC,CAAC,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC9B,UAAU,EAAE,OAAC,CAAC,UAAU,CAAC,sBAAU,CAAC;IACpC,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC,IAAI,EAAE;IAC5B,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,IAAI,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,OAAO,EAAE,CAAC;CAC5B,CAAC,CAAC;AAEU,QAAA,aAAa,GAAG,uBAAe,CAAC,MAAM,CAAC;IAClD,UAAU,EAAE,OAAC,CAAC,OAAO,CAAC,sBAAU,CAAC,OAAO,CAAC;IACzC,IAAI,EAAE,OAAC,CAAC,MAAM,CAAC;QACb,CAAC,EAAE,OAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACf,IAAI,EAAE,OAAC,CAAC,UAAU,CAAC,wBAAY,CAAC;QAChC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAC3C,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACpD,UAAU,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QACtD,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QAC9C,gBAAgB,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACvD,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;KACzC,CAAC;CACH,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,uBAAe,CAAC,MAAM,CAAC;IACvD,UAAU,EAAE,OAAC,CAAC,OAAO,CAAC,sBAAU,CAAC,aAAa,CAAC;IAC/C,IAAI,EAAE,OAAC,CAAC,MAAM,CAAC;QACb,CAAC,EAAE,OAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACf,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACzC,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC,IAAI,EAAE;QAC3B,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,IAAI,EAAE;QACzB,OAAO,EAAE,OAAC,CAAC,UAAU,CAAC,yBAAa,CAAC;QACpC,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACrC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;QAC1C,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE;KACxB,CAAC;CACH,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/validators/events.ts"],"names":[],"mappings":"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"}
|