@murphai/contracts 0.1.14 → 0.1.17

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 (73) hide show
  1. package/LICENSE +201 -674
  2. package/dist/automation.d.ts +185 -0
  3. package/dist/automation.d.ts.map +1 -0
  4. package/dist/automation.js +110 -0
  5. package/dist/automation.js.map +1 -0
  6. package/dist/bank-entities.d.ts +6 -1
  7. package/dist/bank-entities.d.ts.map +1 -1
  8. package/dist/bank-entities.js +87 -10
  9. package/dist/bank-entities.js.map +1 -1
  10. package/dist/constants.d.ts +8 -1
  11. package/dist/constants.d.ts.map +1 -1
  12. package/dist/constants.js +8 -0
  13. package/dist/constants.js.map +1 -1
  14. package/dist/current-profile.d.ts +16 -0
  15. package/dist/current-profile.d.ts.map +1 -0
  16. package/dist/current-profile.js +163 -0
  17. package/dist/current-profile.js.map +1 -0
  18. package/dist/event-lifecycle.d.ts +28 -0
  19. package/dist/event-lifecycle.d.ts.map +1 -0
  20. package/dist/event-lifecycle.js +84 -0
  21. package/dist/event-lifecycle.js.map +1 -0
  22. package/dist/examples.d.ts.map +1 -1
  23. package/dist/examples.js +50 -96
  24. package/dist/examples.js.map +1 -1
  25. package/dist/health-entities.d.ts +44 -1
  26. package/dist/health-entities.d.ts.map +1 -1
  27. package/dist/health-entities.js +181 -11
  28. package/dist/health-entities.js.map +1 -1
  29. package/dist/index.d.ts +6 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +6 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/memory.d.ts +123 -0
  34. package/dist/memory.d.ts.map +1 -0
  35. package/dist/memory.js +295 -0
  36. package/dist/memory.js.map +1 -0
  37. package/dist/registry-helpers.d.ts.map +1 -1
  38. package/dist/registry-helpers.js +46 -5
  39. package/dist/registry-helpers.js.map +1 -1
  40. package/dist/relation-links.d.ts +67 -0
  41. package/dist/relation-links.d.ts.map +1 -0
  42. package/dist/relation-links.js +149 -0
  43. package/dist/relation-links.js.map +1 -0
  44. package/dist/scripts/verify.js +2 -0
  45. package/dist/scripts/verify.js.map +1 -1
  46. package/dist/shares.d.ts +222 -85
  47. package/dist/shares.d.ts.map +1 -1
  48. package/dist/shares.js +17 -5
  49. package/dist/shares.js.map +1 -1
  50. package/dist/vault.d.ts +32 -0
  51. package/dist/vault.d.ts.map +1 -0
  52. package/dist/vault.js +88 -0
  53. package/dist/vault.js.map +1 -0
  54. package/dist/zod.d.ts +468 -99
  55. package/dist/zod.d.ts.map +1 -1
  56. package/dist/zod.js +37 -74
  57. package/dist/zod.js.map +1 -1
  58. package/generated/assessment-response.schema.json +1 -1
  59. package/generated/audit-record.schema.json +2 -1
  60. package/generated/event-record.schema.json +4246 -500
  61. package/generated/frontmatter-allergy.schema.json +22 -0
  62. package/generated/frontmatter-condition.schema.json +44 -0
  63. package/generated/frontmatter-family-member.schema.json +22 -0
  64. package/generated/frontmatter-food.schema.json +22 -0
  65. package/generated/frontmatter-genetic-variant.schema.json +22 -0
  66. package/generated/frontmatter-goal.schema.json +62 -0
  67. package/generated/frontmatter-protocol.schema.json +70 -0
  68. package/generated/frontmatter-recipe.schema.json +44 -0
  69. package/generated/frontmatter-workout-format.schema.json +22 -102
  70. package/generated/inbox-capture-record.schema.json +0 -1
  71. package/generated/vault-metadata.schema.json +5 -291
  72. package/package.json +5 -11
  73. package/dist/tsconfig.build.tsbuildinfo +0 -1
package/dist/constants.js CHANGED
@@ -1,6 +1,7 @@
1
1
  export const CONTRACT_SCHEMA_VERSION = Object.freeze({
2
2
  assessmentResponse: "murph.assessment-response.v1",
3
3
  audit: "murph.audit.v1",
4
+ automationFrontmatter: "murph.frontmatter.automation.v1",
4
5
  event: "murph.event.v1",
5
6
  inboxCapture: "murph.inbox-capture.v1",
6
7
  allergyFrontmatter: "murph.frontmatter.allergy.v1",
@@ -11,6 +12,7 @@ export const CONTRACT_SCHEMA_VERSION = Object.freeze({
11
12
  geneticVariantFrontmatter: "murph.frontmatter.genetic-variant.v1",
12
13
  goalFrontmatter: "murph.frontmatter.goal.v1",
13
14
  journalDayFrontmatter: "murph.frontmatter.journal-day.v1",
15
+ memoryFrontmatter: "murph.frontmatter.memory.v1",
14
16
  coreFrontmatter: "murph.frontmatter.core.v1",
15
17
  profileCurrentFrontmatter: "murph.frontmatter.profile-current.v1",
16
18
  profileSnapshot: "murph.profile-snapshot.v1",
@@ -23,11 +25,13 @@ export const CONTRACT_SCHEMA_VERSION = Object.freeze({
23
25
  sharePack: "murph.share-pack.v1",
24
26
  vault: "murph.vault.v1",
25
27
  });
28
+ export const CURRENT_VAULT_FORMAT_VERSION = 1;
26
29
  export const CONTRACT_ID_FORMAT = "prefix_ulid";
27
30
  export const ID_PREFIXES = Object.freeze({
28
31
  allergy: "alg",
29
32
  assessment: "asmt",
30
33
  audit: "aud",
34
+ automation: "automation",
31
35
  condition: "cond",
32
36
  document: "doc",
33
37
  event: "evt",
@@ -36,6 +40,7 @@ export const ID_PREFIXES = Object.freeze({
36
40
  food: "food",
37
41
  goal: "goal",
38
42
  meal: "meal",
43
+ memory: "mem",
39
44
  pack: "pack",
40
45
  profileSnapshot: "psnap",
41
46
  provider: "prov",
@@ -128,6 +133,7 @@ export const AUDIT_ACTIONS = Object.freeze([
128
133
  "intake_import",
129
134
  "intake_project",
130
135
  "vault_init",
136
+ "vault_upgrade",
131
137
  "vault_repair",
132
138
  "document_import",
133
139
  "device_import",
@@ -154,6 +160,7 @@ export const AUDIT_STATUSES = Object.freeze(["success", "failure"]);
154
160
  export const FILE_CHANGE_OPERATIONS = Object.freeze(["create", "append", "update", "copy"]);
155
161
  export const FRONTMATTER_DOC_TYPES = Object.freeze({
156
162
  allergy: "allergy",
163
+ automation: "automation",
157
164
  core: "core",
158
165
  condition: "condition",
159
166
  experiment: "experiment",
@@ -162,6 +169,7 @@ export const FRONTMATTER_DOC_TYPES = Object.freeze({
162
169
  geneticVariant: "genetic_variant",
163
170
  goal: "goal",
164
171
  journalDay: "journal_day",
172
+ memory: "memory",
165
173
  profileCurrent: "profile_current",
166
174
  provider: "provider",
167
175
  recipe: "recipe",
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { type ProfileCurrentFrontmatter } from "./zod.ts";
2
+ export interface CurrentProfileDocumentInput {
3
+ snapshotId: string;
4
+ updatedAt: string;
5
+ source: unknown;
6
+ sourceAssessmentIds?: readonly string[] | null;
7
+ sourceEventIds?: readonly string[] | null;
8
+ profile: Record<string, unknown>;
9
+ }
10
+ export interface CurrentProfileDocument {
11
+ attributes: ProfileCurrentFrontmatter;
12
+ body: string;
13
+ markdown: string;
14
+ }
15
+ export declare function buildCurrentProfileDocument(input: CurrentProfileDocumentInput): CurrentProfileDocument;
16
+ //# sourceMappingURL=current-profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"current-profile.d.ts","sourceRoot":"","sources":["../src/current-profile.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,UAAU,CAAC;AAKlB,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/C,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,yBAAyB,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAiKD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,2BAA2B,GACjC,sBAAsB,CA2DxB"}
@@ -0,0 +1,163 @@
1
+ import { CONTRACT_SCHEMA_VERSION, FRONTMATTER_DOC_TYPES, } from "./constants.js";
2
+ import { profileCurrentFrontmatterSchema, } from "./zod.js";
3
+ import { safeParseContract } from "./validate.js";
4
+ function isPlainObject(value) {
5
+ return Object.prototype.toString.call(value) === "[object Object]";
6
+ }
7
+ function firstObject(value, key) {
8
+ const candidate = value[key];
9
+ return isPlainObject(candidate) ? candidate : null;
10
+ }
11
+ function firstStringArray(value, key) {
12
+ const candidate = value[key];
13
+ if (!Array.isArray(candidate)) {
14
+ return [];
15
+ }
16
+ return candidate.filter((entry) => typeof entry === "string");
17
+ }
18
+ function stringifyScalar(value) {
19
+ if (value === null) {
20
+ return "null";
21
+ }
22
+ if (typeof value === "boolean") {
23
+ return value ? "true" : "false";
24
+ }
25
+ if (typeof value === "number" && Number.isFinite(value)) {
26
+ return String(value);
27
+ }
28
+ if (typeof value === "string") {
29
+ if (!value) {
30
+ return "\"\"";
31
+ }
32
+ if (/^[A-Za-z0-9_./:-]+$/u.test(value)) {
33
+ return value;
34
+ }
35
+ return JSON.stringify(value);
36
+ }
37
+ throw new Error("Frontmatter supports only scalars, arrays, and plain objects.");
38
+ }
39
+ function serializeFrontmatterNode(value, indent = 0) {
40
+ const padding = " ".repeat(indent);
41
+ if (Array.isArray(value)) {
42
+ if (value.length === 0) {
43
+ return `${padding}[]`;
44
+ }
45
+ return value
46
+ .map((item) => {
47
+ if (Array.isArray(item) || isPlainObject(item)) {
48
+ const nested = serializeFrontmatterNode(item, indent + 2);
49
+ return `${padding}-\n${nested}`;
50
+ }
51
+ return `${padding}- ${stringifyScalar(item)}`;
52
+ })
53
+ .join("\n");
54
+ }
55
+ if (isPlainObject(value)) {
56
+ const entries = Object.entries(value);
57
+ if (entries.length === 0) {
58
+ return `${padding}{}`;
59
+ }
60
+ return entries
61
+ .map(([key, entryValue]) => {
62
+ if (!/^[A-Za-z0-9_-]+$/u.test(key)) {
63
+ throw new Error(`Invalid frontmatter key "${key}".`);
64
+ }
65
+ if (Array.isArray(entryValue) || isPlainObject(entryValue)) {
66
+ const nested = serializeFrontmatterNode(entryValue, indent + 2);
67
+ if (nested.trim() === "[]") {
68
+ return `${padding}${key}: []`;
69
+ }
70
+ if (nested.trim() === "{}") {
71
+ return `${padding}${key}: {}`;
72
+ }
73
+ return `${padding}${key}:\n${nested}`;
74
+ }
75
+ return `${padding}${key}: ${stringifyScalar(entryValue)}`;
76
+ })
77
+ .join("\n");
78
+ }
79
+ return `${padding}${stringifyScalar(value)}`;
80
+ }
81
+ function stringifyFrontmatterDocument(input) {
82
+ const header = Object.keys(input.attributes).length === 0
83
+ ? ""
84
+ : serializeFrontmatterNode(input.attributes);
85
+ return header
86
+ ? `---\n${header}\n---\n${input.body}`
87
+ : `---\n---\n${input.body}`;
88
+ }
89
+ function renderProfileValue(value, depth = 0) {
90
+ const indent = " ".repeat(depth);
91
+ if (Array.isArray(value)) {
92
+ if (value.length === 0) {
93
+ return [`${indent}[]`];
94
+ }
95
+ return value.flatMap((entry) => {
96
+ if (isPlainObject(entry) || Array.isArray(entry)) {
97
+ return [`${indent}-`, ...renderProfileValue(entry, depth + 1)];
98
+ }
99
+ return [`${indent}- ${String(entry)}`];
100
+ });
101
+ }
102
+ if (isPlainObject(value)) {
103
+ const entries = Object.entries(value).sort(([left], [right]) => left.localeCompare(right));
104
+ if (entries.length === 0) {
105
+ return [`${indent}{}`];
106
+ }
107
+ return entries.flatMap(([key, entry]) => {
108
+ if (isPlainObject(entry) || Array.isArray(entry)) {
109
+ return [`${indent}- ${key}:`, ...renderProfileValue(entry, depth + 1)];
110
+ }
111
+ return [`${indent}- ${key}: ${String(entry)}`];
112
+ });
113
+ }
114
+ return [`${indent}${String(value)}`];
115
+ }
116
+ export function buildCurrentProfileDocument(input) {
117
+ const topGoalIds = firstStringArray(firstObject(input.profile, "goals") ?? {}, "topGoalIds");
118
+ const unitPreferences = firstObject(input.profile, "unitPreferences") ?? undefined;
119
+ const rawAttributes = Object.fromEntries(Object.entries({
120
+ schemaVersion: CONTRACT_SCHEMA_VERSION.profileCurrentFrontmatter,
121
+ docType: FRONTMATTER_DOC_TYPES.profileCurrent,
122
+ snapshotId: input.snapshotId,
123
+ updatedAt: input.updatedAt,
124
+ sourceAssessmentIds: input.sourceAssessmentIds?.length
125
+ ? [...input.sourceAssessmentIds]
126
+ : undefined,
127
+ sourceEventIds: input.sourceEventIds?.length ? [...input.sourceEventIds] : undefined,
128
+ topGoalIds: topGoalIds.length > 0 ? topGoalIds : undefined,
129
+ unitPreferences,
130
+ }).filter(([, value]) => value !== undefined));
131
+ const attributesResult = safeParseContract(profileCurrentFrontmatterSchema, rawAttributes);
132
+ if (!attributesResult.success) {
133
+ throw new Error(attributesResult.errors.join("; "));
134
+ }
135
+ const attributes = Object.fromEntries(Object.entries(attributesResult.data).filter(([, value]) => value !== undefined));
136
+ const body = [
137
+ "# Current Profile",
138
+ "",
139
+ `Snapshot ID: \`${input.snapshotId}\``,
140
+ `Recorded At: ${input.updatedAt}`,
141
+ `Source: ${String(input.source)}`,
142
+ "",
143
+ "## Structured Profile",
144
+ "",
145
+ ...renderProfileValue(input.profile),
146
+ "",
147
+ "## JSON",
148
+ "",
149
+ "```json",
150
+ JSON.stringify(input.profile, null, 2),
151
+ "```",
152
+ "",
153
+ ].join("\n");
154
+ return {
155
+ attributes,
156
+ body,
157
+ markdown: stringifyFrontmatterDocument({
158
+ attributes: attributes,
159
+ body,
160
+ }),
161
+ };
162
+ }
163
+ //# sourceMappingURL=current-profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"current-profile.js","sourceRoot":"","sources":["../src/current-profile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ export interface EventLifecycle {
2
+ revision: number;
3
+ state?: "deleted";
4
+ }
5
+ export type EventLifecycleParseResult = {
6
+ state: "missing";
7
+ } | {
8
+ state: "invalid";
9
+ } | {
10
+ state: "valid";
11
+ lifecycle: EventLifecycle;
12
+ };
13
+ export interface EventRevisionPriorityFields {
14
+ lifecycle?: unknown;
15
+ occurredAt?: string | null;
16
+ recordedAt?: string | null;
17
+ relativePath?: string | null;
18
+ }
19
+ export interface EventRevisionCollapseFields extends EventRevisionPriorityFields {
20
+ eventId: string;
21
+ }
22
+ export declare function parseEventLifecycle(value: unknown): EventLifecycleParseResult;
23
+ export declare function eventRevisionFromLifecycle(value: unknown): number;
24
+ export declare function isDeletedEventLifecycle(value: unknown): boolean;
25
+ export declare function hasInvalidEventLifecycle(value: unknown): boolean;
26
+ export declare function compareEventRevisionPriority(left: EventRevisionPriorityFields, right: EventRevisionPriorityFields): number;
27
+ export declare function collapseEventRevisions<T>(values: readonly T[], selectFields: (value: T) => EventRevisionCollapseFields): T[];
28
+ //# sourceMappingURL=event-lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-lifecycle.d.ts","sourceRoot":"","sources":["../src/event-lifecycle.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,MAAM,yBAAyB,GACjC;IACE,KAAK,EAAE,SAAS,CAAC;CAClB,GACD;IACE,KAAK,EAAE,SAAS,CAAC;CAClB,GACD;IACE,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,cAAc,CAAC;CAC3B,CAAC;AAEN,MAAM,WAAW,2BAA2B;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,2BAA4B,SAAQ,2BAA2B;IAC9E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,GACb,yBAAyB,CA8B3B;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,GACb,MAAM,CAGR;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,GACb,OAAO,CAGT;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,OAAO,GACb,OAAO,CAET;AAED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,2BAA2B,EACjC,KAAK,EAAE,2BAA2B,GACjC,MAAM,CAuBR;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,MAAM,EAAE,SAAS,CAAC,EAAE,EACpB,YAAY,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,2BAA2B,GACtD,CAAC,EAAE,CAyBL"}
@@ -0,0 +1,84 @@
1
+ export function parseEventLifecycle(value) {
2
+ if (value === undefined) {
3
+ return { state: "missing" };
4
+ }
5
+ if (!isPlainRecord(value)) {
6
+ return { state: "invalid" };
7
+ }
8
+ const revision = value.revision;
9
+ if (typeof revision !== "number" ||
10
+ !Number.isInteger(revision) ||
11
+ revision < 1) {
12
+ return { state: "invalid" };
13
+ }
14
+ const state = normalizeOptionalString(value.state);
15
+ if (state && state !== "deleted") {
16
+ return { state: "invalid" };
17
+ }
18
+ return {
19
+ state: "valid",
20
+ lifecycle: {
21
+ revision,
22
+ state: state,
23
+ },
24
+ };
25
+ }
26
+ export function eventRevisionFromLifecycle(value) {
27
+ const parsed = parseEventLifecycle(value);
28
+ return parsed.state === "valid" ? parsed.lifecycle.revision : 1;
29
+ }
30
+ export function isDeletedEventLifecycle(value) {
31
+ const parsed = parseEventLifecycle(value);
32
+ return parsed.state === "valid" && parsed.lifecycle.state === "deleted";
33
+ }
34
+ export function hasInvalidEventLifecycle(value) {
35
+ return parseEventLifecycle(value).state === "invalid";
36
+ }
37
+ export function compareEventRevisionPriority(left, right) {
38
+ const revisionComparison = eventRevisionFromLifecycle(left.lifecycle)
39
+ - eventRevisionFromLifecycle(right.lifecycle);
40
+ if (revisionComparison !== 0) {
41
+ return revisionComparison;
42
+ }
43
+ const leftRecordedAt = left.recordedAt ?? "";
44
+ const rightRecordedAt = right.recordedAt ?? "";
45
+ const recordedAtComparison = leftRecordedAt.localeCompare(rightRecordedAt);
46
+ if (recordedAtComparison !== 0) {
47
+ return recordedAtComparison;
48
+ }
49
+ const leftOccurredAt = left.occurredAt ?? "";
50
+ const rightOccurredAt = right.occurredAt ?? "";
51
+ const occurredAtComparison = leftOccurredAt.localeCompare(rightOccurredAt);
52
+ if (occurredAtComparison !== 0) {
53
+ return occurredAtComparison;
54
+ }
55
+ return (left.relativePath ?? "").localeCompare(right.relativePath ?? "");
56
+ }
57
+ export function collapseEventRevisions(values, selectFields) {
58
+ const latestByEventId = new Map();
59
+ for (const value of values) {
60
+ const fields = selectFields(value);
61
+ const eventId = normalizeOptionalString(fields.eventId);
62
+ if (!eventId || hasInvalidEventLifecycle(fields.lifecycle)) {
63
+ continue;
64
+ }
65
+ const current = latestByEventId.get(eventId);
66
+ if (!current || compareEventRevisionPriority(current.fields, fields) < 0) {
67
+ latestByEventId.set(eventId, { value, fields });
68
+ }
69
+ }
70
+ return [...latestByEventId.values()]
71
+ .filter(({ fields }) => !isDeletedEventLifecycle(fields.lifecycle))
72
+ .map(({ value }) => value);
73
+ }
74
+ function isPlainRecord(value) {
75
+ return typeof value === "object" && value !== null && !Array.isArray(value);
76
+ }
77
+ function normalizeOptionalString(value) {
78
+ if (typeof value !== "string") {
79
+ return undefined;
80
+ }
81
+ const normalized = value.trim();
82
+ return normalized.length > 0 ? normalized : undefined;
83
+ }
84
+ //# sourceMappingURL=event-lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-lifecycle.js","sourceRoot":"","sources":["../src/event-lifecycle.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"examples.d.ts","sourceRoot":"","sources":["../src/examples.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,wBAAwB,EACxB,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,EACf,yBAAyB,EACzB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,YAAY,EACZ,aAAa,EACd,MAAM,UAAU,CAAC;AAElB,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,EAAE,qBAAqB,CAAC;IAClC,UAAU,EAAE,qBAAqB,CAAC;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,aAAa,EAAE,wBAAwB,CAAC;CACzC,CAAC;AAEF,KAAK,yBAAyB,GAAG;IAC/B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,SAAS,EAAE,oBAAoB,CAAC;IAChC,YAAY,EAAE,uBAAuB,CAAC;IACtC,cAAc,EAAE,yBAAyB,CAAC;IAC1C,IAAI,EAAE,eAAe,CAAC;IACtB,cAAc,EAAE,yBAAyB,CAAC;IAC1C,QAAQ,EAAE,mBAAmB,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,aAAa,CAgEvD,CAAC;AAEH,eAAO,MAAM,0BAA0B,EAAE,SAAS,QAAQ,CAAC,kBAAkB,CAAC,EAiD5E,CAAC;AAEH,eAAO,MAAM,mBAAmB,EAAE,SAAS,QAAQ,CAAC,WAAW,CAAC,EAwT9D,CAAC;AAEH,eAAO,MAAM,oBAAoB,EAAE,SAAS,QAAQ,CAAC,YAAY,CAAC,EAiFhE,CAAC;AAEH,eAAO,MAAM,mBAAmB,EAAE,SAAS,QAAQ,CAAC,WAAW,CAAC,EAkC9D,CAAC;AAEH,eAAO,MAAM,0BAA0B,EAAE,SAAS,QAAQ,CAAC,wBAAwB,CAAC,EAsBlF,CAAC;AAEH,eAAO,MAAM,uBAAuB,EAAE,SAAS,QAAQ,CAAC,qBAAqB,CAAC,EAmC5E,CAAC;AAEH,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,mBAAmB,CA6JlE,CAAC;AAEH,eAAO,MAAM,+BAA+B,EAAE,QAAQ,CAAC,yBAAyB,CAwH9E,CAAC;AAEH,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,mBAAmB,EAAE,MAAM,CAAC,CAoNzF,CAAC"}
1
+ {"version":3,"file":"examples.d.ts","sourceRoot":"","sources":["../src/examples.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,kBAAkB,EAClB,wBAAwB,EACxB,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,EACf,yBAAyB,EACzB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,YAAY,EACZ,aAAa,EACd,MAAM,UAAU,CAAC;AAElB,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,EAAE,qBAAqB,CAAC;IAClC,UAAU,EAAE,qBAAqB,CAAC;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,aAAa,EAAE,wBAAwB,CAAC;CACzC,CAAC;AAEF,KAAK,yBAAyB,GAAG;IAC/B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,SAAS,EAAE,oBAAoB,CAAC;IAChC,YAAY,EAAE,uBAAuB,CAAC;IACtC,cAAc,EAAE,yBAAyB,CAAC;IAC1C,IAAI,EAAE,eAAe,CAAC;IACtB,cAAc,EAAE,yBAAyB,CAAC;IAC1C,QAAQ,EAAE,mBAAmB,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,aAAa,CAMvD,CAAC;AAEH,eAAO,MAAM,0BAA0B,EAAE,SAAS,QAAQ,CAAC,kBAAkB,CAAC,EAgD5E,CAAC;AAEH,eAAO,MAAM,mBAAmB,EAAE,SAAS,QAAQ,CAAC,WAAW,CAAC,EA6V9D,CAAC;AAEH,eAAO,MAAM,oBAAoB,EAAE,SAAS,QAAQ,CAAC,YAAY,CAAC,EAiFhE,CAAC;AAEH,eAAO,MAAM,mBAAmB,EAAE,SAAS,QAAQ,CAAC,WAAW,CAAC,EAkC9D,CAAC;AAEH,eAAO,MAAM,0BAA0B,EAAE,SAAS,QAAQ,CAAC,wBAAwB,CAAC,EAsBlF,CAAC;AAEH,eAAO,MAAM,uBAAuB,EAAE,SAAS,QAAQ,CAAC,qBAAqB,CAAC,EAmC5E,CAAC;AAEH,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,mBAAmB,CA+IlE,CAAC;AAEH,eAAO,MAAM,+BAA+B,EAAE,QAAQ,CAAC,yBAAyB,CAwH9E,CAAC;AAEH,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,mBAAmB,EAAE,MAAM,CAAC,CAyMzF,CAAC"}
package/dist/examples.js CHANGED
@@ -1,67 +1,10 @@
1
+ import { CURRENT_VAULT_FORMAT_VERSION } from "./constants.js";
1
2
  export const exampleVaultMetadata = Object.freeze({
2
- schemaVersion: "murph.vault.v1",
3
+ formatVersion: CURRENT_VAULT_FORMAT_VERSION,
3
4
  vaultId: "vault_01JNV40W8VFYQ2H7CMJY5A9R4K",
4
5
  createdAt: "2026-03-12T14:00:00Z",
5
6
  title: "Murph Vault",
6
7
  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
8
  });
66
9
  export const exampleInboxCaptureRecords = Object.freeze([
67
10
  {
@@ -69,7 +12,6 @@ export const exampleInboxCaptureRecords = Object.freeze([
69
12
  captureId: "cap_3f9f0d778d89c3beec6b8a13dc",
70
13
  identityKey: "imessage\u0000self\u0000msg-123",
71
14
  eventId: "evt_01JNV41B483QH9GQ1Y08D7RMTA",
72
- auditId: "aud_01JNV45RHN0TQ9ZXE0A7YSE1YQ",
73
15
  source: "imessage",
74
16
  accountId: "self",
75
17
  externalId: "msg-123",
@@ -138,6 +80,16 @@ export const exampleEventRecords = Object.freeze([
138
80
  tags: ["clinic", "pdf"],
139
81
  relatedIds: ["doc_01JNV41Q9MN0S1R6ZMW7FGD9DG"],
140
82
  rawRefs: ["raw/documents/2026/03/doc_01JNV41Q9MN0S1R6ZMW7FGD9DG/visit-summary.pdf"],
83
+ attachments: [
84
+ {
85
+ role: "source_document",
86
+ kind: "document",
87
+ relativePath: "raw/documents/2026/03/doc_01JNV41Q9MN0S1R6ZMW7FGD9DG/visit-summary.pdf",
88
+ mediaType: "application/pdf",
89
+ sha256: "1111111111111111111111111111111111111111111111111111111111111111",
90
+ originalFileName: "visit-summary.pdf",
91
+ },
92
+ ],
141
93
  documentId: "doc_01JNV41Q9MN0S1R6ZMW7FGD9DG",
142
94
  documentPath: "raw/documents/2026/03/doc_01JNV41Q9MN0S1R6ZMW7FGD9DG/visit-summary.pdf",
143
95
  mimeType: "application/pdf",
@@ -156,6 +108,16 @@ export const exampleEventRecords = Object.freeze([
156
108
  tags: ["meal", "lunch"],
157
109
  relatedIds: ["meal_01JNV42NP0KH6JQXMZM1G0V6SE"],
158
110
  rawRefs: ["raw/meals/2026/03/meal_01JNV42NP0KH6JQXMZM1G0V6SE/photo-01.jpg"],
111
+ attachments: [
112
+ {
113
+ role: "photo",
114
+ kind: "photo",
115
+ relativePath: "raw/meals/2026/03/meal_01JNV42NP0KH6JQXMZM1G0V6SE/photo-01.jpg",
116
+ mediaType: "image/jpeg",
117
+ sha256: "2222222222222222222222222222222222222222222222222222222222222222",
118
+ originalFileName: "photo-01.jpg",
119
+ },
120
+ ],
159
121
  mealId: "meal_01JNV42NP0KH6JQXMZM1G0V6SE",
160
122
  photoPaths: ["raw/meals/2026/03/meal_01JNV42NP0KH6JQXMZM1G0V6SE/photo-01.jpg"],
161
123
  audioPaths: [],
@@ -302,6 +264,14 @@ export const exampleEventRecords = Object.freeze([
302
264
  activityType: "walk",
303
265
  durationMinutes: 42,
304
266
  distanceKm: 3.4,
267
+ workout: {
268
+ sourceApp: "oura",
269
+ sourceWorkoutId: "walk-01JNV44WS3W0R27XPTKFC3QFJA",
270
+ startedAt: "2026-03-12T17:18:00Z",
271
+ endedAt: "2026-03-12T18:00:00Z",
272
+ sessionNote: "Evening walk",
273
+ exercises: [],
274
+ },
305
275
  },
306
276
  {
307
277
  schemaVersion: "murph.event.v1",
@@ -315,20 +285,19 @@ export const exampleEventRecords = Object.freeze([
315
285
  note: "Paused the first rep on each work set.",
316
286
  activityType: "strength-training",
317
287
  durationMinutes: 20,
318
- strengthExercises: [
319
- {
320
- exercise: "Pushups",
321
- setCount: 4,
322
- repsPerSet: 20,
323
- },
288
+ attachments: [
324
289
  {
325
- exercise: "Incline Bench Press",
326
- setCount: 4,
327
- repsPerSet: 12,
328
- load: 65,
329
- loadUnit: "lb",
290
+ role: "media_1",
291
+ kind: "photo",
292
+ relativePath: "raw/workouts/2026/03/evt_01JNV44WS3W0R27XPTKFC3QFJB/progress-front.jpg",
293
+ mediaType: "image/jpeg",
294
+ sha256: "3333333333333333333333333333333333333333333333333333333333333333",
295
+ originalFileName: "progress-front.jpg",
330
296
  },
331
297
  ],
298
+ rawRefs: [
299
+ "raw/workouts/2026/03/evt_01JNV44WS3W0R27XPTKFC3QFJB/progress-front.jpg"
300
+ ],
332
301
  workout: {
333
302
  sourceApp: "manual",
334
303
  startedAt: "2026-03-12T17:55:00Z",
@@ -381,6 +350,16 @@ export const exampleEventRecords = Object.freeze([
381
350
  source: "manual",
382
351
  title: "Weekly check-in",
383
352
  note: "Morning fasted check-in.",
353
+ attachments: [
354
+ {
355
+ role: "media_1",
356
+ kind: "photo",
357
+ relativePath: "raw/measurements/2026/03/evt_01JNV450A1B2C3D4E5F6G7H8JK/front.jpg",
358
+ mediaType: "image/jpeg",
359
+ sha256: "4444444444444444444444444444444444444444444444444444444444444444",
360
+ originalFileName: "front.jpg",
361
+ }
362
+ ],
384
363
  measurements: [
385
364
  { type: "weight", value: 182.4, unit: "lb" },
386
365
  { type: "waist", value: 33.5, unit: "in" },
@@ -713,20 +692,6 @@ export const exampleFrontmatterObjects = Object.freeze({
713
692
  summary: "Default push-focused strength session I repeat most weeks.",
714
693
  activityType: "strength-training",
715
694
  durationMinutes: 45,
716
- strengthExercises: [
717
- {
718
- exercise: "Pushups",
719
- setCount: 4,
720
- repsPerSet: 20,
721
- },
722
- {
723
- exercise: "Incline Bench Press",
724
- setCount: 4,
725
- repsPerSet: 12,
726
- load: 65,
727
- loadUnit: "lb",
728
- },
729
- ],
730
695
  template: {
731
696
  routineNote: "Add one extra triceps set if the session feels easy.",
732
697
  exercises: [
@@ -1023,17 +988,6 @@ status: active
1023
988
  summary: Default push-focused strength session I repeat most weeks.
1024
989
  activityType: strength-training
1025
990
  durationMinutes: 45
1026
- strengthExercises:
1027
- -
1028
- exercise: Pushups
1029
- setCount: 4
1030
- repsPerSet: 20
1031
- -
1032
- exercise: Incline Bench Press
1033
- setCount: 4
1034
- repsPerSet: 12
1035
- load: 65
1036
- loadUnit: lb
1037
991
  template:
1038
992
  routineNote: Add one extra triceps set if the session feels easy.
1039
993
  exercises: