@steno-ai/engine 0.1.1 → 0.1.3

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 (116) hide show
  1. package/dist/adapters/storage.d.ts +1 -0
  2. package/dist/adapters/storage.d.ts.map +1 -1
  3. package/dist/extraction/llm-extractor.d.ts.map +1 -1
  4. package/dist/extraction/llm-extractor.js +5 -3
  5. package/dist/extraction/llm-extractor.js.map +1 -1
  6. package/dist/extraction/pipeline.d.ts.map +1 -1
  7. package/dist/extraction/pipeline.js +5 -1
  8. package/dist/extraction/pipeline.js.map +1 -1
  9. package/dist/extraction/prompts.d.ts +2 -2
  10. package/dist/extraction/prompts.d.ts.map +1 -1
  11. package/dist/extraction/prompts.js +12 -3
  12. package/dist/extraction/prompts.js.map +1 -1
  13. package/package.json +6 -2
  14. package/src/adapters/cache.js +2 -0
  15. package/src/adapters/embedding.js +2 -0
  16. package/src/adapters/llm.js +2 -0
  17. package/src/adapters/perplexity-embedding.js +78 -0
  18. package/src/adapters/storage.js +2 -0
  19. package/src/adapters/storage.ts +1 -0
  20. package/src/config.d.ts +211 -1
  21. package/src/config.d.ts.map +1 -1
  22. package/src/config.js +92 -0
  23. package/src/config.js.map +1 -1
  24. package/src/extraction/contradiction.js +23 -0
  25. package/src/extraction/dedup.js +93 -0
  26. package/src/extraction/dedup.js.map +1 -1
  27. package/src/extraction/entity-extractor.d.ts.map +1 -1
  28. package/src/extraction/entity-extractor.js +145 -0
  29. package/src/extraction/entity-extractor.js.map +1 -1
  30. package/src/extraction/hasher.js +8 -0
  31. package/src/extraction/heuristic.js +282 -0
  32. package/src/extraction/llm-extractor.d.ts +3 -1
  33. package/src/extraction/llm-extractor.d.ts.map +1 -1
  34. package/src/extraction/llm-extractor.js +238 -0
  35. package/src/extraction/llm-extractor.js.map +1 -1
  36. package/src/extraction/llm-extractor.ts +7 -5
  37. package/src/extraction/pipeline.d.ts +3 -0
  38. package/src/extraction/pipeline.d.ts.map +1 -1
  39. package/src/extraction/pipeline.js +398 -0
  40. package/src/extraction/pipeline.js.map +1 -1
  41. package/src/extraction/pipeline.ts +6 -1
  42. package/src/extraction/prompts.d.ts +28 -0
  43. package/src/extraction/prompts.d.ts.map +1 -0
  44. package/src/extraction/prompts.js +196 -0
  45. package/src/extraction/prompts.js.map +1 -1
  46. package/src/extraction/prompts.ts +12 -3
  47. package/src/extraction/sliding-window.js +84 -0
  48. package/src/extraction/sliding-window.js.map +1 -1
  49. package/src/extraction/types.d.ts +12 -0
  50. package/src/extraction/types.d.ts.map +1 -1
  51. package/src/extraction/types.js +2 -0
  52. package/src/feedback/tracker.js +90 -0
  53. package/src/models/api-key.d.ts +2 -2
  54. package/src/models/api-key.js +21 -0
  55. package/src/models/edge.d.ts +6 -6
  56. package/src/models/edge.js +29 -0
  57. package/src/models/entity.d.ts +2 -2
  58. package/src/models/entity.js +22 -0
  59. package/src/models/extraction.d.ts +6 -6
  60. package/src/models/extraction.js +40 -0
  61. package/src/models/fact-entity.js +14 -0
  62. package/src/models/fact.d.ts +191 -0
  63. package/src/models/fact.d.ts.map +1 -0
  64. package/src/models/fact.js +72 -0
  65. package/src/models/fact.js.map +1 -0
  66. package/src/models/index.js +13 -0
  67. package/src/models/memory-access.d.ts +4 -4
  68. package/src/models/memory-access.js +33 -0
  69. package/src/models/session.js +23 -0
  70. package/src/models/tenant.d.ts +248 -14
  71. package/src/models/tenant.d.ts.map +1 -1
  72. package/src/models/tenant.js +23 -0
  73. package/src/models/trigger.d.ts +5 -5
  74. package/src/models/trigger.js +41 -0
  75. package/src/models/usage-record.js +14 -0
  76. package/src/models/webhook.d.ts +1 -1
  77. package/src/models/webhook.js +25 -0
  78. package/src/retrieval/compound-search.d.ts.map +1 -1
  79. package/src/retrieval/compound-search.js +87 -0
  80. package/src/retrieval/compound-search.js.map +1 -1
  81. package/src/retrieval/contradiction-surfacer.js +64 -0
  82. package/src/retrieval/embedding-cache.js +56 -0
  83. package/src/retrieval/fusion.d.ts +1 -0
  84. package/src/retrieval/fusion.d.ts.map +1 -1
  85. package/src/retrieval/fusion.js +87 -0
  86. package/src/retrieval/fusion.js.map +1 -1
  87. package/src/retrieval/graph-traversal.d.ts +2 -1
  88. package/src/retrieval/graph-traversal.d.ts.map +1 -1
  89. package/src/retrieval/graph-traversal.js +208 -0
  90. package/src/retrieval/graph-traversal.js.map +1 -1
  91. package/src/retrieval/query-expansion.js +76 -0
  92. package/src/retrieval/reranker.js +47 -0
  93. package/src/retrieval/salience-scorer.js +41 -0
  94. package/src/retrieval/search.d.ts.map +1 -1
  95. package/src/retrieval/search.js +228 -0
  96. package/src/retrieval/search.js.map +1 -1
  97. package/src/retrieval/temporal-scorer.d.ts +18 -0
  98. package/src/retrieval/temporal-scorer.d.ts.map +1 -0
  99. package/src/retrieval/temporal-scorer.js +106 -0
  100. package/src/retrieval/temporal-scorer.js.map +1 -0
  101. package/src/retrieval/trigger-matcher.d.ts.map +1 -1
  102. package/src/retrieval/trigger-matcher.js +134 -0
  103. package/src/retrieval/trigger-matcher.js.map +1 -1
  104. package/src/retrieval/types.d.ts +4 -0
  105. package/src/retrieval/types.d.ts.map +1 -1
  106. package/src/retrieval/types.js +9 -0
  107. package/src/retrieval/types.js.map +1 -1
  108. package/src/retrieval/vector-search.d.ts.map +1 -1
  109. package/src/retrieval/vector-search.js +24 -0
  110. package/src/retrieval/vector-search.js.map +1 -1
  111. package/src/salience/decay.js +15 -0
  112. package/src/scratchpad/scratchpad.js +107 -0
  113. package/src/sessions/manager.d.ts +11 -0
  114. package/src/sessions/manager.d.ts.map +1 -0
  115. package/src/sessions/manager.js +63 -0
  116. package/src/sessions/manager.js.map +1 -0
@@ -28,13 +28,12 @@ export declare const ExtractionSchema: z.ZodObject<{
28
28
  }, "strip", z.ZodTypeAny, {
29
29
  status: "queued" | "processing" | "completed" | "failed" | "deduped";
30
30
  id: string;
31
- error: string | null;
32
31
  tenantId: string;
33
32
  scope: "user" | "agent" | "session" | "hive";
34
33
  scopeId: string;
35
34
  sessionId: string | null;
36
35
  createdAt: Date;
37
- inputType: "url" | "image" | "audio" | "code" | "conversation" | "document" | "raw_text";
36
+ inputType: "code" | "conversation" | "document" | "url" | "raw_text" | "image" | "audio";
38
37
  inputData: string | Record<string, unknown> | null;
39
38
  inputHash: string;
40
39
  inputSize: number | null;
@@ -49,18 +48,18 @@ export declare const ExtractionSchema: z.ZodObject<{
49
48
  costTokensOutput: number;
50
49
  costUsd: number;
51
50
  durationMs: number | null;
51
+ error: string | null;
52
52
  retryCount: number;
53
53
  completedAt: Date | null;
54
54
  }, {
55
55
  status: "queued" | "processing" | "completed" | "failed" | "deduped";
56
56
  id: string;
57
- error: string | null;
58
57
  tenantId: string;
59
58
  scope: "user" | "agent" | "session" | "hive";
60
59
  scopeId: string;
61
60
  sessionId: string | null;
62
61
  createdAt: Date;
63
- inputType: "url" | "image" | "audio" | "code" | "conversation" | "document" | "raw_text";
62
+ inputType: "code" | "conversation" | "document" | "url" | "raw_text" | "image" | "audio";
64
63
  inputData: string | Record<string, unknown> | null;
65
64
  inputHash: string;
66
65
  inputSize: number | null;
@@ -75,6 +74,7 @@ export declare const ExtractionSchema: z.ZodObject<{
75
74
  costTokensOutput: number;
76
75
  costUsd: number;
77
76
  durationMs: number | null;
77
+ error: string | null;
78
78
  retryCount: number;
79
79
  completedAt: Date | null;
80
80
  }>;
@@ -92,7 +92,7 @@ export declare const CreateExtractionSchema: z.ZodObject<{
92
92
  tenantId: string;
93
93
  scope: "user" | "agent" | "session" | "hive";
94
94
  scopeId: string;
95
- inputType: "url" | "image" | "audio" | "code" | "conversation" | "document" | "raw_text";
95
+ inputType: "code" | "conversation" | "document" | "url" | "raw_text" | "image" | "audio";
96
96
  inputData: string;
97
97
  inputHash: string;
98
98
  sessionId?: string | undefined;
@@ -101,7 +101,7 @@ export declare const CreateExtractionSchema: z.ZodObject<{
101
101
  tenantId: string;
102
102
  scope: "user" | "agent" | "session" | "hive";
103
103
  scopeId: string;
104
- inputType: "url" | "image" | "audio" | "code" | "conversation" | "document" | "raw_text";
104
+ inputType: "code" | "conversation" | "document" | "url" | "raw_text" | "image" | "audio";
105
105
  inputData: string;
106
106
  inputHash: string;
107
107
  sessionId?: string | undefined;
@@ -0,0 +1,40 @@
1
+ import { z } from 'zod';
2
+ import { EXTRACTION_STATUSES, INPUT_TYPES, SCOPES, EXTRACTION_TIERS_USED } from '../config.js';
3
+ export const ExtractionSchema = z.object({
4
+ id: z.string().uuid(),
5
+ tenantId: z.string().uuid(),
6
+ status: z.enum(EXTRACTION_STATUSES),
7
+ inputType: z.enum(INPUT_TYPES),
8
+ inputData: z.union([z.string(), z.record(z.unknown())]).nullable(),
9
+ inputHash: z.string(),
10
+ inputSize: z.number().int().nonnegative().nullable(),
11
+ scope: z.enum(SCOPES),
12
+ scopeId: z.string().min(1),
13
+ sessionId: z.string().uuid().nullable(),
14
+ tierUsed: z.enum(EXTRACTION_TIERS_USED).nullable(),
15
+ llmModel: z.string().nullable(),
16
+ factsCreated: z.number().int().nonnegative(),
17
+ factsUpdated: z.number().int().nonnegative(),
18
+ factsInvalidated: z.number().int().nonnegative(),
19
+ entitiesCreated: z.number().int().nonnegative(),
20
+ edgesCreated: z.number().int().nonnegative(),
21
+ costTokensInput: z.number().int().nonnegative(),
22
+ costTokensOutput: z.number().int().nonnegative(),
23
+ costUsd: z.number().nonnegative(),
24
+ durationMs: z.number().int().nonnegative().nullable(),
25
+ error: z.string().nullable(),
26
+ retryCount: z.number().int().nonnegative(),
27
+ createdAt: z.coerce.date(),
28
+ completedAt: z.coerce.date().nullable(),
29
+ });
30
+ export const CreateExtractionSchema = z.object({
31
+ tenantId: z.string().uuid(),
32
+ inputType: z.enum(INPUT_TYPES),
33
+ inputData: z.string(),
34
+ inputHash: z.string(),
35
+ inputSize: z.number().int().nonnegative().optional(),
36
+ scope: z.enum(SCOPES),
37
+ scopeId: z.string().min(1),
38
+ sessionId: z.string().uuid().optional(),
39
+ });
40
+ //# sourceMappingURL=extraction.js.map
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ import { ENTITY_ROLES } from '../config.js';
3
+ export const FactEntitySchema = z.object({
4
+ factId: z.string().uuid(),
5
+ entityId: z.string().uuid(),
6
+ role: z.enum(ENTITY_ROLES),
7
+ createdAt: z.coerce.date(),
8
+ });
9
+ export const CreateFactEntitySchema = z.object({
10
+ factId: z.string().uuid(),
11
+ entityId: z.string().uuid(),
12
+ role: z.enum(ENTITY_ROLES).default('mentioned'),
13
+ });
14
+ //# sourceMappingURL=fact-entity.js.map
@@ -0,0 +1,191 @@
1
+ import { z } from 'zod';
2
+ export declare const FactSchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ tenantId: z.ZodString;
5
+ scope: z.ZodEnum<["user", "agent", "session", "hive"]>;
6
+ scopeId: z.ZodString;
7
+ sessionId: z.ZodNullable<z.ZodString>;
8
+ content: z.ZodString;
9
+ embeddingModel: z.ZodNullable<z.ZodString>;
10
+ embeddingDim: z.ZodNullable<z.ZodNumber>;
11
+ version: z.ZodNumber;
12
+ lineageId: z.ZodString;
13
+ validFrom: z.ZodDate;
14
+ validUntil: z.ZodNullable<z.ZodDate>;
15
+ operation: z.ZodEnum<["create", "update", "invalidate"]>;
16
+ parentId: z.ZodNullable<z.ZodString>;
17
+ importance: z.ZodNumber;
18
+ frequency: z.ZodNumber;
19
+ lastAccessed: z.ZodNullable<z.ZodDate>;
20
+ decayScore: z.ZodNumber;
21
+ contradictionStatus: z.ZodEnum<["none", "active", "resolved", "superseded"]>;
22
+ contradictsId: z.ZodNullable<z.ZodString>;
23
+ sourceType: z.ZodEnum<["conversation", "document", "url", "raw_text", "api", "agent_self"]>;
24
+ sourceRef: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
25
+ confidence: z.ZodNumber;
26
+ originalContent: z.ZodNullable<z.ZodString>;
27
+ extractionId: z.ZodNullable<z.ZodString>;
28
+ extractionTier: z.ZodNullable<z.ZodEnum<["heuristic", "cheap_llm", "smart_llm"]>>;
29
+ modality: z.ZodEnum<["text", "image", "audio", "code", "document"]>;
30
+ tags: z.ZodArray<z.ZodString, "many">;
31
+ metadata: z.ZodRecord<z.ZodString, z.ZodUnknown>;
32
+ /** When the event described in the fact actually occurred */
33
+ eventDate: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
34
+ /** When the conversation/document was authored */
35
+ documentDate: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
36
+ /** The original conversation chunk this fact was extracted from */
37
+ sourceChunk: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
38
+ createdAt: z.ZodDate;
39
+ }, "strip", z.ZodTypeAny, {
40
+ embeddingModel: string | null;
41
+ embeddingDim: number | null;
42
+ id: string;
43
+ tenantId: string;
44
+ scope: "user" | "agent" | "session" | "hive";
45
+ scopeId: string;
46
+ sessionId: string | null;
47
+ content: string;
48
+ version: number;
49
+ lineageId: string;
50
+ validFrom: Date;
51
+ validUntil: Date | null;
52
+ operation: "create" | "update" | "invalidate";
53
+ parentId: string | null;
54
+ importance: number;
55
+ frequency: number;
56
+ lastAccessed: Date | null;
57
+ decayScore: number;
58
+ contradictionStatus: "none" | "active" | "resolved" | "superseded";
59
+ contradictsId: string | null;
60
+ sourceType: "conversation" | "document" | "url" | "raw_text" | "api" | "agent_self";
61
+ sourceRef: Record<string, unknown> | null;
62
+ confidence: number;
63
+ originalContent: string | null;
64
+ extractionId: string | null;
65
+ extractionTier: "heuristic" | "cheap_llm" | "smart_llm" | null;
66
+ modality: "code" | "document" | "text" | "image" | "audio";
67
+ tags: string[];
68
+ metadata: Record<string, unknown>;
69
+ sourceChunk: string | null;
70
+ createdAt: Date;
71
+ eventDate?: Date | null | undefined;
72
+ documentDate?: Date | null | undefined;
73
+ }, {
74
+ embeddingModel: string | null;
75
+ embeddingDim: number | null;
76
+ id: string;
77
+ tenantId: string;
78
+ scope: "user" | "agent" | "session" | "hive";
79
+ scopeId: string;
80
+ sessionId: string | null;
81
+ content: string;
82
+ version: number;
83
+ lineageId: string;
84
+ validFrom: Date;
85
+ validUntil: Date | null;
86
+ operation: "create" | "update" | "invalidate";
87
+ parentId: string | null;
88
+ importance: number;
89
+ frequency: number;
90
+ lastAccessed: Date | null;
91
+ decayScore: number;
92
+ contradictionStatus: "none" | "active" | "resolved" | "superseded";
93
+ contradictsId: string | null;
94
+ sourceType: "conversation" | "document" | "url" | "raw_text" | "api" | "agent_self";
95
+ sourceRef: Record<string, unknown> | null;
96
+ confidence: number;
97
+ originalContent: string | null;
98
+ extractionId: string | null;
99
+ extractionTier: "heuristic" | "cheap_llm" | "smart_llm" | null;
100
+ modality: "code" | "document" | "text" | "image" | "audio";
101
+ tags: string[];
102
+ metadata: Record<string, unknown>;
103
+ createdAt: Date;
104
+ eventDate?: Date | null | undefined;
105
+ documentDate?: Date | null | undefined;
106
+ sourceChunk?: string | null | undefined;
107
+ }>;
108
+ export type Fact = z.infer<typeof FactSchema>;
109
+ export declare const CreateFactSchema: z.ZodObject<{
110
+ tenantId: z.ZodString;
111
+ scope: z.ZodEnum<["user", "agent", "session", "hive"]>;
112
+ scopeId: z.ZodString;
113
+ sessionId: z.ZodOptional<z.ZodString>;
114
+ content: z.ZodString;
115
+ embeddingModel: z.ZodOptional<z.ZodString>;
116
+ embeddingDim: z.ZodOptional<z.ZodNumber>;
117
+ lineageId: z.ZodOptional<z.ZodString>;
118
+ parentId: z.ZodOptional<z.ZodString>;
119
+ importance: z.ZodDefault<z.ZodNumber>;
120
+ confidence: z.ZodDefault<z.ZodNumber>;
121
+ operation: z.ZodDefault<z.ZodEnum<["create", "update", "invalidate"]>>;
122
+ contradictionStatus: z.ZodDefault<z.ZodEnum<["none", "active", "resolved", "superseded"]>>;
123
+ contradictsId: z.ZodOptional<z.ZodString>;
124
+ sourceType: z.ZodOptional<z.ZodEnum<["conversation", "document", "url", "raw_text", "api", "agent_self"]>>;
125
+ sourceRef: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
126
+ originalContent: z.ZodOptional<z.ZodString>;
127
+ extractionId: z.ZodOptional<z.ZodString>;
128
+ extractionTier: z.ZodOptional<z.ZodEnum<["heuristic", "cheap_llm", "smart_llm"]>>;
129
+ modality: z.ZodDefault<z.ZodEnum<["text", "image", "audio", "code", "document"]>>;
130
+ tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
131
+ metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
132
+ sourceChunk: z.ZodOptional<z.ZodString>;
133
+ /** When the event described in the fact actually occurred */
134
+ eventDate: z.ZodOptional<z.ZodDate>;
135
+ /** When the conversation/document was authored */
136
+ documentDate: z.ZodOptional<z.ZodDate>;
137
+ }, "strip", z.ZodTypeAny, {
138
+ tenantId: string;
139
+ scope: "user" | "agent" | "session" | "hive";
140
+ scopeId: string;
141
+ content: string;
142
+ operation: "create" | "update" | "invalidate";
143
+ importance: number;
144
+ contradictionStatus: "none" | "active" | "resolved" | "superseded";
145
+ confidence: number;
146
+ modality: "code" | "document" | "text" | "image" | "audio";
147
+ tags: string[];
148
+ metadata: Record<string, unknown>;
149
+ embeddingModel?: string | undefined;
150
+ embeddingDim?: number | undefined;
151
+ sessionId?: string | undefined;
152
+ lineageId?: string | undefined;
153
+ parentId?: string | undefined;
154
+ contradictsId?: string | undefined;
155
+ sourceType?: "conversation" | "document" | "url" | "raw_text" | "api" | "agent_self" | undefined;
156
+ sourceRef?: Record<string, unknown> | undefined;
157
+ originalContent?: string | undefined;
158
+ extractionId?: string | undefined;
159
+ extractionTier?: "heuristic" | "cheap_llm" | "smart_llm" | undefined;
160
+ eventDate?: Date | undefined;
161
+ documentDate?: Date | undefined;
162
+ sourceChunk?: string | undefined;
163
+ }, {
164
+ tenantId: string;
165
+ scope: "user" | "agent" | "session" | "hive";
166
+ scopeId: string;
167
+ content: string;
168
+ embeddingModel?: string | undefined;
169
+ embeddingDim?: number | undefined;
170
+ sessionId?: string | undefined;
171
+ lineageId?: string | undefined;
172
+ operation?: "create" | "update" | "invalidate" | undefined;
173
+ parentId?: string | undefined;
174
+ importance?: number | undefined;
175
+ contradictionStatus?: "none" | "active" | "resolved" | "superseded" | undefined;
176
+ contradictsId?: string | undefined;
177
+ sourceType?: "conversation" | "document" | "url" | "raw_text" | "api" | "agent_self" | undefined;
178
+ sourceRef?: Record<string, unknown> | undefined;
179
+ confidence?: number | undefined;
180
+ originalContent?: string | undefined;
181
+ extractionId?: string | undefined;
182
+ extractionTier?: "heuristic" | "cheap_llm" | "smart_llm" | undefined;
183
+ modality?: "code" | "document" | "text" | "image" | "audio" | undefined;
184
+ tags?: string[] | undefined;
185
+ metadata?: Record<string, unknown> | undefined;
186
+ eventDate?: Date | undefined;
187
+ documentDate?: Date | undefined;
188
+ sourceChunk?: string | undefined;
189
+ }>;
190
+ export type CreateFact = z.infer<typeof CreateFactSchema>;
191
+ //# sourceMappingURL=fact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fact.d.ts","sourceRoot":"","sources":["fact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgCrB,6DAA6D;;IAE7D,kDAAkD;;IAElD,mEAAmE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGnE,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAE9C,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;IAwB3B,6DAA6D;;IAE7D,kDAAkD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAElD,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,72 @@
1
+ import { z } from 'zod';
2
+ import { unitFloat, SCOPES, OPERATIONS, CONTRADICTION_STATUSES, SOURCE_TYPES, EXTRACTION_TIERS, MODALITIES, } from '../config.js';
3
+ export const FactSchema = z.object({
4
+ id: z.string().uuid(),
5
+ tenantId: z.string().uuid(),
6
+ scope: z.enum(SCOPES),
7
+ scopeId: z.string().min(1),
8
+ sessionId: z.string().uuid().nullable(),
9
+ content: z.string().min(1).max(50000),
10
+ // embeddingModel and embeddingDim are nullable because facts can be created
11
+ // before their embeddings are computed (spec deviation: pragmatic)
12
+ embeddingModel: z.string().nullable(),
13
+ embeddingDim: z.number().int().positive().nullable(),
14
+ version: z.number().int().positive(),
15
+ lineageId: z.string().uuid(),
16
+ validFrom: z.coerce.date(),
17
+ validUntil: z.coerce.date().nullable(),
18
+ operation: z.enum(OPERATIONS),
19
+ parentId: z.string().uuid().nullable(),
20
+ importance: unitFloat,
21
+ frequency: z.number().int().nonnegative(),
22
+ lastAccessed: z.coerce.date().nullable(),
23
+ decayScore: unitFloat,
24
+ contradictionStatus: z.enum(CONTRADICTION_STATUSES),
25
+ contradictsId: z.string().uuid().nullable(),
26
+ sourceType: z.enum(SOURCE_TYPES),
27
+ sourceRef: z.record(z.unknown()).nullable(),
28
+ confidence: unitFloat,
29
+ originalContent: z.string().nullable(),
30
+ extractionId: z.string().uuid().nullable(),
31
+ extractionTier: z.enum(EXTRACTION_TIERS).nullable(),
32
+ modality: z.enum(MODALITIES),
33
+ tags: z.array(z.string().max(100)).max(20),
34
+ metadata: z.record(z.string(), z.unknown()),
35
+ /** When the event described in the fact actually occurred */
36
+ eventDate: z.coerce.date().nullable().optional(),
37
+ /** When the conversation/document was authored */
38
+ documentDate: z.coerce.date().nullable().optional(),
39
+ /** The original conversation chunk this fact was extracted from */
40
+ sourceChunk: z.string().max(10000).nullable().optional().default(null),
41
+ createdAt: z.coerce.date(),
42
+ });
43
+ export const CreateFactSchema = z.object({
44
+ tenantId: z.string().uuid(),
45
+ scope: z.enum(SCOPES),
46
+ scopeId: z.string().min(1),
47
+ sessionId: z.string().uuid().optional(),
48
+ content: z.string().min(1).max(50000),
49
+ embeddingModel: z.string().optional(),
50
+ embeddingDim: z.number().int().positive().optional(),
51
+ lineageId: z.string().uuid().optional(),
52
+ parentId: z.string().uuid().optional(),
53
+ importance: unitFloat.default(0.5),
54
+ confidence: unitFloat.default(0.8),
55
+ operation: z.enum(OPERATIONS).default('create'),
56
+ contradictionStatus: z.enum(CONTRADICTION_STATUSES).default('none'),
57
+ contradictsId: z.string().uuid().optional(),
58
+ sourceType: z.enum(SOURCE_TYPES).optional(),
59
+ sourceRef: z.record(z.unknown()).optional(),
60
+ originalContent: z.string().optional(),
61
+ extractionId: z.string().uuid().optional(),
62
+ extractionTier: z.enum(EXTRACTION_TIERS).optional(),
63
+ modality: z.enum(MODALITIES).default('text'),
64
+ tags: z.array(z.string().max(100)).max(20).default([]),
65
+ metadata: z.record(z.string(), z.unknown()).default({}),
66
+ sourceChunk: z.string().max(10000).optional(),
67
+ /** When the event described in the fact actually occurred */
68
+ eventDate: z.coerce.date().optional(),
69
+ /** When the conversation/document was authored */
70
+ documentDate: z.coerce.date().optional(),
71
+ });
72
+ //# sourceMappingURL=fact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fact.js","sourceRoot":"","sources":["fact.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export * from './fact.js';
2
+ export * from './entity.js';
3
+ export * from './edge.js';
4
+ export * from './trigger.js';
5
+ export * from './memory-access.js';
6
+ export * from './extraction.js';
7
+ export * from './session.js';
8
+ export * from './tenant.js';
9
+ export * from './api-key.js';
10
+ export * from './usage-record.js';
11
+ export * from './fact-entity.js';
12
+ export * from './webhook.js';
13
+ //# sourceMappingURL=index.js.map
@@ -14,10 +14,10 @@ export declare const MemoryAccessSchema: z.ZodObject<{
14
14
  triggerId: z.ZodNullable<z.ZodString>;
15
15
  accessedAt: z.ZodDate;
16
16
  }, "strip", z.ZodTypeAny, {
17
- query: string;
18
17
  id: string;
19
18
  tenantId: string;
20
19
  factId: string;
20
+ query: string;
21
21
  retrievalMethod: string;
22
22
  similarityScore: number | null;
23
23
  rankPosition: number | null;
@@ -28,10 +28,10 @@ export declare const MemoryAccessSchema: z.ZodObject<{
28
28
  triggerId: string | null;
29
29
  accessedAt: Date;
30
30
  }, {
31
- query: string;
32
31
  id: string;
33
32
  tenantId: string;
34
33
  factId: string;
34
+ query: string;
35
35
  retrievalMethod: string;
36
36
  similarityScore: number | null;
37
37
  rankPosition: number | null;
@@ -52,17 +52,17 @@ export declare const CreateMemoryAccessSchema: z.ZodObject<{
52
52
  rankPosition: z.ZodOptional<z.ZodNumber>;
53
53
  triggerId: z.ZodOptional<z.ZodString>;
54
54
  }, "strip", z.ZodTypeAny, {
55
- query: string;
56
55
  tenantId: string;
57
56
  factId: string;
57
+ query: string;
58
58
  retrievalMethod: string;
59
59
  similarityScore?: number | undefined;
60
60
  rankPosition?: number | undefined;
61
61
  triggerId?: string | undefined;
62
62
  }, {
63
- query: string;
64
63
  tenantId: string;
65
64
  factId: string;
65
+ query: string;
66
66
  retrievalMethod: string;
67
67
  similarityScore?: number | undefined;
68
68
  rankPosition?: number | undefined;
@@ -0,0 +1,33 @@
1
+ import { z } from 'zod';
2
+ import { unitFloat, FEEDBACK_TYPES } from '../config.js';
3
+ export const MemoryAccessSchema = z.object({
4
+ id: z.string().uuid(),
5
+ tenantId: z.string().uuid(),
6
+ factId: z.string().uuid(),
7
+ query: z.string(),
8
+ retrievalMethod: z.string(),
9
+ similarityScore: unitFloat.nullable(),
10
+ rankPosition: z.number().int().nonnegative().nullable(),
11
+ wasUseful: z.boolean().nullable(),
12
+ wasCorrected: z.boolean().default(false),
13
+ feedbackType: z.enum(FEEDBACK_TYPES).nullable(),
14
+ feedbackDetail: z.string().nullable(),
15
+ triggerId: z.string().uuid().nullable(),
16
+ accessedAt: z.coerce.date(),
17
+ });
18
+ export const CreateMemoryAccessSchema = z.object({
19
+ tenantId: z.string().uuid(),
20
+ factId: z.string().uuid(),
21
+ query: z.string(),
22
+ retrievalMethod: z.string(),
23
+ similarityScore: unitFloat.optional(),
24
+ rankPosition: z.number().int().nonnegative().optional(),
25
+ triggerId: z.string().uuid().optional(),
26
+ });
27
+ export const SubmitFeedbackSchema = z.object({
28
+ factId: z.string().uuid(),
29
+ wasUseful: z.boolean(),
30
+ feedbackType: z.enum(FEEDBACK_TYPES),
31
+ feedbackDetail: z.string().optional(),
32
+ });
33
+ //# sourceMappingURL=memory-access.js.map
@@ -0,0 +1,23 @@
1
+ import { z } from 'zod';
2
+ import { SESSION_SCOPES } from '../config.js';
3
+ export const SessionSchema = z.object({
4
+ id: z.string().uuid(),
5
+ tenantId: z.string().uuid(),
6
+ scope: z.enum(SESSION_SCOPES),
7
+ scopeId: z.string().min(1),
8
+ startedAt: z.coerce.date(),
9
+ endedAt: z.coerce.date().nullable(),
10
+ summary: z.string().nullable(),
11
+ topics: z.array(z.string()).default([]),
12
+ messageCount: z.number().int().nonnegative().default(0),
13
+ factCount: z.number().int().nonnegative().default(0),
14
+ metadata: z.record(z.string(), z.unknown()).default({}),
15
+ createdAt: z.coerce.date(),
16
+ });
17
+ export const CreateSessionSchema = z.object({
18
+ tenantId: z.string().uuid(),
19
+ scope: z.enum(SESSION_SCOPES),
20
+ scopeId: z.string().min(1),
21
+ metadata: z.record(z.string(), z.unknown()).default({}),
22
+ });
23
+ //# sourceMappingURL=session.js.map