@murphai/contracts 0.1.1
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/LICENSE +674 -0
- package/README.md +24 -0
- package/dist/bank-entities.d.ts +35 -0
- package/dist/bank-entities.d.ts.map +1 -0
- package/dist/bank-entities.js +164 -0
- package/dist/bank-entities.js.map +1 -0
- package/dist/command-capabilities.d.ts +50 -0
- package/dist/command-capabilities.d.ts.map +1 -0
- package/dist/command-capabilities.js +149 -0
- package/dist/command-capabilities.js.map +1 -0
- package/dist/constants.d.ts +149 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +232 -0
- package/dist/constants.js.map +1 -0
- package/dist/examples.d.ts +31 -0
- package/dist/examples.d.ts.map +1 -0
- package/dist/examples.js +943 -0
- package/dist/examples.js.map +1 -0
- package/dist/frontmatter.d.ts +28 -0
- package/dist/frontmatter.d.ts.map +1 -0
- package/dist/frontmatter.js +272 -0
- package/dist/frontmatter.js.map +1 -0
- package/dist/health-entities.d.ts +87 -0
- package/dist/health-entities.d.ts.map +1 -0
- package/dist/health-entities.js +349 -0
- package/dist/health-entities.js.map +1 -0
- package/dist/ids.d.ts +10 -0
- package/dist/ids.d.ts.map +1 -0
- package/dist/ids.js +27 -0
- package/dist/ids.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/registry-helpers.d.ts +31 -0
- package/dist/registry-helpers.d.ts.map +1 -0
- package/dist/registry-helpers.js +53 -0
- package/dist/registry-helpers.js.map +1 -0
- package/dist/schemas.d.ts +47 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +50 -0
- package/dist/schemas.js.map +1 -0
- package/dist/scripts/generate-json-schema.js +13 -0
- package/dist/scripts/generate-json-schema.js.map +1 -0
- package/dist/scripts/verify.js +230 -0
- package/dist/scripts/verify.js.map +1 -0
- package/dist/shares.d.ts +715 -0
- package/dist/shares.d.ts.map +1 -0
- package/dist/shares.js +469 -0
- package/dist/shares.js.map +1 -0
- package/dist/time.d.ts +25 -0
- package/dist/time.d.ts.map +1 -0
- package/dist/time.js +241 -0
- package/dist/time.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/types.d.ts +34 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/validate.d.ts +18 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/validate.js +129 -0
- package/dist/validate.js.map +1 -0
- package/dist/zod.d.ts +1626 -0
- package/dist/zod.d.ts.map +1 -0
- package/dist/zod.js +834 -0
- package/dist/zod.js.map +1 -0
- package/generated/assessment-response.schema.json +101 -0
- package/generated/audit-record.schema.json +141 -0
- package/generated/event-record.schema.json +2708 -0
- package/generated/frontmatter-allergy.schema.json +82 -0
- package/generated/frontmatter-condition.schema.json +101 -0
- package/generated/frontmatter-core.schema.json +51 -0
- package/generated/frontmatter-experiment.schema.json +70 -0
- package/generated/frontmatter-family-member.schema.json +68 -0
- package/generated/frontmatter-food.schema.json +128 -0
- package/generated/frontmatter-genetic-variant.schema.json +81 -0
- package/generated/frontmatter-goal.schema.json +116 -0
- package/generated/frontmatter-journal-day.schema.json +52 -0
- package/generated/frontmatter-profile-current.schema.json +55 -0
- package/generated/frontmatter-protocol.schema.json +153 -0
- package/generated/frontmatter-provider.schema.json +81 -0
- package/generated/frontmatter-recipe.schema.json +124 -0
- package/generated/frontmatter-workout-format.schema.json +163 -0
- package/generated/inbox-capture-record.schema.json +332 -0
- package/generated/profile-snapshot.schema.json +131 -0
- package/generated/sample-record.schema.json +726 -0
- package/generated/vault-metadata.schema.json +324 -0
- package/package.json +69 -0
package/dist/examples.js
ADDED
|
@@ -0,0 +1,943 @@
|
|
|
1
|
+
export const exampleVaultMetadata = Object.freeze({
|
|
2
|
+
schemaVersion: "murph.vault.v1",
|
|
3
|
+
vaultId: "vault_01JNV40W8VFYQ2H7CMJY5A9R4K",
|
|
4
|
+
createdAt: "2026-03-12T14:00:00Z",
|
|
5
|
+
title: "Murph Vault",
|
|
6
|
+
timezone: "America/New_York",
|
|
7
|
+
idPolicy: {
|
|
8
|
+
format: "prefix_ulid",
|
|
9
|
+
prefixes: {
|
|
10
|
+
allergy: "alg",
|
|
11
|
+
assessment: "asmt",
|
|
12
|
+
audit: "aud",
|
|
13
|
+
condition: "cond",
|
|
14
|
+
document: "doc",
|
|
15
|
+
event: "evt",
|
|
16
|
+
experiment: "exp",
|
|
17
|
+
family: "fam",
|
|
18
|
+
food: "food",
|
|
19
|
+
goal: "goal",
|
|
20
|
+
meal: "meal",
|
|
21
|
+
pack: "pack",
|
|
22
|
+
profileSnapshot: "psnap",
|
|
23
|
+
provider: "prov",
|
|
24
|
+
recipe: "rcp",
|
|
25
|
+
protocol: "prot",
|
|
26
|
+
sample: "smp",
|
|
27
|
+
transform: "xfm",
|
|
28
|
+
variant: "var",
|
|
29
|
+
vault: "vault",
|
|
30
|
+
workoutFormat: "wfmt",
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
paths: {
|
|
34
|
+
allergiesRoot: "bank/allergies",
|
|
35
|
+
assessmentLedgerRoot: "ledger/assessments",
|
|
36
|
+
conditionsRoot: "bank/conditions",
|
|
37
|
+
coreDocument: "CORE.md",
|
|
38
|
+
familyRoot: "bank/family",
|
|
39
|
+
foodsRoot: "bank/foods",
|
|
40
|
+
geneticsRoot: "bank/genetics",
|
|
41
|
+
goalsRoot: "bank/goals",
|
|
42
|
+
journalRoot: "journal",
|
|
43
|
+
experimentsRoot: "bank/experiments",
|
|
44
|
+
profileCurrentDocument: "bank/profile/current.md",
|
|
45
|
+
profileRoot: "bank/profile",
|
|
46
|
+
profileSnapshotsRoot: "ledger/profile-snapshots",
|
|
47
|
+
providersRoot: "bank/providers",
|
|
48
|
+
recipesRoot: "bank/recipes",
|
|
49
|
+
workoutFormatsRoot: "bank/workout-formats",
|
|
50
|
+
rawAssessmentsRoot: "raw/assessments",
|
|
51
|
+
rawRoot: "raw",
|
|
52
|
+
eventsRoot: "ledger/events",
|
|
53
|
+
protocolsRoot: "bank/protocols",
|
|
54
|
+
samplesRoot: "ledger/samples",
|
|
55
|
+
auditRoot: "audit",
|
|
56
|
+
exportsRoot: "exports",
|
|
57
|
+
},
|
|
58
|
+
shards: {
|
|
59
|
+
assessments: "ledger/assessments/YYYY/YYYY-MM.jsonl",
|
|
60
|
+
events: "ledger/events/YYYY/YYYY-MM.jsonl",
|
|
61
|
+
profileSnapshots: "ledger/profile-snapshots/YYYY/YYYY-MM.jsonl",
|
|
62
|
+
samples: "ledger/samples/<stream>/YYYY/YYYY-MM.jsonl",
|
|
63
|
+
audit: "audit/YYYY/YYYY-MM.jsonl",
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
export const exampleInboxCaptureRecords = Object.freeze([
|
|
67
|
+
{
|
|
68
|
+
schemaVersion: "murph.inbox-capture.v1",
|
|
69
|
+
captureId: "cap_3f9f0d778d89c3beec6b8a13dc",
|
|
70
|
+
identityKey: "imessage\u0000self\u0000msg-123",
|
|
71
|
+
eventId: "evt_01JNV41B483QH9GQ1Y08D7RMTA",
|
|
72
|
+
auditId: "aud_01JNV45RHN0TQ9ZXE0A7YSE1YQ",
|
|
73
|
+
source: "imessage",
|
|
74
|
+
accountId: "self",
|
|
75
|
+
externalId: "msg-123",
|
|
76
|
+
thread: {
|
|
77
|
+
id: "chat-1",
|
|
78
|
+
title: "Breakfast",
|
|
79
|
+
isDirect: false,
|
|
80
|
+
},
|
|
81
|
+
actor: {
|
|
82
|
+
id: "contact-1",
|
|
83
|
+
displayName: "Friend",
|
|
84
|
+
isSelf: false,
|
|
85
|
+
},
|
|
86
|
+
occurredAt: "2026-03-12T08:15:00Z",
|
|
87
|
+
recordedAt: "2026-03-12T08:16:00Z",
|
|
88
|
+
receivedAt: "2026-03-12T08:16:04Z",
|
|
89
|
+
text: "Breakfast photo and note",
|
|
90
|
+
raw: {
|
|
91
|
+
source: "imessage",
|
|
92
|
+
attachmentCount: 1,
|
|
93
|
+
},
|
|
94
|
+
sourceDirectory: "raw/inbox/imessage/self/2026/03/cap_3f9f0d778d89c3beec6b8a13dc",
|
|
95
|
+
envelopePath: "raw/inbox/imessage/self/2026/03/cap_3f9f0d778d89c3beec6b8a13dc/envelope.json",
|
|
96
|
+
rawRefs: [
|
|
97
|
+
"raw/inbox/imessage/self/2026/03/cap_3f9f0d778d89c3beec6b8a13dc/envelope.json",
|
|
98
|
+
"raw/inbox/imessage/self/2026/03/cap_3f9f0d778d89c3beec6b8a13dc/attachments/01__breakfast.jpg",
|
|
99
|
+
],
|
|
100
|
+
attachments: [
|
|
101
|
+
{
|
|
102
|
+
attachmentId: "att_cap_3f9f0d778d89c3beec6b8a13dc_01",
|
|
103
|
+
ordinal: 1,
|
|
104
|
+
externalId: "att-1",
|
|
105
|
+
kind: "image",
|
|
106
|
+
mime: "image/jpeg",
|
|
107
|
+
originalPath: null,
|
|
108
|
+
fileName: "breakfast.jpg",
|
|
109
|
+
byteSize: 12345,
|
|
110
|
+
storedPath: "raw/inbox/imessage/self/2026/03/cap_3f9f0d778d89c3beec6b8a13dc/attachments/01__breakfast.jpg",
|
|
111
|
+
sha256: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
112
|
+
},
|
|
113
|
+
],
|
|
114
|
+
},
|
|
115
|
+
]);
|
|
116
|
+
export const exampleEventRecords = Object.freeze([
|
|
117
|
+
{
|
|
118
|
+
schemaVersion: "murph.event.v1",
|
|
119
|
+
id: "evt_01JNV45RHN0TQ9ZXE0A7YSE1YQ",
|
|
120
|
+
kind: "encounter",
|
|
121
|
+
occurredAt: "2026-03-09T14:15:00Z",
|
|
122
|
+
recordedAt: "2026-03-09T15:00:00Z",
|
|
123
|
+
dayKey: "2026-03-09",
|
|
124
|
+
source: "import",
|
|
125
|
+
title: "Urgent care visit",
|
|
126
|
+
encounterType: "urgent-care",
|
|
127
|
+
location: "Downtown Urgent Care",
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
schemaVersion: "murph.event.v1",
|
|
131
|
+
id: "evt_01JNV41B483QH9GQ1Y08D7RMTA",
|
|
132
|
+
kind: "document",
|
|
133
|
+
occurredAt: "2026-03-12T08:15:00Z",
|
|
134
|
+
recordedAt: "2026-03-12T08:16:00Z",
|
|
135
|
+
dayKey: "2026-03-12",
|
|
136
|
+
source: "import",
|
|
137
|
+
title: "Primary care visit summary",
|
|
138
|
+
tags: ["clinic", "pdf"],
|
|
139
|
+
relatedIds: ["doc_01JNV41Q9MN0S1R6ZMW7FGD9DG"],
|
|
140
|
+
rawRefs: ["raw/documents/2026/03/doc_01JNV41Q9MN0S1R6ZMW7FGD9DG/visit-summary.pdf"],
|
|
141
|
+
documentId: "doc_01JNV41Q9MN0S1R6ZMW7FGD9DG",
|
|
142
|
+
documentPath: "raw/documents/2026/03/doc_01JNV41Q9MN0S1R6ZMW7FGD9DG/visit-summary.pdf",
|
|
143
|
+
mimeType: "application/pdf",
|
|
144
|
+
providerId: "prov_01JNV422Y2M5ZBV64ZP4N1DRB1",
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
schemaVersion: "murph.event.v1",
|
|
148
|
+
id: "evt_01JNV42F34M22V2PE9Q4KQ7H1X",
|
|
149
|
+
kind: "meal",
|
|
150
|
+
occurredAt: "2026-03-12T12:32:00Z",
|
|
151
|
+
recordedAt: "2026-03-12T12:33:00Z",
|
|
152
|
+
dayKey: "2026-03-12",
|
|
153
|
+
source: "manual",
|
|
154
|
+
title: "Lunch bowl",
|
|
155
|
+
note: "Chicken, rice, and avocado.",
|
|
156
|
+
tags: ["meal", "lunch"],
|
|
157
|
+
relatedIds: ["meal_01JNV42NP0KH6JQXMZM1G0V6SE"],
|
|
158
|
+
rawRefs: ["raw/meals/2026/03/meal_01JNV42NP0KH6JQXMZM1G0V6SE/photo-01.jpg"],
|
|
159
|
+
mealId: "meal_01JNV42NP0KH6JQXMZM1G0V6SE",
|
|
160
|
+
photoPaths: ["raw/meals/2026/03/meal_01JNV42NP0KH6JQXMZM1G0V6SE/photo-01.jpg"],
|
|
161
|
+
audioPaths: [],
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
schemaVersion: "murph.event.v1",
|
|
165
|
+
id: "evt_01JNV4303N61Y40QAHGM4ZHPD7",
|
|
166
|
+
kind: "symptom",
|
|
167
|
+
occurredAt: "2026-03-12T13:05:00Z",
|
|
168
|
+
recordedAt: "2026-03-12T13:05:30Z",
|
|
169
|
+
dayKey: "2026-03-12",
|
|
170
|
+
source: "manual",
|
|
171
|
+
title: "Headache after lunch",
|
|
172
|
+
tags: ["symptom"],
|
|
173
|
+
symptom: "headache",
|
|
174
|
+
intensity: 4,
|
|
175
|
+
bodySite: "temples",
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
schemaVersion: "murph.event.v1",
|
|
179
|
+
id: "evt_01JNV4628FSM6B5NQ8VJSEW415",
|
|
180
|
+
kind: "procedure",
|
|
181
|
+
occurredAt: "2026-03-10T10:00:00Z",
|
|
182
|
+
recordedAt: "2026-03-10T10:05:00Z",
|
|
183
|
+
dayKey: "2026-03-10",
|
|
184
|
+
source: "import",
|
|
185
|
+
title: "Knee arthroscopy",
|
|
186
|
+
procedure: "right-knee-arthroscopy",
|
|
187
|
+
status: "completed",
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
schemaVersion: "murph.event.v1",
|
|
191
|
+
id: "evt_01JNV43AK9SK58T6GX3DWRZH9Q",
|
|
192
|
+
kind: "note",
|
|
193
|
+
occurredAt: "2026-03-12T14:10:00Z",
|
|
194
|
+
recordedAt: "2026-03-12T14:10:05Z",
|
|
195
|
+
dayKey: "2026-03-12",
|
|
196
|
+
source: "manual",
|
|
197
|
+
title: "General note",
|
|
198
|
+
note: "Energy stayed steady through the afternoon.",
|
|
199
|
+
tags: ["note"],
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
schemaVersion: "murph.event.v1",
|
|
203
|
+
id: "evt_01JNV46CSWT0AKB5D1PKR4F1S6",
|
|
204
|
+
kind: "test",
|
|
205
|
+
occurredAt: "2026-03-11T08:00:00Z",
|
|
206
|
+
recordedAt: "2026-03-11T08:05:00Z",
|
|
207
|
+
dayKey: "2026-03-11",
|
|
208
|
+
source: "import",
|
|
209
|
+
title: "Lipid panel",
|
|
210
|
+
testName: "lipid-panel",
|
|
211
|
+
resultStatus: "abnormal",
|
|
212
|
+
summary: "LDL elevated above target range.",
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
schemaVersion: "murph.event.v1",
|
|
216
|
+
id: "evt_01JNV43NDX1N7BX08NQ19MJ4DK",
|
|
217
|
+
kind: "observation",
|
|
218
|
+
occurredAt: "2026-03-12T15:00:00Z",
|
|
219
|
+
recordedAt: "2026-03-12T15:00:05Z",
|
|
220
|
+
dayKey: "2026-03-12",
|
|
221
|
+
source: "manual",
|
|
222
|
+
title: "Post-walk blood pressure",
|
|
223
|
+
metric: "blood-pressure-systolic",
|
|
224
|
+
value: 118,
|
|
225
|
+
unit: "mmHg",
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
schemaVersion: "murph.event.v1",
|
|
229
|
+
id: "evt_01JNV46VFEV8Q05M8NSEJ2MZXG",
|
|
230
|
+
kind: "adverse_effect",
|
|
231
|
+
occurredAt: "2026-03-12T09:00:00Z",
|
|
232
|
+
recordedAt: "2026-03-12T09:02:00Z",
|
|
233
|
+
dayKey: "2026-03-12",
|
|
234
|
+
source: "manual",
|
|
235
|
+
title: "Nausea after supplement",
|
|
236
|
+
substance: "Magnesium glycinate",
|
|
237
|
+
effect: "nausea",
|
|
238
|
+
severity: "mild",
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
schemaVersion: "murph.event.v1",
|
|
242
|
+
id: "evt_01JNV43Y9ZV6EY1K9J7ZT4B9SC",
|
|
243
|
+
kind: "experiment_event",
|
|
244
|
+
occurredAt: "2026-03-12T06:00:00Z",
|
|
245
|
+
recordedAt: "2026-03-12T06:00:10Z",
|
|
246
|
+
dayKey: "2026-03-12",
|
|
247
|
+
source: "manual",
|
|
248
|
+
title: "Magnesium trial started",
|
|
249
|
+
relatedIds: ["exp_01JNV4458HYPP53JDQCBP1QJFM"],
|
|
250
|
+
experimentId: "exp_01JNV4458HYPP53JDQCBP1QJFM",
|
|
251
|
+
experimentSlug: "magnesium-sleep",
|
|
252
|
+
phase: "start",
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
schemaVersion: "murph.event.v1",
|
|
256
|
+
id: "evt_01JNV447V6K3SW1Q9NJ7XVQZ7P",
|
|
257
|
+
kind: "medication_intake",
|
|
258
|
+
occurredAt: "2026-03-12T07:00:00Z",
|
|
259
|
+
recordedAt: "2026-03-12T07:00:10Z",
|
|
260
|
+
dayKey: "2026-03-12",
|
|
261
|
+
source: "manual",
|
|
262
|
+
title: "Prescription dose",
|
|
263
|
+
medicationName: "Lisinopril",
|
|
264
|
+
dose: 10,
|
|
265
|
+
unit: "mg",
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
schemaVersion: "murph.event.v1",
|
|
269
|
+
id: "evt_01JNV44J4HH2F9H5S0VRZ4QJEB",
|
|
270
|
+
kind: "supplement_intake",
|
|
271
|
+
occurredAt: "2026-03-12T21:00:00Z",
|
|
272
|
+
recordedAt: "2026-03-12T21:00:10Z",
|
|
273
|
+
dayKey: "2026-03-12",
|
|
274
|
+
source: "manual",
|
|
275
|
+
title: "Evening magnesium",
|
|
276
|
+
supplementName: "Magnesium glycinate",
|
|
277
|
+
dose: 200,
|
|
278
|
+
unit: "mg",
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
schemaVersion: "murph.event.v1",
|
|
282
|
+
id: "evt_01JNV475C8F69A9D4G4H5WWEZR",
|
|
283
|
+
kind: "exposure",
|
|
284
|
+
occurredAt: "2026-03-12T19:00:00Z",
|
|
285
|
+
recordedAt: "2026-03-12T19:03:00Z",
|
|
286
|
+
dayKey: "2026-03-12",
|
|
287
|
+
source: "manual",
|
|
288
|
+
title: "Basement mold cleanup",
|
|
289
|
+
exposureType: "environmental",
|
|
290
|
+
substance: "mold",
|
|
291
|
+
duration: "45 minutes",
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
schemaVersion: "murph.event.v1",
|
|
295
|
+
id: "evt_01JNV44WS3W0R27XPTKFC3QFJA",
|
|
296
|
+
kind: "activity_session",
|
|
297
|
+
occurredAt: "2026-03-12T17:30:00Z",
|
|
298
|
+
recordedAt: "2026-03-12T17:30:30Z",
|
|
299
|
+
dayKey: "2026-03-12",
|
|
300
|
+
source: "device",
|
|
301
|
+
title: "Evening walk",
|
|
302
|
+
activityType: "walk",
|
|
303
|
+
durationMinutes: 42,
|
|
304
|
+
distanceKm: 3.4,
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
schemaVersion: "murph.event.v1",
|
|
308
|
+
id: "evt_01JNV44WS3W0R27XPTKFC3QFJB",
|
|
309
|
+
kind: "activity_session",
|
|
310
|
+
occurredAt: "2026-03-12T17:55:00Z",
|
|
311
|
+
recordedAt: "2026-03-12T18:02:00Z",
|
|
312
|
+
dayKey: "2026-03-12",
|
|
313
|
+
source: "manual",
|
|
314
|
+
title: "20-minute strength training",
|
|
315
|
+
note: "20 min strength training. 4 sets of 20 pushups. 4 sets of 12 incline bench with a 45 lb bar plus 10 lb plates on both sides.",
|
|
316
|
+
activityType: "strength-training",
|
|
317
|
+
durationMinutes: 20,
|
|
318
|
+
strengthExercises: [
|
|
319
|
+
{
|
|
320
|
+
exercise: "pushups",
|
|
321
|
+
setCount: 4,
|
|
322
|
+
repsPerSet: 20,
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
exercise: "incline bench",
|
|
326
|
+
setCount: 4,
|
|
327
|
+
repsPerSet: 12,
|
|
328
|
+
load: 65,
|
|
329
|
+
loadUnit: "lb",
|
|
330
|
+
loadDescription: "45 lb bar plus 10 lb plates on both sides",
|
|
331
|
+
},
|
|
332
|
+
],
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
schemaVersion: "murph.event.v1",
|
|
336
|
+
id: "evt_01JNV456CT4G36RE0B1VRCZ1M3",
|
|
337
|
+
kind: "sleep_session",
|
|
338
|
+
occurredAt: "2026-03-12T05:55:00Z",
|
|
339
|
+
recordedAt: "2026-03-12T06:05:00Z",
|
|
340
|
+
dayKey: "2026-03-12",
|
|
341
|
+
source: "device",
|
|
342
|
+
title: "Night sleep",
|
|
343
|
+
startAt: "2026-03-11T22:40:00Z",
|
|
344
|
+
endAt: "2026-03-12T05:55:00Z",
|
|
345
|
+
durationMinutes: 435,
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
schemaVersion: "murph.event.v1",
|
|
349
|
+
id: "evt_01JNV45XJ4M22V2PE9Q4KQ7H1X",
|
|
350
|
+
kind: "intervention_session",
|
|
351
|
+
occurredAt: "2026-03-12T19:30:00Z",
|
|
352
|
+
recordedAt: "2026-03-12T19:30:15Z",
|
|
353
|
+
dayKey: "2026-03-12",
|
|
354
|
+
source: "manual",
|
|
355
|
+
title: "20-minute sauna",
|
|
356
|
+
note: "20 min sauna after lifting.",
|
|
357
|
+
relatedIds: ["prot_01JNV422Y2M5ZBV64ZP4N1DRB1"],
|
|
358
|
+
interventionType: "sauna",
|
|
359
|
+
durationMinutes: 20,
|
|
360
|
+
protocolId: "prot_01JNV422Y2M5ZBV64ZP4N1DRB1",
|
|
361
|
+
},
|
|
362
|
+
]);
|
|
363
|
+
export const exampleSampleRecords = Object.freeze([
|
|
364
|
+
{
|
|
365
|
+
schemaVersion: "murph.sample.v1",
|
|
366
|
+
id: "smp_01JNV45RHN0TQ9ZXE0A7YSE1YQ",
|
|
367
|
+
stream: "heart_rate",
|
|
368
|
+
recordedAt: "2026-03-12T17:32:00Z",
|
|
369
|
+
dayKey: "2026-03-12",
|
|
370
|
+
source: "device",
|
|
371
|
+
quality: "raw",
|
|
372
|
+
value: 92,
|
|
373
|
+
unit: "bpm",
|
|
374
|
+
},
|
|
375
|
+
{
|
|
376
|
+
schemaVersion: "murph.sample.v1",
|
|
377
|
+
id: "smp_01JNV4628FSM6B5NQ8VJSEW415",
|
|
378
|
+
stream: "hrv",
|
|
379
|
+
recordedAt: "2026-03-12T06:01:00Z",
|
|
380
|
+
dayKey: "2026-03-12",
|
|
381
|
+
source: "device",
|
|
382
|
+
quality: "normalized",
|
|
383
|
+
value: 48.2,
|
|
384
|
+
unit: "ms",
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
schemaVersion: "murph.sample.v1",
|
|
388
|
+
id: "smp_01JNV46CSWT0AKB5D1PKR4F1S6",
|
|
389
|
+
stream: "steps",
|
|
390
|
+
recordedAt: "2026-03-12T23:59:00Z",
|
|
391
|
+
dayKey: "2026-03-12",
|
|
392
|
+
source: "device",
|
|
393
|
+
quality: "raw",
|
|
394
|
+
value: 10432,
|
|
395
|
+
unit: "count",
|
|
396
|
+
},
|
|
397
|
+
{
|
|
398
|
+
schemaVersion: "murph.sample.v1",
|
|
399
|
+
id: "smp_01JNV46VFEV8Q05M8NSEJ2MZXG",
|
|
400
|
+
stream: "sleep_stage",
|
|
401
|
+
recordedAt: "2026-03-12T03:10:00Z",
|
|
402
|
+
dayKey: "2026-03-12",
|
|
403
|
+
source: "device",
|
|
404
|
+
quality: "raw",
|
|
405
|
+
stage: "deep",
|
|
406
|
+
startAt: "2026-03-12T03:00:00Z",
|
|
407
|
+
endAt: "2026-03-12T03:30:00Z",
|
|
408
|
+
durationMinutes: 30,
|
|
409
|
+
unit: "stage",
|
|
410
|
+
},
|
|
411
|
+
{
|
|
412
|
+
schemaVersion: "murph.sample.v1",
|
|
413
|
+
id: "smp_01JNV475C8F69A9D4G4H5WWEZR",
|
|
414
|
+
stream: "respiratory_rate",
|
|
415
|
+
recordedAt: "2026-03-12T06:01:00Z",
|
|
416
|
+
dayKey: "2026-03-12",
|
|
417
|
+
source: "device",
|
|
418
|
+
quality: "normalized",
|
|
419
|
+
value: 14.6,
|
|
420
|
+
unit: "breaths_per_minute",
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
schemaVersion: "murph.sample.v1",
|
|
424
|
+
id: "smp_01JNV47DWWHKJ9RN0MM7R6FBF8",
|
|
425
|
+
stream: "temperature",
|
|
426
|
+
recordedAt: "2026-03-12T06:01:00Z",
|
|
427
|
+
dayKey: "2026-03-12",
|
|
428
|
+
source: "device",
|
|
429
|
+
quality: "normalized",
|
|
430
|
+
value: 36.7,
|
|
431
|
+
unit: "celsius",
|
|
432
|
+
},
|
|
433
|
+
{
|
|
434
|
+
schemaVersion: "murph.sample.v1",
|
|
435
|
+
id: "smp_01JNV47Q7KJ8Y6JAZ2RW1H7MYN",
|
|
436
|
+
stream: "glucose",
|
|
437
|
+
recordedAt: "2026-03-12T08:00:00Z",
|
|
438
|
+
dayKey: "2026-03-12",
|
|
439
|
+
source: "device",
|
|
440
|
+
quality: "raw",
|
|
441
|
+
value: 96,
|
|
442
|
+
unit: "mg_dL",
|
|
443
|
+
},
|
|
444
|
+
]);
|
|
445
|
+
export const exampleAuditRecords = Object.freeze([
|
|
446
|
+
{
|
|
447
|
+
schemaVersion: "murph.audit.v1",
|
|
448
|
+
id: "aud_01JNV480C4MP7R7QX3T2Q1XMD1",
|
|
449
|
+
action: "meal_add",
|
|
450
|
+
status: "success",
|
|
451
|
+
occurredAt: "2026-03-12T12:33:05Z",
|
|
452
|
+
actor: "cli",
|
|
453
|
+
commandName: "vault-cli meal add",
|
|
454
|
+
summary: "Stored a meal event and copied one photo attachment.",
|
|
455
|
+
targetIds: ["evt_01JNV42F34M22V2PE9Q4KQ7H1X", "meal_01JNV42NP0KH6JQXMZM1G0V6SE"],
|
|
456
|
+
changes: [
|
|
457
|
+
{
|
|
458
|
+
path: "raw/meals/2026/03/meal_01JNV42NP0KH6JQXMZM1G0V6SE/photo-01.jpg",
|
|
459
|
+
op: "copy",
|
|
460
|
+
},
|
|
461
|
+
{
|
|
462
|
+
path: "ledger/events/2026/2026-03.jsonl",
|
|
463
|
+
op: "append",
|
|
464
|
+
},
|
|
465
|
+
],
|
|
466
|
+
},
|
|
467
|
+
{
|
|
468
|
+
schemaVersion: "murph.audit.v1",
|
|
469
|
+
id: "aud_01JNV48RFKQE89MG73CSDM3M6G",
|
|
470
|
+
action: "validate",
|
|
471
|
+
status: "failure",
|
|
472
|
+
occurredAt: "2026-03-12T18:00:00Z",
|
|
473
|
+
actor: "core",
|
|
474
|
+
commandName: "vault-cli validate",
|
|
475
|
+
summary: "Rejected a sample shard with an unsupported stream name.",
|
|
476
|
+
errorCode: "ENUM_UNSUPPORTED",
|
|
477
|
+
changes: [],
|
|
478
|
+
},
|
|
479
|
+
]);
|
|
480
|
+
export const exampleAssessmentResponses = Object.freeze([
|
|
481
|
+
{
|
|
482
|
+
schemaVersion: "murph.assessment-response.v1",
|
|
483
|
+
id: "asmt_01JNV40W8VFYQ2H7CMJY5A9R4K",
|
|
484
|
+
assessmentType: "full-intake",
|
|
485
|
+
recordedAt: "2026-03-12T13:00:00Z",
|
|
486
|
+
source: "import",
|
|
487
|
+
rawPath: "raw/assessments/2026/03/asmt_01JNV40W8VFYQ2H7CMJY5A9R4K/source.json",
|
|
488
|
+
title: "Comprehensive intake questionnaire",
|
|
489
|
+
questionnaireSlug: "health-history-intake",
|
|
490
|
+
responses: {
|
|
491
|
+
goals: ["sleep", "energy"],
|
|
492
|
+
sleep: {
|
|
493
|
+
difficultyFallingAsleep: true,
|
|
494
|
+
averageHours: 6.5,
|
|
495
|
+
},
|
|
496
|
+
caffeine: {
|
|
497
|
+
servingsPerDay: 3,
|
|
498
|
+
},
|
|
499
|
+
},
|
|
500
|
+
relatedIds: ["goal_01JNV41B483QH9GQ1Y08D7RMTA"],
|
|
501
|
+
},
|
|
502
|
+
]);
|
|
503
|
+
export const exampleProfileSnapshots = Object.freeze([
|
|
504
|
+
{
|
|
505
|
+
schemaVersion: "murph.profile-snapshot.v1",
|
|
506
|
+
id: "psnap_01JNV42F34M22V2PE9Q4KQ7H1X",
|
|
507
|
+
recordedAt: "2026-03-12T13:05:00Z",
|
|
508
|
+
source: "assessment_projection",
|
|
509
|
+
sourceAssessmentIds: ["asmt_01JNV40W8VFYQ2H7CMJY5A9R4K"],
|
|
510
|
+
sourceEventIds: ["evt_01JNV46VFEV8Q05M8NSEJ2MZXG"],
|
|
511
|
+
profile: {
|
|
512
|
+
narrative: {
|
|
513
|
+
summary: "Sleep is a primary concern and caffeine load is likely contributing.",
|
|
514
|
+
highlights: ["Sleep latency is elevated", "Caffeine use remains high"],
|
|
515
|
+
},
|
|
516
|
+
goals: {
|
|
517
|
+
topGoalIds: ["goal_01JNV43AK9SK58T6GX3DWRZH9Q"],
|
|
518
|
+
},
|
|
519
|
+
custom: {
|
|
520
|
+
sleep: {
|
|
521
|
+
averageHours: 6.5,
|
|
522
|
+
difficultyFallingAsleep: true,
|
|
523
|
+
},
|
|
524
|
+
nutrition: {
|
|
525
|
+
pattern: "omnivore",
|
|
526
|
+
},
|
|
527
|
+
substances: {
|
|
528
|
+
caffeine: "3 servings daily",
|
|
529
|
+
},
|
|
530
|
+
},
|
|
531
|
+
},
|
|
532
|
+
},
|
|
533
|
+
]);
|
|
534
|
+
export const exampleFrontmatterObjects = Object.freeze({
|
|
535
|
+
core: {
|
|
536
|
+
schemaVersion: "murph.frontmatter.core.v1",
|
|
537
|
+
docType: "core",
|
|
538
|
+
vaultId: "vault_01JNV40W8VFYQ2H7CMJY5A9R4K",
|
|
539
|
+
title: "Murph Vault",
|
|
540
|
+
timezone: "America/New_York",
|
|
541
|
+
updatedAt: "2026-03-12T20:00:00Z",
|
|
542
|
+
activeExperimentSlugs: ["magnesium-sleep"],
|
|
543
|
+
},
|
|
544
|
+
journalDay: {
|
|
545
|
+
schemaVersion: "murph.frontmatter.journal-day.v1",
|
|
546
|
+
docType: "journal_day",
|
|
547
|
+
dayKey: "2026-03-12",
|
|
548
|
+
eventIds: ["evt_01JNV42F34M22V2PE9Q4KQ7H1X", "evt_01JNV43AK9SK58T6GX3DWRZH9Q"],
|
|
549
|
+
sampleStreams: ["heart_rate", "steps", "glucose"],
|
|
550
|
+
},
|
|
551
|
+
experiment: {
|
|
552
|
+
schemaVersion: "murph.frontmatter.experiment.v1",
|
|
553
|
+
docType: "experiment",
|
|
554
|
+
experimentId: "exp_01JNV4458HYPP53JDQCBP1QJFM",
|
|
555
|
+
slug: "magnesium-sleep",
|
|
556
|
+
status: "active",
|
|
557
|
+
title: "Magnesium for sleep onset",
|
|
558
|
+
startedOn: "2026-03-12",
|
|
559
|
+
hypothesis: "Evening magnesium reduces time to fall asleep.",
|
|
560
|
+
tags: ["sleep", "supplement"],
|
|
561
|
+
},
|
|
562
|
+
food: {
|
|
563
|
+
schemaVersion: "murph.frontmatter.food.v1",
|
|
564
|
+
docType: "food",
|
|
565
|
+
foodId: "food_01JNV422Y2M5ZBV64ZP4N1DRB1",
|
|
566
|
+
slug: "regular-acai-bowl",
|
|
567
|
+
title: "Regular Acai Bowl",
|
|
568
|
+
status: "active",
|
|
569
|
+
summary: "The usual acai bowl order from the neighborhood spot with repeat toppings.",
|
|
570
|
+
kind: "acai bowl",
|
|
571
|
+
vendor: "Neighborhood Acai Bar",
|
|
572
|
+
location: "Brooklyn, NY",
|
|
573
|
+
serving: "1 bowl",
|
|
574
|
+
aliases: ["regular acai bowl", "usual acai bowl"],
|
|
575
|
+
ingredients: [
|
|
576
|
+
"acai base",
|
|
577
|
+
"banana",
|
|
578
|
+
"strawberries",
|
|
579
|
+
"granola",
|
|
580
|
+
"almond butter",
|
|
581
|
+
],
|
|
582
|
+
tags: ["breakfast", "favorite"],
|
|
583
|
+
note: "Typical order includes extra granola and no honey.",
|
|
584
|
+
autoLogDaily: {
|
|
585
|
+
time: "08:00",
|
|
586
|
+
},
|
|
587
|
+
},
|
|
588
|
+
provider: {
|
|
589
|
+
schemaVersion: "murph.frontmatter.provider.v1",
|
|
590
|
+
docType: "provider",
|
|
591
|
+
providerId: "prov_01JNV422Y2M5ZBV64ZP4N1DRB1",
|
|
592
|
+
slug: "primary-care-clinic",
|
|
593
|
+
title: "Primary Care Clinic",
|
|
594
|
+
status: "active",
|
|
595
|
+
specialty: "primary-care",
|
|
596
|
+
organization: "Murph Medical Group",
|
|
597
|
+
location: "New York, NY",
|
|
598
|
+
website: "https://example.com/providers/primary-care-clinic",
|
|
599
|
+
phone: "+1-555-0100",
|
|
600
|
+
note: "Preferred clinic for annual wellness visits.",
|
|
601
|
+
aliases: ["HBC Primary Care"],
|
|
602
|
+
},
|
|
603
|
+
recipe: {
|
|
604
|
+
schemaVersion: "murph.frontmatter.recipe.v1",
|
|
605
|
+
docType: "recipe",
|
|
606
|
+
recipeId: "rcp_01JNV422Y2M5ZBV64ZP4N1DRB1",
|
|
607
|
+
slug: "sheet-pan-salmon-bowls",
|
|
608
|
+
title: "Sheet Pan Salmon Bowls",
|
|
609
|
+
status: "saved",
|
|
610
|
+
summary: "A reliable high-protein salmon bowl with roasted vegetables and rice.",
|
|
611
|
+
cuisine: "mediterranean",
|
|
612
|
+
dishType: "dinner",
|
|
613
|
+
source: "Family weeknight rotation",
|
|
614
|
+
servings: 2,
|
|
615
|
+
prepTimeMinutes: 15,
|
|
616
|
+
cookTimeMinutes: 20,
|
|
617
|
+
totalTimeMinutes: 35,
|
|
618
|
+
tags: ["high-protein", "weeknight"],
|
|
619
|
+
ingredients: [
|
|
620
|
+
"2 salmon fillets",
|
|
621
|
+
"2 cups cooked rice",
|
|
622
|
+
"2 cups broccoli florets",
|
|
623
|
+
"1 tbsp olive oil",
|
|
624
|
+
"1 lemon",
|
|
625
|
+
],
|
|
626
|
+
steps: [
|
|
627
|
+
"Heat the oven to 220C and line a sheet pan.",
|
|
628
|
+
"Toss the broccoli with olive oil and roast for 10 minutes.",
|
|
629
|
+
"Add the salmon, season, and roast until cooked through.",
|
|
630
|
+
"Serve over rice with lemon juice and any pan juices.",
|
|
631
|
+
],
|
|
632
|
+
relatedGoalIds: ["goal_01JNV43AK9SK58T6GX3DWRZH9Q"],
|
|
633
|
+
relatedConditionIds: ["cond_01JNV43NDX1N7BX08NQ19MJ4DK"],
|
|
634
|
+
},
|
|
635
|
+
workoutFormat: {
|
|
636
|
+
schemaVersion: "murph.frontmatter.workout-format.v1",
|
|
637
|
+
docType: "workout_format",
|
|
638
|
+
workoutFormatId: "wfmt_01JNV422Y2M5ZBV64ZP4N1DRB1",
|
|
639
|
+
slug: "upper-body-a",
|
|
640
|
+
title: "Upper Body A",
|
|
641
|
+
status: "active",
|
|
642
|
+
summary: "Default upper-body strength session I repeat most weeks.",
|
|
643
|
+
activityType: "strength-training",
|
|
644
|
+
durationMinutes: 45,
|
|
645
|
+
strengthExercises: [
|
|
646
|
+
{
|
|
647
|
+
exercise: "pushups",
|
|
648
|
+
setCount: 4,
|
|
649
|
+
repsPerSet: 20,
|
|
650
|
+
},
|
|
651
|
+
{
|
|
652
|
+
exercise: "incline bench",
|
|
653
|
+
setCount: 4,
|
|
654
|
+
repsPerSet: 12,
|
|
655
|
+
load: 65,
|
|
656
|
+
loadUnit: "lb",
|
|
657
|
+
loadDescription: "45 lb bar plus 10 lb plates on both sides",
|
|
658
|
+
},
|
|
659
|
+
],
|
|
660
|
+
tags: ["gym", "strength"],
|
|
661
|
+
note: "Usual upper-body session when I do not need to vary the lifts.",
|
|
662
|
+
},
|
|
663
|
+
});
|
|
664
|
+
export const exampleHealthFrontmatterObjects = Object.freeze({
|
|
665
|
+
profileCurrent: {
|
|
666
|
+
schemaVersion: "murph.frontmatter.profile-current.v1",
|
|
667
|
+
docType: "profile_current",
|
|
668
|
+
snapshotId: "psnap_01JNV42F34M22V2PE9Q4KQ7H1X",
|
|
669
|
+
updatedAt: "2026-03-12T13:05:00Z",
|
|
670
|
+
sourceAssessmentIds: ["asmt_01JNV40W8VFYQ2H7CMJY5A9R4K"],
|
|
671
|
+
sourceEventIds: ["evt_01JNV46VFEV8Q05M8NSEJ2MZXG"],
|
|
672
|
+
topGoalIds: ["goal_01JNV43AK9SK58T6GX3DWRZH9Q"],
|
|
673
|
+
},
|
|
674
|
+
goal: {
|
|
675
|
+
schemaVersion: "murph.frontmatter.goal.v1",
|
|
676
|
+
docType: "goal",
|
|
677
|
+
goalId: "goal_01JNV43AK9SK58T6GX3DWRZH9Q",
|
|
678
|
+
slug: "improve-sleep",
|
|
679
|
+
title: "Improve sleep quality and duration",
|
|
680
|
+
status: "active",
|
|
681
|
+
horizon: "long_term",
|
|
682
|
+
priority: 1,
|
|
683
|
+
window: {
|
|
684
|
+
startAt: "2026-03-01",
|
|
685
|
+
targetAt: "2026-06-01",
|
|
686
|
+
},
|
|
687
|
+
parentGoalId: null,
|
|
688
|
+
relatedGoalIds: [],
|
|
689
|
+
relatedExperimentIds: ["exp_01JNV4458HYPP53JDQCBP1QJFM"],
|
|
690
|
+
domains: ["sleep", "energy"],
|
|
691
|
+
},
|
|
692
|
+
condition: {
|
|
693
|
+
schemaVersion: "murph.frontmatter.condition.v1",
|
|
694
|
+
docType: "condition",
|
|
695
|
+
conditionId: "cond_01JNV43NDX1N7BX08NQ19MJ4DK",
|
|
696
|
+
slug: "insomnia-symptoms",
|
|
697
|
+
title: "Insomnia symptoms",
|
|
698
|
+
clinicalStatus: "active",
|
|
699
|
+
verificationStatus: "provisional",
|
|
700
|
+
assertedOn: "2026-03-12",
|
|
701
|
+
severity: "moderate",
|
|
702
|
+
bodySites: [],
|
|
703
|
+
relatedGoalIds: ["goal_01JNV43AK9SK58T6GX3DWRZH9Q"],
|
|
704
|
+
relatedProtocolIds: ["prot_01JNV447V6K3SW1Q9NJ7XVQZ7P"],
|
|
705
|
+
note: "Self-reported difficulty falling asleep at least four nights per week.",
|
|
706
|
+
},
|
|
707
|
+
allergy: {
|
|
708
|
+
schemaVersion: "murph.frontmatter.allergy.v1",
|
|
709
|
+
docType: "allergy",
|
|
710
|
+
allergyId: "alg_01JNV43Y9ZV6EY1K9J7ZT4B9SC",
|
|
711
|
+
slug: "penicillin",
|
|
712
|
+
title: "Penicillin intolerance",
|
|
713
|
+
substance: "Penicillin",
|
|
714
|
+
status: "active",
|
|
715
|
+
criticality: "high",
|
|
716
|
+
reaction: "rash",
|
|
717
|
+
recordedOn: "2026-03-12",
|
|
718
|
+
relatedConditionIds: ["cond_01JNV43NDX1N7BX08NQ19MJ4DK"],
|
|
719
|
+
note: "Historical reaction reported during intake.",
|
|
720
|
+
},
|
|
721
|
+
protocol: {
|
|
722
|
+
schemaVersion: "murph.frontmatter.protocol.v1",
|
|
723
|
+
docType: "protocol",
|
|
724
|
+
protocolId: "prot_01JNV447V6K3SW1Q9NJ7XVQZ7P",
|
|
725
|
+
slug: "magnesium-glycinate",
|
|
726
|
+
title: "Magnesium glycinate",
|
|
727
|
+
kind: "supplement",
|
|
728
|
+
status: "active",
|
|
729
|
+
startedOn: "2026-03-12",
|
|
730
|
+
substance: "Magnesium glycinate",
|
|
731
|
+
dose: 200,
|
|
732
|
+
unit: "mg",
|
|
733
|
+
schedule: "nightly",
|
|
734
|
+
brand: "Thorne",
|
|
735
|
+
manufacturer: "Thorne Health",
|
|
736
|
+
servingSize: "2 capsules",
|
|
737
|
+
ingredients: [
|
|
738
|
+
{
|
|
739
|
+
compound: "Magnesium",
|
|
740
|
+
label: "Magnesium glycinate chelate",
|
|
741
|
+
amount: 200,
|
|
742
|
+
unit: "mg",
|
|
743
|
+
},
|
|
744
|
+
{
|
|
745
|
+
compound: "Glycine",
|
|
746
|
+
amount: 1000,
|
|
747
|
+
unit: "mg",
|
|
748
|
+
note: "Approximate amino acid contribution from the chelate.",
|
|
749
|
+
},
|
|
750
|
+
],
|
|
751
|
+
relatedGoalIds: ["goal_01JNV43AK9SK58T6GX3DWRZH9Q"],
|
|
752
|
+
relatedConditionIds: ["cond_01JNV43NDX1N7BX08NQ19MJ4DK"],
|
|
753
|
+
},
|
|
754
|
+
familyMember: {
|
|
755
|
+
schemaVersion: "murph.frontmatter.family-member.v1",
|
|
756
|
+
docType: "family_member",
|
|
757
|
+
familyMemberId: "fam_01JNV44J4HH2F9H5S0VRZ4QJEB",
|
|
758
|
+
slug: "mother",
|
|
759
|
+
title: "Mother",
|
|
760
|
+
relationship: "mother",
|
|
761
|
+
conditions: ["Type 2 diabetes", "Hypertension"],
|
|
762
|
+
deceased: false,
|
|
763
|
+
note: "Family history reported during intake.",
|
|
764
|
+
relatedVariantIds: ["var_01JNV44WS3W0R27XPTKFC3QFJA"],
|
|
765
|
+
},
|
|
766
|
+
geneticVariant: {
|
|
767
|
+
schemaVersion: "murph.frontmatter.genetic-variant.v1",
|
|
768
|
+
docType: "genetic_variant",
|
|
769
|
+
variantId: "var_01JNV44WS3W0R27XPTKFC3QFJA",
|
|
770
|
+
slug: "mthfr-c677t",
|
|
771
|
+
title: "MTHFR C677T",
|
|
772
|
+
gene: "MTHFR",
|
|
773
|
+
zygosity: "heterozygous",
|
|
774
|
+
significance: "risk_factor",
|
|
775
|
+
inheritance: "maternal report",
|
|
776
|
+
sourceFamilyMemberIds: ["fam_01JNV44J4HH2F9H5S0VRZ4QJEB"],
|
|
777
|
+
note: "Reported from prior direct-to-consumer genetics summary.",
|
|
778
|
+
},
|
|
779
|
+
});
|
|
780
|
+
export const exampleFrontmatterMarkdown = Object.freeze({
|
|
781
|
+
core: `---
|
|
782
|
+
schemaVersion: murph.frontmatter.core.v1
|
|
783
|
+
docType: core
|
|
784
|
+
vaultId: vault_01JNV40W8VFYQ2H7CMJY5A9R4K
|
|
785
|
+
title: Murph Vault
|
|
786
|
+
timezone: America/New_York
|
|
787
|
+
updatedAt: 2026-03-12T20:00:00Z
|
|
788
|
+
activeExperimentSlugs:
|
|
789
|
+
- magnesium-sleep
|
|
790
|
+
---
|
|
791
|
+
|
|
792
|
+
# Core Summary
|
|
793
|
+
`,
|
|
794
|
+
journalDay: `---
|
|
795
|
+
schemaVersion: murph.frontmatter.journal-day.v1
|
|
796
|
+
docType: journal_day
|
|
797
|
+
dayKey: 2026-03-12
|
|
798
|
+
eventIds:
|
|
799
|
+
- evt_01JNV42F34M22V2PE9Q4KQ7H1X
|
|
800
|
+
- evt_01JNV43AK9SK58T6GX3DWRZH9Q
|
|
801
|
+
sampleStreams:
|
|
802
|
+
- heart_rate
|
|
803
|
+
- steps
|
|
804
|
+
- glucose
|
|
805
|
+
---
|
|
806
|
+
|
|
807
|
+
# 2026-03-12
|
|
808
|
+
`,
|
|
809
|
+
experiment: `---
|
|
810
|
+
schemaVersion: murph.frontmatter.experiment.v1
|
|
811
|
+
docType: experiment
|
|
812
|
+
experimentId: exp_01JNV4458HYPP53JDQCBP1QJFM
|
|
813
|
+
slug: magnesium-sleep
|
|
814
|
+
status: active
|
|
815
|
+
title: Magnesium for sleep onset
|
|
816
|
+
startedOn: 2026-03-12
|
|
817
|
+
hypothesis: Evening magnesium reduces time to fall asleep.
|
|
818
|
+
tags:
|
|
819
|
+
- sleep
|
|
820
|
+
- supplement
|
|
821
|
+
---
|
|
822
|
+
|
|
823
|
+
# Magnesium For Sleep Onset
|
|
824
|
+
`,
|
|
825
|
+
food: `---
|
|
826
|
+
schemaVersion: murph.frontmatter.food.v1
|
|
827
|
+
docType: food
|
|
828
|
+
foodId: food_01JNV422Y2M5ZBV64ZP4N1DRB1
|
|
829
|
+
slug: regular-acai-bowl
|
|
830
|
+
title: Regular Acai Bowl
|
|
831
|
+
status: active
|
|
832
|
+
summary: The usual acai bowl order from the neighborhood spot with repeat toppings.
|
|
833
|
+
kind: acai bowl
|
|
834
|
+
vendor: Neighborhood Acai Bar
|
|
835
|
+
location: Brooklyn, NY
|
|
836
|
+
serving: 1 bowl
|
|
837
|
+
aliases:
|
|
838
|
+
- regular acai bowl
|
|
839
|
+
- usual acai bowl
|
|
840
|
+
ingredients:
|
|
841
|
+
- acai base
|
|
842
|
+
- banana
|
|
843
|
+
- strawberries
|
|
844
|
+
- granola
|
|
845
|
+
- almond butter
|
|
846
|
+
tags:
|
|
847
|
+
- breakfast
|
|
848
|
+
- favorite
|
|
849
|
+
note: Typical order includes extra granola and no honey.
|
|
850
|
+
autoLogDaily:
|
|
851
|
+
time: 08:00
|
|
852
|
+
---
|
|
853
|
+
|
|
854
|
+
# Regular Acai Bowl
|
|
855
|
+
`,
|
|
856
|
+
provider: `---
|
|
857
|
+
schemaVersion: murph.frontmatter.provider.v1
|
|
858
|
+
docType: provider
|
|
859
|
+
providerId: prov_01JNV422Y2M5ZBV64ZP4N1DRB1
|
|
860
|
+
slug: primary-care-clinic
|
|
861
|
+
title: Primary Care Clinic
|
|
862
|
+
status: active
|
|
863
|
+
specialty: primary-care
|
|
864
|
+
organization: Murph Medical Group
|
|
865
|
+
location: New York, NY
|
|
866
|
+
website: https://example.com/providers/primary-care-clinic
|
|
867
|
+
phone: +1-555-0100
|
|
868
|
+
note: Preferred clinic for annual wellness visits.
|
|
869
|
+
aliases:
|
|
870
|
+
- HBC Primary Care
|
|
871
|
+
---
|
|
872
|
+
|
|
873
|
+
# Primary Care Clinic
|
|
874
|
+
`,
|
|
875
|
+
recipe: `---
|
|
876
|
+
schemaVersion: murph.frontmatter.recipe.v1
|
|
877
|
+
docType: recipe
|
|
878
|
+
recipeId: rcp_01JNV422Y2M5ZBV64ZP4N1DRB1
|
|
879
|
+
slug: sheet-pan-salmon-bowls
|
|
880
|
+
title: Sheet Pan Salmon Bowls
|
|
881
|
+
status: saved
|
|
882
|
+
summary: A reliable high-protein salmon bowl with roasted vegetables and rice.
|
|
883
|
+
cuisine: mediterranean
|
|
884
|
+
dishType: dinner
|
|
885
|
+
source: Family weeknight rotation
|
|
886
|
+
servings: 2
|
|
887
|
+
prepTimeMinutes: 15
|
|
888
|
+
cookTimeMinutes: 20
|
|
889
|
+
totalTimeMinutes: 35
|
|
890
|
+
tags:
|
|
891
|
+
- high-protein
|
|
892
|
+
- weeknight
|
|
893
|
+
ingredients:
|
|
894
|
+
- 2 salmon fillets
|
|
895
|
+
- 2 cups cooked rice
|
|
896
|
+
- 2 cups broccoli florets
|
|
897
|
+
- 1 tbsp olive oil
|
|
898
|
+
- 1 lemon
|
|
899
|
+
steps:
|
|
900
|
+
- Heat the oven to 220C and line a sheet pan.
|
|
901
|
+
- Toss the broccoli with olive oil and roast for 10 minutes.
|
|
902
|
+
- Add the salmon, season, and roast until cooked through.
|
|
903
|
+
- Serve over rice with lemon juice and any pan juices.
|
|
904
|
+
relatedGoalIds:
|
|
905
|
+
- goal_01JNV43AK9SK58T6GX3DWRZH9Q
|
|
906
|
+
relatedConditionIds:
|
|
907
|
+
- cond_01JNV43NDX1N7BX08NQ19MJ4DK
|
|
908
|
+
---
|
|
909
|
+
|
|
910
|
+
# Sheet Pan Salmon Bowls
|
|
911
|
+
`,
|
|
912
|
+
workoutFormat: `---
|
|
913
|
+
schemaVersion: murph.frontmatter.workout-format.v1
|
|
914
|
+
docType: workout_format
|
|
915
|
+
workoutFormatId: wfmt_01JNV422Y2M5ZBV64ZP4N1DRB1
|
|
916
|
+
slug: upper-body-a
|
|
917
|
+
title: Upper Body A
|
|
918
|
+
status: active
|
|
919
|
+
summary: Default upper-body strength session I repeat most weeks.
|
|
920
|
+
activityType: strength-training
|
|
921
|
+
durationMinutes: 45
|
|
922
|
+
strengthExercises:
|
|
923
|
+
-
|
|
924
|
+
exercise: pushups
|
|
925
|
+
setCount: 4
|
|
926
|
+
repsPerSet: 20
|
|
927
|
+
-
|
|
928
|
+
exercise: incline bench
|
|
929
|
+
setCount: 4
|
|
930
|
+
repsPerSet: 12
|
|
931
|
+
load: 65
|
|
932
|
+
loadUnit: lb
|
|
933
|
+
loadDescription: 45 lb bar plus 10 lb plates on both sides
|
|
934
|
+
tags:
|
|
935
|
+
- gym
|
|
936
|
+
- strength
|
|
937
|
+
note: Usual upper-body session when I do not need to vary the lifts.
|
|
938
|
+
---
|
|
939
|
+
|
|
940
|
+
# Upper Body A
|
|
941
|
+
`,
|
|
942
|
+
});
|
|
943
|
+
//# sourceMappingURL=examples.js.map
|