@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.
Files changed (89) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +24 -0
  3. package/dist/bank-entities.d.ts +35 -0
  4. package/dist/bank-entities.d.ts.map +1 -0
  5. package/dist/bank-entities.js +164 -0
  6. package/dist/bank-entities.js.map +1 -0
  7. package/dist/command-capabilities.d.ts +50 -0
  8. package/dist/command-capabilities.d.ts.map +1 -0
  9. package/dist/command-capabilities.js +149 -0
  10. package/dist/command-capabilities.js.map +1 -0
  11. package/dist/constants.d.ts +149 -0
  12. package/dist/constants.d.ts.map +1 -0
  13. package/dist/constants.js +232 -0
  14. package/dist/constants.js.map +1 -0
  15. package/dist/examples.d.ts +31 -0
  16. package/dist/examples.d.ts.map +1 -0
  17. package/dist/examples.js +943 -0
  18. package/dist/examples.js.map +1 -0
  19. package/dist/frontmatter.d.ts +28 -0
  20. package/dist/frontmatter.d.ts.map +1 -0
  21. package/dist/frontmatter.js +272 -0
  22. package/dist/frontmatter.js.map +1 -0
  23. package/dist/health-entities.d.ts +87 -0
  24. package/dist/health-entities.d.ts.map +1 -0
  25. package/dist/health-entities.js +349 -0
  26. package/dist/health-entities.js.map +1 -0
  27. package/dist/ids.d.ts +10 -0
  28. package/dist/ids.d.ts.map +1 -0
  29. package/dist/ids.js +27 -0
  30. package/dist/ids.js.map +1 -0
  31. package/dist/index.d.ts +16 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +16 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/registry-helpers.d.ts +31 -0
  36. package/dist/registry-helpers.d.ts.map +1 -0
  37. package/dist/registry-helpers.js +53 -0
  38. package/dist/registry-helpers.js.map +1 -0
  39. package/dist/schemas.d.ts +47 -0
  40. package/dist/schemas.d.ts.map +1 -0
  41. package/dist/schemas.js +50 -0
  42. package/dist/schemas.js.map +1 -0
  43. package/dist/scripts/generate-json-schema.js +13 -0
  44. package/dist/scripts/generate-json-schema.js.map +1 -0
  45. package/dist/scripts/verify.js +230 -0
  46. package/dist/scripts/verify.js.map +1 -0
  47. package/dist/shares.d.ts +715 -0
  48. package/dist/shares.d.ts.map +1 -0
  49. package/dist/shares.js +469 -0
  50. package/dist/shares.js.map +1 -0
  51. package/dist/time.d.ts +25 -0
  52. package/dist/time.d.ts.map +1 -0
  53. package/dist/time.js +241 -0
  54. package/dist/time.js.map +1 -0
  55. package/dist/tsconfig.build.tsbuildinfo +1 -0
  56. package/dist/types.d.ts +34 -0
  57. package/dist/types.d.ts.map +1 -0
  58. package/dist/types.js +2 -0
  59. package/dist/types.js.map +1 -0
  60. package/dist/validate.d.ts +18 -0
  61. package/dist/validate.d.ts.map +1 -0
  62. package/dist/validate.js +129 -0
  63. package/dist/validate.js.map +1 -0
  64. package/dist/zod.d.ts +1626 -0
  65. package/dist/zod.d.ts.map +1 -0
  66. package/dist/zod.js +834 -0
  67. package/dist/zod.js.map +1 -0
  68. package/generated/assessment-response.schema.json +101 -0
  69. package/generated/audit-record.schema.json +141 -0
  70. package/generated/event-record.schema.json +2708 -0
  71. package/generated/frontmatter-allergy.schema.json +82 -0
  72. package/generated/frontmatter-condition.schema.json +101 -0
  73. package/generated/frontmatter-core.schema.json +51 -0
  74. package/generated/frontmatter-experiment.schema.json +70 -0
  75. package/generated/frontmatter-family-member.schema.json +68 -0
  76. package/generated/frontmatter-food.schema.json +128 -0
  77. package/generated/frontmatter-genetic-variant.schema.json +81 -0
  78. package/generated/frontmatter-goal.schema.json +116 -0
  79. package/generated/frontmatter-journal-day.schema.json +52 -0
  80. package/generated/frontmatter-profile-current.schema.json +55 -0
  81. package/generated/frontmatter-protocol.schema.json +153 -0
  82. package/generated/frontmatter-provider.schema.json +81 -0
  83. package/generated/frontmatter-recipe.schema.json +124 -0
  84. package/generated/frontmatter-workout-format.schema.json +163 -0
  85. package/generated/inbox-capture-record.schema.json +332 -0
  86. package/generated/profile-snapshot.schema.json +131 -0
  87. package/generated/sample-record.schema.json +726 -0
  88. package/generated/vault-metadata.schema.json +324 -0
  89. package/package.json +69 -0
@@ -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