@murphai/contracts 0.1.15 → 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
@@ -0,0 +1,123 @@
1
+ import { z } from "zod";
2
+ export declare const memoryDocumentRelativePath = "bank/memory.md";
3
+ export declare const memoryDocumentDocType = "murph.memory.v1";
4
+ export declare const memoryDocumentSchemaVersion = 1;
5
+ export declare const memorySectionValues: readonly ["Identity", "Preferences", "Instructions", "Context"];
6
+ export declare const memorySectionSchema: z.ZodEnum<{
7
+ Identity: "Identity";
8
+ Preferences: "Preferences";
9
+ Instructions: "Instructions";
10
+ Context: "Context";
11
+ }>;
12
+ export declare const memoryRecordMetadataSchema: z.ZodObject<{
13
+ id: z.ZodString;
14
+ createdAt: z.ZodDefault<z.ZodNullable<z.ZodString>>;
15
+ updatedAt: z.ZodDefault<z.ZodNullable<z.ZodString>>;
16
+ }, z.core.$strict>;
17
+ export declare const memoryDocumentFrontmatterSchema: z.ZodObject<{
18
+ docType: z.ZodLiteral<"murph.memory.v1">;
19
+ schemaVersion: z.ZodLiteral<1>;
20
+ title: z.ZodDefault<z.ZodString>;
21
+ updatedAt: z.ZodString;
22
+ }, z.core.$strict>;
23
+ export declare const memoryRecordSchema: z.ZodObject<{
24
+ id: z.ZodString;
25
+ section: z.ZodEnum<{
26
+ Identity: "Identity";
27
+ Preferences: "Preferences";
28
+ Instructions: "Instructions";
29
+ Context: "Context";
30
+ }>;
31
+ text: z.ZodString;
32
+ createdAt: z.ZodNullable<z.ZodString>;
33
+ updatedAt: z.ZodNullable<z.ZodString>;
34
+ sourceLine: z.ZodNumber;
35
+ sourcePath: z.ZodString;
36
+ }, z.core.$strict>;
37
+ export declare const memoryDocumentSchema: z.ZodObject<{
38
+ frontmatter: z.ZodObject<{
39
+ docType: z.ZodLiteral<"murph.memory.v1">;
40
+ schemaVersion: z.ZodLiteral<1>;
41
+ title: z.ZodDefault<z.ZodString>;
42
+ updatedAt: z.ZodString;
43
+ }, z.core.$strict>;
44
+ records: z.ZodArray<z.ZodObject<{
45
+ id: z.ZodString;
46
+ section: z.ZodEnum<{
47
+ Identity: "Identity";
48
+ Preferences: "Preferences";
49
+ Instructions: "Instructions";
50
+ Context: "Context";
51
+ }>;
52
+ text: z.ZodString;
53
+ createdAt: z.ZodNullable<z.ZodString>;
54
+ updatedAt: z.ZodNullable<z.ZodString>;
55
+ sourceLine: z.ZodNumber;
56
+ sourcePath: z.ZodString;
57
+ }, z.core.$strict>>;
58
+ }, z.core.$strict>;
59
+ export declare const memoryDocumentSnapshotSchema: z.ZodObject<{
60
+ frontmatter: z.ZodObject<{
61
+ docType: z.ZodLiteral<"murph.memory.v1">;
62
+ schemaVersion: z.ZodLiteral<1>;
63
+ title: z.ZodDefault<z.ZodString>;
64
+ updatedAt: z.ZodString;
65
+ }, z.core.$strict>;
66
+ records: z.ZodArray<z.ZodObject<{
67
+ id: z.ZodString;
68
+ section: z.ZodEnum<{
69
+ Identity: "Identity";
70
+ Preferences: "Preferences";
71
+ Instructions: "Instructions";
72
+ Context: "Context";
73
+ }>;
74
+ text: z.ZodString;
75
+ createdAt: z.ZodNullable<z.ZodString>;
76
+ updatedAt: z.ZodNullable<z.ZodString>;
77
+ sourceLine: z.ZodNumber;
78
+ sourcePath: z.ZodString;
79
+ }, z.core.$strict>>;
80
+ exists: z.ZodBoolean;
81
+ markdown: z.ZodString;
82
+ sourcePath: z.ZodString;
83
+ updatedAt: z.ZodNullable<z.ZodString>;
84
+ }, z.core.$strict>;
85
+ export type MemoryDocumentDocType = typeof memoryDocumentDocType;
86
+ export type MemorySection = (typeof memorySectionValues)[number];
87
+ export type MemoryDocumentFrontmatter = z.infer<typeof memoryDocumentFrontmatterSchema>;
88
+ export type MemoryRecordMetadata = z.infer<typeof memoryRecordMetadataSchema>;
89
+ export type MemoryRecord = z.infer<typeof memoryRecordSchema>;
90
+ export type MemoryDocument = z.infer<typeof memoryDocumentSchema>;
91
+ export type MemoryDocumentSnapshot = z.infer<typeof memoryDocumentSnapshotSchema>;
92
+ export interface ParseMemoryDocumentInput {
93
+ sourcePath?: string | null;
94
+ text: string;
95
+ }
96
+ export interface RenderMemoryDocumentInput {
97
+ document: MemoryDocument;
98
+ }
99
+ export interface UpsertMemoryRecordInput {
100
+ now?: Date;
101
+ recordId?: string | null;
102
+ section: MemorySection;
103
+ text: string;
104
+ }
105
+ export interface ForgetMemoryRecordInput {
106
+ recordId: string;
107
+ }
108
+ export declare function createDefaultMemoryFrontmatter(now?: Date): MemoryDocumentFrontmatter;
109
+ export declare function createEmptyMemoryDocument(now?: Date): MemoryDocument;
110
+ export declare function parseMemoryDocument(input: ParseMemoryDocumentInput): MemoryDocument;
111
+ export declare function renderMemoryDocument(input: RenderMemoryDocumentInput): string;
112
+ export declare function createMemoryRecordId(input: Pick<UpsertMemoryRecordInput, "section" | "text">): string;
113
+ export declare function upsertMemoryRecord(input: MemoryDocument, next: UpsertMemoryRecordInput): {
114
+ created: boolean;
115
+ document: MemoryDocument;
116
+ record: MemoryRecord;
117
+ };
118
+ export declare function forgetMemoryRecord(input: MemoryDocument, next: ForgetMemoryRecordInput): {
119
+ document: MemoryDocument;
120
+ record: MemoryRecord | null;
121
+ };
122
+ export declare function buildMemoryPromptBlock(input: MemoryDocument): string | null;
123
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,0BAA0B,mBAAmB,CAAC;AAC3D,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,eAAO,MAAM,mBAAmB,iEAKtB,CAAC;AAEX,eAAO,MAAM,mBAAmB;;;;;EAA8B,CAAC;AAE/D,eAAO,MAAM,0BAA0B;;;;kBAM5B,CAAC;AAEZ,eAAO,MAAM,+BAA+B;;;;;kBAOjC,CAAC;AAEZ,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;kBAUpB,CAAC;AAEZ,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;kBAKtB,CAAC;AAEZ,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;kBAKvC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC;AACjE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AACjE,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AACxF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,MAAM,WAAW,wBAAwB;IACvC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,aAAa,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAQD,wBAAgB,8BAA8B,CAAC,GAAG,OAAa,GAAG,yBAAyB,CAO1F;AAED,wBAAgB,yBAAyB,CAAC,GAAG,OAAa,GAAG,cAAc,CAK1E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,cAAc,CASnF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,MAAM,CAK7E;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,IAAI,CAAC,uBAAuB,EAAE,SAAS,GAAG,MAAM,CAAC,GACvD,MAAM,CAGR;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,uBAAuB,GAC5B;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,YAAY,CAAC;CACtB,CA8BA;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,uBAAuB,GAC5B;IACD,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;CAC7B,CAsBA;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAwB3E"}
package/dist/memory.js ADDED
@@ -0,0 +1,295 @@
1
+ import { createHash } from "node:crypto";
2
+ import { z } from "zod";
3
+ import { parseFrontmatterDocument } from "./frontmatter.js";
4
+ export const memoryDocumentRelativePath = "bank/memory.md";
5
+ export const memoryDocumentDocType = "murph.memory.v1";
6
+ export const memoryDocumentSchemaVersion = 1;
7
+ export const memorySectionValues = [
8
+ "Identity",
9
+ "Preferences",
10
+ "Instructions",
11
+ "Context",
12
+ ];
13
+ export const memorySectionSchema = z.enum(memorySectionValues);
14
+ export const memoryRecordMetadataSchema = z
15
+ .object({
16
+ id: z.string().min(1),
17
+ createdAt: z.string().min(1).nullable().default(null),
18
+ updatedAt: z.string().min(1).nullable().default(null),
19
+ })
20
+ .strict();
21
+ export const memoryDocumentFrontmatterSchema = z
22
+ .object({
23
+ docType: z.literal(memoryDocumentDocType),
24
+ schemaVersion: z.literal(memoryDocumentSchemaVersion),
25
+ title: z.string().min(1).default("Memory"),
26
+ updatedAt: z.string().min(1),
27
+ })
28
+ .strict();
29
+ export const memoryRecordSchema = z
30
+ .object({
31
+ id: z.string().min(1),
32
+ section: memorySectionSchema,
33
+ text: z.string().min(1),
34
+ createdAt: z.string().min(1).nullable(),
35
+ updatedAt: z.string().min(1).nullable(),
36
+ sourceLine: z.number().int().positive(),
37
+ sourcePath: z.string().min(1),
38
+ })
39
+ .strict();
40
+ export const memoryDocumentSchema = z
41
+ .object({
42
+ frontmatter: memoryDocumentFrontmatterSchema,
43
+ records: z.array(memoryRecordSchema),
44
+ })
45
+ .strict();
46
+ export const memoryDocumentSnapshotSchema = memoryDocumentSchema.extend({
47
+ exists: z.boolean(),
48
+ markdown: z.string(),
49
+ sourcePath: z.string().min(1),
50
+ updatedAt: z.string().min(1).nullable(),
51
+ });
52
+ const MEMORY_COMMENT_PREFIX = "murph-memory:";
53
+ const MEMORY_ROOT_HEADING = "# Memory";
54
+ const memorySectionOrder = new Map(memorySectionValues.map((section, index) => [section, index]));
55
+ export function createDefaultMemoryFrontmatter(now = new Date()) {
56
+ return memoryDocumentFrontmatterSchema.parse({
57
+ docType: memoryDocumentDocType,
58
+ schemaVersion: memoryDocumentSchemaVersion,
59
+ title: "Memory",
60
+ updatedAt: now.toISOString(),
61
+ });
62
+ }
63
+ export function createEmptyMemoryDocument(now = new Date()) {
64
+ return {
65
+ frontmatter: createDefaultMemoryFrontmatter(now),
66
+ records: [],
67
+ };
68
+ }
69
+ export function parseMemoryDocument(input) {
70
+ const parsed = parseFrontmatterDocument(input.text);
71
+ const frontmatter = memoryDocumentFrontmatterSchema.parse(parsed.attributes);
72
+ const records = parseMemoryDocumentBody(parsed.body, input.sourcePath ?? "bank/memory.md");
73
+ return {
74
+ frontmatter,
75
+ records,
76
+ };
77
+ }
78
+ export function renderMemoryDocument(input) {
79
+ const document = memoryDocumentSchema.parse(input.document);
80
+ const body = renderMemoryDocumentBody(document.records);
81
+ return renderMemoryFrontmatter(document.frontmatter, body);
82
+ }
83
+ export function createMemoryRecordId(input) {
84
+ const normalized = [input.section, normalizeMemoryText(input.text)].join("\u0000");
85
+ return `mem_${createHash("sha1").update(normalized).digest("hex").slice(0, 16)}`;
86
+ }
87
+ export function upsertMemoryRecord(input, next) {
88
+ const now = (next.now ?? new Date()).toISOString();
89
+ const nextRecordId = normalizeMemoryRecordId(next.recordId ?? null) ?? createMemoryRecordId(next);
90
+ const existingIndex = input.records.findIndex((record) => record.id === nextRecordId);
91
+ const existingRecord = existingIndex >= 0 ? input.records[existingIndex] ?? null : null;
92
+ const record = memoryRecordSchema.parse({
93
+ id: nextRecordId,
94
+ section: next.section,
95
+ text: normalizeMemoryText(next.text),
96
+ createdAt: existingRecord?.createdAt ?? now,
97
+ updatedAt: now,
98
+ sourceLine: existingRecord?.sourceLine ?? input.records.length + 1,
99
+ sourcePath: existingRecord?.sourcePath ?? memoryDocumentRelativePath,
100
+ });
101
+ const records = input.records.filter((entry) => entry.id !== nextRecordId);
102
+ const insertionIndex = findMemoryInsertionIndex(records, record.section);
103
+ records.splice(insertionIndex, 0, record);
104
+ return {
105
+ created: existingRecord === null,
106
+ document: {
107
+ frontmatter: {
108
+ ...input.frontmatter,
109
+ updatedAt: now,
110
+ },
111
+ records,
112
+ },
113
+ record,
114
+ };
115
+ }
116
+ export function forgetMemoryRecord(input, next) {
117
+ const index = input.records.findIndex((record) => record.id === next.recordId);
118
+ if (index < 0) {
119
+ return {
120
+ document: input,
121
+ record: null,
122
+ };
123
+ }
124
+ const record = input.records[index] ?? null;
125
+ const records = input.records.filter((entry) => entry.id !== next.recordId);
126
+ return {
127
+ document: {
128
+ frontmatter: {
129
+ ...input.frontmatter,
130
+ updatedAt: new Date().toISOString(),
131
+ },
132
+ records,
133
+ },
134
+ record,
135
+ };
136
+ }
137
+ export function buildMemoryPromptBlock(input) {
138
+ if (input.records.length === 0) {
139
+ return null;
140
+ }
141
+ const sections = memorySectionValues.flatMap((section) => {
142
+ const records = input.records.filter((record) => record.section === section);
143
+ if (records.length === 0) {
144
+ return [];
145
+ }
146
+ return [
147
+ `${section}:\n${records.map((record) => `- ${record.text}`).join("\n")}`,
148
+ ];
149
+ });
150
+ if (sections.length === 0) {
151
+ return null;
152
+ }
153
+ return [
154
+ "Memory lives in the canonical vault and is safe to rely on for durable user context.",
155
+ `Memory:\n${sections.join("\n\n")}`,
156
+ ].join("\n\n");
157
+ }
158
+ function parseMemoryDocumentBody(body, sourcePath) {
159
+ const lines = body.replace(/\r\n/gu, "\n").split("\n");
160
+ const records = [];
161
+ let activeSection = null;
162
+ for (let index = 0; index < lines.length; index += 1) {
163
+ const line = lines[index] ?? "";
164
+ const headingMatch = /^##\s+(.+)$/u.exec(line);
165
+ if (headingMatch?.[1]) {
166
+ activeSection = normalizeMemorySection(headingMatch[1]);
167
+ continue;
168
+ }
169
+ const bulletMatch = /^-\s+(.*)$/u.exec(line);
170
+ if (!bulletMatch?.[1] || activeSection === null) {
171
+ continue;
172
+ }
173
+ const parsed = parseMemoryRecordLine({
174
+ line: bulletMatch[1],
175
+ section: activeSection,
176
+ sourceLine: index + 1,
177
+ sourcePath,
178
+ });
179
+ if (parsed) {
180
+ records.push(parsed);
181
+ }
182
+ }
183
+ return records;
184
+ }
185
+ function parseMemoryRecordLine(input) {
186
+ const match = /^(?<text>.*?)(?:\s+<!--\s*murph-memory:(?<metadata>\{.*\})\s*-->)?$/u.exec(input.line);
187
+ if (!match?.groups?.text) {
188
+ return null;
189
+ }
190
+ const text = normalizeMemoryText(match.groups.text);
191
+ const metadata = match.groups.metadata ? parseMemoryRecordMetadata(match.groups.metadata) : null;
192
+ const id = metadata?.id ?? createMemoryRecordId({
193
+ section: input.section,
194
+ text,
195
+ });
196
+ return memoryRecordSchema.parse({
197
+ id,
198
+ section: input.section,
199
+ text,
200
+ createdAt: metadata?.createdAt ?? null,
201
+ updatedAt: metadata?.updatedAt ?? null,
202
+ sourceLine: input.sourceLine,
203
+ sourcePath: input.sourcePath,
204
+ });
205
+ }
206
+ function renderMemoryDocumentBody(records) {
207
+ const chunks = [MEMORY_ROOT_HEADING];
208
+ for (const section of memorySectionValues) {
209
+ chunks.push("");
210
+ chunks.push(`## ${section}`);
211
+ const sectionRecords = records.filter((record) => record.section === section);
212
+ if (sectionRecords.length > 0) {
213
+ chunks.push("");
214
+ for (const record of sectionRecords) {
215
+ chunks.push(`- ${renderMemoryRecordText(record)}`);
216
+ }
217
+ }
218
+ }
219
+ return `${chunks.join("\n").trimEnd()}\n`;
220
+ }
221
+ function renderMemoryRecordText(record) {
222
+ const metadata = memoryRecordMetadataSchema.parse({
223
+ id: record.id,
224
+ createdAt: record.createdAt,
225
+ updatedAt: record.updatedAt,
226
+ });
227
+ return `${record.text} <!-- ${MEMORY_COMMENT_PREFIX}${JSON.stringify(metadata)} -->`;
228
+ }
229
+ function renderMemoryFrontmatter(frontmatter, body) {
230
+ return [
231
+ "---",
232
+ `docType: ${frontmatter.docType}`,
233
+ `schemaVersion: ${frontmatter.schemaVersion}`,
234
+ `title: ${renderMemoryFrontmatterValue(frontmatter.title)}`,
235
+ `updatedAt: ${renderMemoryFrontmatterValue(frontmatter.updatedAt)}`,
236
+ "---",
237
+ body,
238
+ ].join("\n");
239
+ }
240
+ function renderMemoryFrontmatterValue(value) {
241
+ if (value === null) {
242
+ return "null";
243
+ }
244
+ if (typeof value === "boolean") {
245
+ return value ? "true" : "false";
246
+ }
247
+ if (typeof value === "number" && Number.isFinite(value)) {
248
+ return String(value);
249
+ }
250
+ if (typeof value === "string") {
251
+ if (/^[A-Za-z0-9_./:-]+$/u.test(value)) {
252
+ return value;
253
+ }
254
+ return JSON.stringify(value);
255
+ }
256
+ return JSON.stringify(String(value));
257
+ }
258
+ function parseMemoryRecordMetadata(value) {
259
+ try {
260
+ return memoryRecordMetadataSchema.parse(JSON.parse(value));
261
+ }
262
+ catch {
263
+ return null;
264
+ }
265
+ }
266
+ function normalizeMemorySection(value) {
267
+ const normalized = value.trim();
268
+ if (memorySectionValues.includes(normalized)) {
269
+ return normalized;
270
+ }
271
+ throw new Error(`Unknown memory section "${value}".`);
272
+ }
273
+ function normalizeMemoryRecordId(value) {
274
+ const normalized = value?.trim() ?? "";
275
+ return normalized.length > 0 ? normalized : null;
276
+ }
277
+ function normalizeMemoryText(value) {
278
+ const normalized = value.replace(/\s+/gu, " ").trim();
279
+ if (!normalized) {
280
+ throw new Error("Memory text must be a non-empty string.");
281
+ }
282
+ return normalized;
283
+ }
284
+ function findMemoryInsertionIndex(records, section) {
285
+ const targetOrder = memorySectionOrder.get(section) ?? 0;
286
+ let insertionIndex = records.length;
287
+ for (let index = 0; index < records.length; index += 1) {
288
+ const recordOrder = memorySectionOrder.get(records[index]?.section ?? section) ?? 0;
289
+ if (recordOrder <= targetOrder) {
290
+ insertionIndex = index + 1;
291
+ }
292
+ }
293
+ return insertionIndex;
294
+ }
295
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry-helpers.d.ts","sourceRoot":"","sources":["../src/registry-helpers.ts"],"names":[],"mappings":"AAAA,KAAK,6BAA6B,GAAG;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF,KAAK,4BAA4B,CAAC,SAAS,SAAS,6BAA6B,IAAI,IAAI,CACvF,SAAS,EACT,SAAS,GAAG,QAAQ,GAAG,UAAU,CAClC,GAAG;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF,UAAU,0BAA0B;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,KAAK,GAAG,MAAM,CAAC;IAC5B,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,SAAS,6BAA6B,EAC/C,QAAQ,EAAE,SAAS,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,4BAA4B,CAAC,SAAS,CAAC,CAOpF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAOrE;AAoCD,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,0BAA0B,GACnC,MAAM,EAAE,CAMV;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,EAAE,SAAS,0BAA0B,EAAE,GAC/C,YAAY,EAAE,CAQhB;AAED,wBAAgB,yBAAyB,CAAC,KAAK,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,EAC1E,KAAK,EAAE,SAAS,KAAK,EAAE,GACtB,MAAM,EAAE,CAEV"}
1
+ {"version":3,"file":"registry-helpers.d.ts","sourceRoot":"","sources":["../src/registry-helpers.ts"],"names":[],"mappings":"AAAA,KAAK,6BAA6B,GAAG;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF,KAAK,4BAA4B,CAAC,SAAS,SAAS,6BAA6B,IAAI,IAAI,CACvF,SAAS,EACT,SAAS,GAAG,QAAQ,GAAG,UAAU,CAClC,GAAG;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF,UAAU,0BAA0B;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,KAAK,GAAG,MAAM,CAAC;IAC5B,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,SAAS,6BAA6B,EAC/C,QAAQ,EAAE,SAAS,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,4BAA4B,CAAC,SAAS,CAAC,CAOpF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAOrE;AA0ED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,0BAA0B,GACnC,MAAM,EAAE,CAMV;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,SAAS,EAAE,SAAS,0BAA0B,EAAE,GAC/C,YAAY,EAAE,CA0BhB;AAED,wBAAgB,yBAAyB,CAAC,KAAK,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,EAC1E,KAAK,EAAE,SAAS,KAAK,EAAE,GACtB,MAAM,EAAE,CAEV"}
@@ -35,17 +35,58 @@ function readMergedRegistryStringArray(source, keys) {
35
35
  })),
36
36
  ];
37
37
  }
38
+ function readExplicitRegistryLinks(source, allowedTypes) {
39
+ if (!Object.prototype.hasOwnProperty.call(source, "links")) {
40
+ return null;
41
+ }
42
+ const rawLinks = source.links;
43
+ if (!Array.isArray(rawLinks)) {
44
+ return [];
45
+ }
46
+ const links = [];
47
+ for (const rawLink of rawLinks) {
48
+ if (!rawLink || typeof rawLink !== "object" || Array.isArray(rawLink)) {
49
+ continue;
50
+ }
51
+ const candidate = rawLink;
52
+ const type = normalizeRegistryString(candidate.type);
53
+ const targetId = normalizeRegistryString(candidate.targetId);
54
+ if (!type || !targetId || !allowedTypes.has(type)) {
55
+ continue;
56
+ }
57
+ links.push({
58
+ type,
59
+ targetId,
60
+ sourceKeys: ["links"],
61
+ });
62
+ }
63
+ return links;
64
+ }
38
65
  export function extractRegistryRelationTargets(source, relation) {
39
66
  return relation.cardinality === "one"
40
67
  ? [readFirstRegistryString(source, relation.keys)].filter((entry) => Boolean(entry))
41
68
  : readMergedRegistryStringArray(source, relation.keys);
42
69
  }
43
70
  export function extractRegistryLinks(source, relations) {
44
- return relations.flatMap((relation) => extractRegistryRelationTargets(source, relation).map((targetId) => ({
45
- type: relation.type,
46
- targetId,
47
- sourceKeys: relation.keys,
48
- })));
71
+ const allowedTypes = new Set(relations.map((relation) => relation.type));
72
+ const explicitLinks = readExplicitRegistryLinks(source, allowedTypes);
73
+ const links = explicitLinks ??
74
+ relations.flatMap((relation) => extractRegistryRelationTargets(source, relation).map((targetId) => ({
75
+ type: relation.type,
76
+ targetId,
77
+ sourceKeys: relation.keys,
78
+ })));
79
+ const deduped = [];
80
+ const seen = new Set();
81
+ for (const link of links) {
82
+ const dedupeKey = `${link.type}:${link.targetId}`;
83
+ if (seen.has(dedupeKey)) {
84
+ continue;
85
+ }
86
+ seen.add(dedupeKey);
87
+ deduped.push(link);
88
+ }
89
+ return deduped;
49
90
  }
50
91
  export function extractRegistryRelatedIds(links) {
51
92
  return [...new Set(links.map((link) => link.targetId))];
@@ -1 +1 @@
1
- {"version":3,"file":"registry-helpers.js","sourceRoot":"","sources":["../src/registry-helpers.ts"],"names":[],"mappings":"AA2BA,MAAM,UAAU,6BAA6B,CAE3C,QAAyC;IACzC,OAAO;QACL,GAAG,QAAQ;QACX,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC7C,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC;KACG,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAChC,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,SAAS,uBAAuB,CAC9B,MAA+B,EAC/B,IAAuB;IAEvB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,uBAAuB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACnD,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,6BAA6B,CACpC,MAA+B,EAC/B,IAAuB;IAEvB,OAAO;QACL,GAAG,IAAI,GAAG,CACR,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,OAAO,KAAK;iBACT,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;iBAC9C,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC,CACH;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,MAA+B,EAC/B,QAAoC;IAEpC,OAAO,QAAQ,CAAC,WAAW,KAAK,KAAK;QACnC,CAAC,CAAC,CAAC,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CACrD,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAC3C;QACH,CAAC,CAAC,6BAA6B,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,MAA+B,EAC/B,SAAgD;IAEhD,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CACpC,8BAA8B,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClE,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,QAAQ;QACR,UAAU,EAAE,QAAQ,CAAC,IAAI;KAC1B,CAAC,CAAC,CACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,KAAuB;IAEvB,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"registry-helpers.js","sourceRoot":"","sources":["../src/registry-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import * as z from "zod";
2
+ export declare const CANONICAL_RELATION_LINK_TYPES: readonly ["parent_of", "related_to", "supports_goal", "addresses_condition", "source_assessment", "source_event", "source_family_member", "top_goal", "snapshot_of"];
3
+ export type CanonicalRelationLinkType = (typeof CANONICAL_RELATION_LINK_TYPES)[number];
4
+ export declare const foodRelationLinkSchema: z.ZodType<{
5
+ type: string;
6
+ targetId: string;
7
+ }, unknown, z.core.$ZodTypeInternals<{
8
+ type: string;
9
+ targetId: string;
10
+ }, unknown>>;
11
+ export declare const recipeRelationLinkSchema: z.ZodType<{
12
+ type: string;
13
+ targetId: string;
14
+ }, unknown, z.core.$ZodTypeInternals<{
15
+ type: string;
16
+ targetId: string;
17
+ }, unknown>>;
18
+ export declare const goalRelationLinkSchema: z.ZodType<{
19
+ type: string;
20
+ targetId: string;
21
+ }, unknown, z.core.$ZodTypeInternals<{
22
+ type: string;
23
+ targetId: string;
24
+ }, unknown>>;
25
+ export declare const conditionRelationLinkSchema: z.ZodType<{
26
+ type: string;
27
+ targetId: string;
28
+ }, unknown, z.core.$ZodTypeInternals<{
29
+ type: string;
30
+ targetId: string;
31
+ }, unknown>>;
32
+ export declare const allergyRelationLinkSchema: z.ZodType<{
33
+ type: string;
34
+ targetId: string;
35
+ }, unknown, z.core.$ZodTypeInternals<{
36
+ type: string;
37
+ targetId: string;
38
+ }, unknown>>;
39
+ export declare const protocolRelationLinkSchema: z.ZodType<{
40
+ type: string;
41
+ targetId: string;
42
+ }, unknown, z.core.$ZodTypeInternals<{
43
+ type: string;
44
+ targetId: string;
45
+ }, unknown>>;
46
+ export declare const familyRelationLinkSchema: z.ZodType<{
47
+ type: string;
48
+ targetId: string;
49
+ }, unknown, z.core.$ZodTypeInternals<{
50
+ type: string;
51
+ targetId: string;
52
+ }, unknown>>;
53
+ export declare const geneticVariantRelationLinkSchema: z.ZodType<{
54
+ type: string;
55
+ targetId: string;
56
+ }, unknown, z.core.$ZodTypeInternals<{
57
+ type: string;
58
+ targetId: string;
59
+ }, unknown>>;
60
+ export declare const eventRelationLinkSchema: z.ZodType<{
61
+ type: string;
62
+ targetId: string;
63
+ }, unknown, z.core.$ZodTypeInternals<{
64
+ type: string;
65
+ targetId: string;
66
+ }, unknown>>;
67
+ //# sourceMappingURL=relation-links.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation-links.d.ts","sourceRoot":"","sources":["../src/relation-links.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAkDzB,eAAO,MAAM,6BAA6B,sKAUhC,CAAC;AAEX,MAAM,MAAM,yBAAyB,GAAG,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvF,eAAO,MAAM,sBAAsB;UArCd,MAAM;cAAY,MAAM;;UAAxB,MAAM;cAAY,MAAM;YA0C3C,CAAC;AAEH,eAAO,MAAM,wBAAwB;UA5ChB,MAAM;cAAY,MAAM;;UAAxB,MAAM;cAAY,MAAM;YAqD3C,CAAC;AAEH,eAAO,MAAM,sBAAsB;UAvDd,MAAM;cAAY,MAAM;;UAAxB,MAAM;cAAY,MAAM;YAoE3C,CAAC;AAEH,eAAO,MAAM,2BAA2B;UAtEnB,MAAM;cAAY,MAAM;;UAAxB,MAAM;cAAY,MAAM;YA+E3C,CAAC;AAEH,eAAO,MAAM,yBAAyB;UAjFjB,MAAM;cAAY,MAAM;;UAAxB,MAAM;cAAY,MAAM;YAsF3C,CAAC;AAEH,eAAO,MAAM,0BAA0B;UAxFlB,MAAM;cAAY,MAAM;;UAAxB,MAAM;cAAY,MAAM;YAqG3C,CAAC;AAEH,eAAO,MAAM,wBAAwB;UAvGhB,MAAM;cAAY,MAAM;;UAAxB,MAAM;cAAY,MAAM;YA4G3C,CAAC;AAEH,eAAO,MAAM,gCAAgC;UA9GxB,MAAM;cAAY,MAAM;;UAAxB,MAAM;cAAY,MAAM;YAmH3C,CAAC;AAEH,eAAO,MAAM,uBAAuB;UArHf,MAAM;cAAY,MAAM;;UAAxB,MAAM;cAAY,MAAM;YA0J3C,CAAC"}