@intelligo-dev/core 1.0.0-beta.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 (254) hide show
  1. package/LICENSE +201 -0
  2. package/dist/conversations/errors.d.ts +31 -0
  3. package/dist/conversations/errors.d.ts.map +1 -0
  4. package/dist/conversations/errors.js +25 -0
  5. package/dist/conversations/errors.js.map +1 -0
  6. package/dist/conversations/index.d.ts +13 -0
  7. package/dist/conversations/index.d.ts.map +1 -0
  8. package/dist/conversations/index.js +12 -0
  9. package/dist/conversations/index.js.map +1 -0
  10. package/dist/conversations/service.d.ts +132 -0
  11. package/dist/conversations/service.d.ts.map +1 -0
  12. package/dist/conversations/service.js +347 -0
  13. package/dist/conversations/service.js.map +1 -0
  14. package/dist/conversations/types.d.ts +10 -0
  15. package/dist/conversations/types.d.ts.map +1 -0
  16. package/dist/conversations/types.js +5 -0
  17. package/dist/conversations/types.js.map +1 -0
  18. package/dist/db/client.d.ts +19 -0
  19. package/dist/db/client.d.ts.map +1 -0
  20. package/dist/db/client.js +52 -0
  21. package/dist/db/client.js.map +1 -0
  22. package/dist/db/index.d.ts +4 -0
  23. package/dist/db/index.d.ts.map +1 -0
  24. package/dist/db/index.js +8 -0
  25. package/dist/db/index.js.map +1 -0
  26. package/dist/db/schema/agents.d.ts +400 -0
  27. package/dist/db/schema/agents.d.ts.map +1 -0
  28. package/dist/db/schema/agents.js +39 -0
  29. package/dist/db/schema/agents.js.map +1 -0
  30. package/dist/db/schema/ai.d.ts +2222 -0
  31. package/dist/db/schema/ai.d.ts.map +1 -0
  32. package/dist/db/schema/ai.js +313 -0
  33. package/dist/db/schema/ai.js.map +1 -0
  34. package/dist/db/schema/auth.d.ts +1222 -0
  35. package/dist/db/schema/auth.d.ts.map +1 -0
  36. package/dist/db/schema/auth.js +162 -0
  37. package/dist/db/schema/auth.js.map +1 -0
  38. package/dist/db/schema/billing.d.ts +1199 -0
  39. package/dist/db/schema/billing.d.ts.map +1 -0
  40. package/dist/db/schema/billing.js +150 -0
  41. package/dist/db/schema/billing.js.map +1 -0
  42. package/dist/db/schema/feature-flags.d.ts +143 -0
  43. package/dist/db/schema/feature-flags.d.ts.map +1 -0
  44. package/dist/db/schema/feature-flags.js +25 -0
  45. package/dist/db/schema/feature-flags.js.map +1 -0
  46. package/dist/db/schema/identity.d.ts +1295 -0
  47. package/dist/db/schema/identity.d.ts.map +1 -0
  48. package/dist/db/schema/identity.js +258 -0
  49. package/dist/db/schema/identity.js.map +1 -0
  50. package/dist/db/schema/index.d.ts +16 -0
  51. package/dist/db/schema/index.d.ts.map +1 -0
  52. package/dist/db/schema/index.js +43 -0
  53. package/dist/db/schema/index.js.map +1 -0
  54. package/dist/db/schema/notifications.d.ts +182 -0
  55. package/dist/db/schema/notifications.d.ts.map +1 -0
  56. package/dist/db/schema/notifications.js +38 -0
  57. package/dist/db/schema/notifications.js.map +1 -0
  58. package/dist/db/schema/rag.d.ts +171 -0
  59. package/dist/db/schema/rag.d.ts.map +1 -0
  60. package/dist/db/schema/rag.js +42 -0
  61. package/dist/db/schema/rag.js.map +1 -0
  62. package/dist/db/schema/usage.d.ts +1193 -0
  63. package/dist/db/schema/usage.d.ts.map +1 -0
  64. package/dist/db/schema/usage.js +224 -0
  65. package/dist/db/schema/usage.js.map +1 -0
  66. package/dist/db/validate.d.ts +19 -0
  67. package/dist/db/validate.d.ts.map +1 -0
  68. package/dist/db/validate.js +58 -0
  69. package/dist/db/validate.js.map +1 -0
  70. package/dist/db/workspace-queries.d.ts +75 -0
  71. package/dist/db/workspace-queries.d.ts.map +1 -0
  72. package/dist/db/workspace-queries.js +78 -0
  73. package/dist/db/workspace-queries.js.map +1 -0
  74. package/dist/documents/classifier.d.ts +31 -0
  75. package/dist/documents/classifier.d.ts.map +1 -0
  76. package/dist/documents/classifier.js +41 -0
  77. package/dist/documents/classifier.js.map +1 -0
  78. package/dist/documents/errors.d.ts +32 -0
  79. package/dist/documents/errors.d.ts.map +1 -0
  80. package/dist/documents/errors.js +27 -0
  81. package/dist/documents/errors.js.map +1 -0
  82. package/dist/documents/index.d.ts +14 -0
  83. package/dist/documents/index.d.ts.map +1 -0
  84. package/dist/documents/index.js +13 -0
  85. package/dist/documents/index.js.map +1 -0
  86. package/dist/documents/service.d.ts +54 -0
  87. package/dist/documents/service.d.ts.map +1 -0
  88. package/dist/documents/service.js +146 -0
  89. package/dist/documents/service.js.map +1 -0
  90. package/dist/documents/types.d.ts +27 -0
  91. package/dist/documents/types.d.ts.map +1 -0
  92. package/dist/documents/types.js +5 -0
  93. package/dist/documents/types.js.map +1 -0
  94. package/dist/email/index.d.ts +5 -0
  95. package/dist/email/index.d.ts.map +1 -0
  96. package/dist/email/index.js +5 -0
  97. package/dist/email/index.js.map +1 -0
  98. package/dist/email/provider.d.ts +68 -0
  99. package/dist/email/provider.d.ts.map +1 -0
  100. package/dist/email/provider.js +199 -0
  101. package/dist/email/provider.js.map +1 -0
  102. package/dist/email/send.d.ts +47 -0
  103. package/dist/email/send.d.ts.map +1 -0
  104. package/dist/email/send.js +110 -0
  105. package/dist/email/send.js.map +1 -0
  106. package/dist/email/senders.d.ts +93 -0
  107. package/dist/email/senders.d.ts.map +1 -0
  108. package/dist/email/senders.js +232 -0
  109. package/dist/email/senders.js.map +1 -0
  110. package/dist/email/templates/base-layout.d.ts +7 -0
  111. package/dist/email/templates/base-layout.d.ts.map +1 -0
  112. package/dist/email/templates/base-layout.js +69 -0
  113. package/dist/email/templates/base-layout.js.map +1 -0
  114. package/dist/email/templates/index.d.ts +11 -0
  115. package/dist/email/templates/index.d.ts.map +1 -0
  116. package/dist/email/templates/index.js +17 -0
  117. package/dist/email/templates/index.js.map +1 -0
  118. package/dist/email/templates/password-reset.d.ts +7 -0
  119. package/dist/email/templates/password-reset.d.ts.map +1 -0
  120. package/dist/email/templates/password-reset.js +59 -0
  121. package/dist/email/templates/password-reset.js.map +1 -0
  122. package/dist/email/templates/payment-failed.d.ts +8 -0
  123. package/dist/email/templates/payment-failed.d.ts.map +1 -0
  124. package/dist/email/templates/payment-failed.js +62 -0
  125. package/dist/email/templates/payment-failed.js.map +1 -0
  126. package/dist/email/templates/quota-warning.d.ts +11 -0
  127. package/dist/email/templates/quota-warning.d.ts.map +1 -0
  128. package/dist/email/templates/quota-warning.js +82 -0
  129. package/dist/email/templates/quota-warning.js.map +1 -0
  130. package/dist/email/templates/subscription-confirmed.d.ts +9 -0
  131. package/dist/email/templates/subscription-confirmed.d.ts.map +1 -0
  132. package/dist/email/templates/subscription-confirmed.js +72 -0
  133. package/dist/email/templates/subscription-confirmed.js.map +1 -0
  134. package/dist/email/templates/trial-expiry.d.ts +9 -0
  135. package/dist/email/templates/trial-expiry.d.ts.map +1 -0
  136. package/dist/email/templates/trial-expiry.js +86 -0
  137. package/dist/email/templates/trial-expiry.js.map +1 -0
  138. package/dist/email/templates/trial-warning.d.ts +11 -0
  139. package/dist/email/templates/trial-warning.d.ts.map +1 -0
  140. package/dist/email/templates/trial-warning.js +70 -0
  141. package/dist/email/templates/trial-warning.js.map +1 -0
  142. package/dist/email/templates/verify-email.d.ts +7 -0
  143. package/dist/email/templates/verify-email.d.ts.map +1 -0
  144. package/dist/email/templates/verify-email.js +59 -0
  145. package/dist/email/templates/verify-email.js.map +1 -0
  146. package/dist/email/templates/welcome.d.ts +7 -0
  147. package/dist/email/templates/welcome.d.ts.map +1 -0
  148. package/dist/email/templates/welcome.js +51 -0
  149. package/dist/email/templates/welcome.js.map +1 -0
  150. package/dist/email/templates/workspace-invitation.d.ts +10 -0
  151. package/dist/email/templates/workspace-invitation.d.ts.map +1 -0
  152. package/dist/email/templates/workspace-invitation.js +79 -0
  153. package/dist/email/templates/workspace-invitation.js.map +1 -0
  154. package/dist/env.d.ts +21 -0
  155. package/dist/env.d.ts.map +1 -0
  156. package/dist/env.js +129 -0
  157. package/dist/env.js.map +1 -0
  158. package/dist/identity/audit.d.ts +39 -0
  159. package/dist/identity/audit.d.ts.map +1 -0
  160. package/dist/identity/audit.js +51 -0
  161. package/dist/identity/audit.js.map +1 -0
  162. package/dist/identity/errors.d.ts +32 -0
  163. package/dist/identity/errors.d.ts.map +1 -0
  164. package/dist/identity/errors.js +25 -0
  165. package/dist/identity/errors.js.map +1 -0
  166. package/dist/identity/index.d.ts +16 -0
  167. package/dist/identity/index.d.ts.map +1 -0
  168. package/dist/identity/index.js +15 -0
  169. package/dist/identity/index.js.map +1 -0
  170. package/dist/identity/service.d.ts +70 -0
  171. package/dist/identity/service.d.ts.map +1 -0
  172. package/dist/identity/service.js +179 -0
  173. package/dist/identity/service.js.map +1 -0
  174. package/dist/identity/types.d.ts +27 -0
  175. package/dist/identity/types.d.ts.map +1 -0
  176. package/dist/identity/types.js +5 -0
  177. package/dist/identity/types.js.map +1 -0
  178. package/dist/index.d.ts +3 -0
  179. package/dist/index.d.ts.map +1 -0
  180. package/dist/index.js +11 -0
  181. package/dist/index.js.map +1 -0
  182. package/dist/logger.d.ts +50 -0
  183. package/dist/logger.d.ts.map +1 -0
  184. package/dist/logger.js +183 -0
  185. package/dist/logger.js.map +1 -0
  186. package/dist/notifications/index.d.ts +86 -0
  187. package/dist/notifications/index.d.ts.map +1 -0
  188. package/dist/notifications/index.js +112 -0
  189. package/dist/notifications/index.js.map +1 -0
  190. package/dist/notifications/triggers.d.ts +68 -0
  191. package/dist/notifications/triggers.d.ts.map +1 -0
  192. package/dist/notifications/triggers.js +145 -0
  193. package/dist/notifications/triggers.js.map +1 -0
  194. package/dist/notifications/types.d.ts +19 -0
  195. package/dist/notifications/types.d.ts.map +1 -0
  196. package/dist/notifications/types.js +11 -0
  197. package/dist/notifications/types.js.map +1 -0
  198. package/package.json +101 -0
  199. package/src/db/migrations/0000_sharp_night_nurse.sql +52 -0
  200. package/src/db/migrations/0001_hesitant_vapor.sql +40 -0
  201. package/src/db/migrations/0002_numerous_lady_vermin.sql +235 -0
  202. package/src/db/migrations/0003_mighty_jean_grey.sql +37 -0
  203. package/src/db/migrations/0004_cynical_grandmaster.sql +2 -0
  204. package/src/db/migrations/0005_careful_switch.sql +8 -0
  205. package/src/db/migrations/0006_tense_blue_marvel.sql +16 -0
  206. package/src/db/migrations/0007_next_squadron_sinister.sql +1 -0
  207. package/src/db/migrations/0008_powerful_scream.sql +39 -0
  208. package/src/db/migrations/0009_sad_ink.sql +1 -0
  209. package/src/db/migrations/0010_shocking_omega_flight.sql +2 -0
  210. package/src/db/migrations/0011_ambiguous_otto_octavius.sql +151 -0
  211. package/src/db/migrations/0011_hnsw_vector_index.sql +17 -0
  212. package/src/db/migrations/0012_user_profiles.sql +30 -0
  213. package/src/db/migrations/0013_trending_seasonal_columns.sql +9 -0
  214. package/src/db/migrations/0014_add_product_type_to_agents.sql +6 -0
  215. package/src/db/migrations/0015_new_v1_tables.sql +149 -0
  216. package/src/db/migrations/0016_document_types.sql +30 -0
  217. package/src/db/migrations/0017_document_metadata.sql +2 -0
  218. package/src/db/migrations/0018_identity_graph.sql +200 -0
  219. package/src/db/migrations/0019_db_driven_prompts.sql +20 -0
  220. package/src/db/migrations/0020_pending_extractions.sql +35 -0
  221. package/src/db/migrations/0021_rag_documents.sql +39 -0
  222. package/src/db/migrations/0022_user_quotas_usage_jsonb.sql +70 -0
  223. package/src/db/migrations/0023_user_facts_user_scoped_unique.sql +17 -0
  224. package/src/db/migrations/0024_user_memories_hnsw.sql +23 -0
  225. package/src/db/migrations/0025_audit_trigger_errcode.sql +21 -0
  226. package/src/db/migrations/0026_user_profile_snapshots_composite_pk.sql +17 -0
  227. package/src/db/migrations/0027_billing_settings_mnt_columns.sql +54 -0
  228. package/src/db/migrations/0028_trial_credits_normalized_email.sql +37 -0
  229. package/src/db/migrations/0029_usage_records_conversation_idx.sql +13 -0
  230. package/src/db/migrations/0030_pending_extractions_composite_idx.sql +11 -0
  231. package/src/db/migrations/0031_rag_documents_hnsw.sql +16 -0
  232. package/src/db/migrations/0032_rate_limit_unique_idx.sql +16 -0
  233. package/src/db/migrations/0033_pending_extractions_partial_idx.sql +18 -0
  234. package/src/db/migrations/0034_rate_limit_count.sql +9 -0
  235. package/src/db/migrations/0035_credit_reservations.sql +24 -0
  236. package/src/db/migrations/0036_executions_audit_jobs.sql +96 -0
  237. package/src/db/migrations/0037_rate_limit_minute_bucket.sql +46 -0
  238. package/src/db/migrations/0038_user_quotas_generic_usage.sql +25 -0
  239. package/src/db/migrations/0039_platform_admin_impersonation.sql +27 -0
  240. package/src/db/migrations/0040_ee_audit_chain.sql +23 -0
  241. package/src/db/migrations/README.md +57 -0
  242. package/src/db/migrations/meta/0000_snapshot.json +348 -0
  243. package/src/db/migrations/meta/0001_snapshot.json +631 -0
  244. package/src/db/migrations/meta/0002_snapshot.json +2269 -0
  245. package/src/db/migrations/meta/0003_snapshot.json +2488 -0
  246. package/src/db/migrations/meta/0004_snapshot.json +2500 -0
  247. package/src/db/migrations/meta/0005_snapshot.json +2548 -0
  248. package/src/db/migrations/meta/0006_snapshot.json +2650 -0
  249. package/src/db/migrations/meta/0007_snapshot.json +2657 -0
  250. package/src/db/migrations/meta/0008_snapshot.json +2719 -0
  251. package/src/db/migrations/meta/0009_snapshot.json +2726 -0
  252. package/src/db/migrations/meta/0010_snapshot.json +2739 -0
  253. package/src/db/migrations/meta/0011_snapshot.json +3886 -0
  254. package/src/db/migrations/meta/_journal.json +300 -0
@@ -0,0 +1,1295 @@
1
+ /**
2
+ * User Identity Graph Schema (AI-ARCHITECTURE Phase B)
3
+ *
4
+ * Platform-level memory primitive — separate from any single product. The
5
+ * four tables below turn a user's scattered signals (facts, episodic
6
+ * memories, audit trails) into a single synthesized profile snapshot that
7
+ * every agent session hydrates from in one DB read.
8
+ *
9
+ * Why four tables instead of a JSON blob:
10
+ * 1. `user_facts` is the structured source of truth — queryable by
11
+ * category and weightable by confidence / importance.
12
+ * 2. `user_memories` is the unstructured narrative surface — pgvector
13
+ * search for episodic recall during long-running conversations.
14
+ * 3. `user_profile_snapshots` is the cached synthesis layer — voice
15
+ * agents can't afford to rebuild the profile at the top of every
16
+ * turn (<500ms budget), so we pre-render to this table and refresh
17
+ * on trigger events (session close, fact threshold, daily cron).
18
+ * 4. `user_memory_audit` is the trust layer — every write is logged
19
+ * so the "My Memory" settings page can show provenance per fact.
20
+ *
21
+ * See docs/AI-ARCHITECTURE.md §2 for the full design.
22
+ *
23
+ * Migration: src/db/migrations/0018_identity_graph.sql creates all four
24
+ * tables, their indexes, and the append-only triggers on
25
+ * user_memory_audit. Apply via `pnpm --filter @intelligo-dev/core db:push`
26
+ * before any code path calls into @intelligo-dev/agents/memory.
27
+ */
28
+ /**
29
+ * Discriminated category for a fact. Used as a filter axis when querying
30
+ * facts for synthesis or display. Keep this list tight — adding a new
31
+ * category should be a product decision, not a free-form string.
32
+ */
33
+ export declare const USER_FACT_CATEGORIES: readonly ["interest", "skill", "goal", "constraint", "trait", "value", "preference", "context", "background"];
34
+ export type UserFactCategory = (typeof USER_FACT_CATEGORIES)[number];
35
+ /**
36
+ * How a fact entered the system. "explicit_user_input" facts are
37
+ * considered ground truth and survive conflict resolution against
38
+ * lower-confidence LLM extractions.
39
+ */
40
+ export declare const USER_FACT_EXTRACTION_METHODS: readonly ["llm_extraction", "explicit_user_input", "inline_tool", "onboarding_form"];
41
+ export type UserFactExtractionMethod = (typeof USER_FACT_EXTRACTION_METHODS)[number];
42
+ export declare const userFacts: import("drizzle-orm/pg-core").PgTableWithColumns<{
43
+ name: "user_facts";
44
+ schema: undefined;
45
+ columns: {
46
+ id: import("drizzle-orm/pg-core").PgColumn<{
47
+ name: "id";
48
+ tableName: "user_facts";
49
+ dataType: "string";
50
+ columnType: "PgText";
51
+ data: string;
52
+ driverParam: string;
53
+ notNull: true;
54
+ hasDefault: false;
55
+ isPrimaryKey: true;
56
+ isAutoincrement: false;
57
+ hasRuntimeDefault: false;
58
+ enumValues: [string, ...string[]];
59
+ baseColumn: never;
60
+ identity: undefined;
61
+ generated: undefined;
62
+ }, {}, {}>;
63
+ userId: import("drizzle-orm/pg-core").PgColumn<{
64
+ name: "user_id";
65
+ tableName: "user_facts";
66
+ dataType: "string";
67
+ columnType: "PgText";
68
+ data: string;
69
+ driverParam: string;
70
+ notNull: true;
71
+ hasDefault: false;
72
+ isPrimaryKey: false;
73
+ isAutoincrement: false;
74
+ hasRuntimeDefault: false;
75
+ enumValues: [string, ...string[]];
76
+ baseColumn: never;
77
+ identity: undefined;
78
+ generated: undefined;
79
+ }, {}, {}>;
80
+ workspaceId: import("drizzle-orm/pg-core").PgColumn<{
81
+ name: "workspace_id";
82
+ tableName: "user_facts";
83
+ dataType: "string";
84
+ columnType: "PgText";
85
+ data: string;
86
+ driverParam: string;
87
+ notNull: true;
88
+ hasDefault: false;
89
+ isPrimaryKey: false;
90
+ isAutoincrement: false;
91
+ hasRuntimeDefault: false;
92
+ enumValues: [string, ...string[]];
93
+ baseColumn: never;
94
+ identity: undefined;
95
+ generated: undefined;
96
+ }, {}, {}>;
97
+ category: import("drizzle-orm/pg-core").PgColumn<{
98
+ name: "category";
99
+ tableName: "user_facts";
100
+ dataType: "string";
101
+ columnType: "PgText";
102
+ data: "value" | "interest" | "skill" | "goal" | "constraint" | "trait" | "preference" | "context" | "background";
103
+ driverParam: string;
104
+ notNull: true;
105
+ hasDefault: false;
106
+ isPrimaryKey: false;
107
+ isAutoincrement: false;
108
+ hasRuntimeDefault: false;
109
+ enumValues: [string, ...string[]];
110
+ baseColumn: never;
111
+ identity: undefined;
112
+ generated: undefined;
113
+ }, {}, {
114
+ $type: "value" | "interest" | "skill" | "goal" | "constraint" | "trait" | "preference" | "context" | "background";
115
+ }>;
116
+ key: import("drizzle-orm/pg-core").PgColumn<{
117
+ name: "key";
118
+ tableName: "user_facts";
119
+ dataType: "string";
120
+ columnType: "PgText";
121
+ data: string;
122
+ driverParam: string;
123
+ notNull: true;
124
+ hasDefault: false;
125
+ isPrimaryKey: false;
126
+ isAutoincrement: false;
127
+ hasRuntimeDefault: false;
128
+ enumValues: [string, ...string[]];
129
+ baseColumn: never;
130
+ identity: undefined;
131
+ generated: undefined;
132
+ }, {}, {}>;
133
+ value: import("drizzle-orm/pg-core").PgColumn<{
134
+ name: "value";
135
+ tableName: "user_facts";
136
+ dataType: "json";
137
+ columnType: "PgJsonb";
138
+ data: unknown;
139
+ driverParam: unknown;
140
+ notNull: true;
141
+ hasDefault: false;
142
+ isPrimaryKey: false;
143
+ isAutoincrement: false;
144
+ hasRuntimeDefault: false;
145
+ enumValues: undefined;
146
+ baseColumn: never;
147
+ identity: undefined;
148
+ generated: undefined;
149
+ }, {}, {}>;
150
+ confidence: import("drizzle-orm/pg-core").PgColumn<{
151
+ name: "confidence";
152
+ tableName: "user_facts";
153
+ dataType: "number";
154
+ columnType: "PgDoublePrecision";
155
+ data: number;
156
+ driverParam: string | number;
157
+ notNull: true;
158
+ hasDefault: false;
159
+ isPrimaryKey: false;
160
+ isAutoincrement: false;
161
+ hasRuntimeDefault: false;
162
+ enumValues: undefined;
163
+ baseColumn: never;
164
+ identity: undefined;
165
+ generated: undefined;
166
+ }, {}, {}>;
167
+ importance: import("drizzle-orm/pg-core").PgColumn<{
168
+ name: "importance";
169
+ tableName: "user_facts";
170
+ dataType: "number";
171
+ columnType: "PgInteger";
172
+ data: number;
173
+ driverParam: string | number;
174
+ notNull: true;
175
+ hasDefault: true;
176
+ isPrimaryKey: false;
177
+ isAutoincrement: false;
178
+ hasRuntimeDefault: false;
179
+ enumValues: undefined;
180
+ baseColumn: never;
181
+ identity: undefined;
182
+ generated: undefined;
183
+ }, {}, {}>;
184
+ sourceProduct: import("drizzle-orm/pg-core").PgColumn<{
185
+ name: "source_product";
186
+ tableName: "user_facts";
187
+ dataType: "string";
188
+ columnType: "PgText";
189
+ data: string;
190
+ driverParam: string;
191
+ notNull: false;
192
+ hasDefault: false;
193
+ isPrimaryKey: false;
194
+ isAutoincrement: false;
195
+ hasRuntimeDefault: false;
196
+ enumValues: [string, ...string[]];
197
+ baseColumn: never;
198
+ identity: undefined;
199
+ generated: undefined;
200
+ }, {}, {}>;
201
+ sourceSessionId: import("drizzle-orm/pg-core").PgColumn<{
202
+ name: "source_session_id";
203
+ tableName: "user_facts";
204
+ dataType: "string";
205
+ columnType: "PgText";
206
+ data: string;
207
+ driverParam: string;
208
+ notNull: false;
209
+ hasDefault: false;
210
+ isPrimaryKey: false;
211
+ isAutoincrement: false;
212
+ hasRuntimeDefault: false;
213
+ enumValues: [string, ...string[]];
214
+ baseColumn: never;
215
+ identity: undefined;
216
+ generated: undefined;
217
+ }, {}, {}>;
218
+ sourceMessageId: import("drizzle-orm/pg-core").PgColumn<{
219
+ name: "source_message_id";
220
+ tableName: "user_facts";
221
+ dataType: "string";
222
+ columnType: "PgText";
223
+ data: string;
224
+ driverParam: string;
225
+ notNull: false;
226
+ hasDefault: false;
227
+ isPrimaryKey: false;
228
+ isAutoincrement: false;
229
+ hasRuntimeDefault: false;
230
+ enumValues: [string, ...string[]];
231
+ baseColumn: never;
232
+ identity: undefined;
233
+ generated: undefined;
234
+ }, {}, {}>;
235
+ extractionMethod: import("drizzle-orm/pg-core").PgColumn<{
236
+ name: "extraction_method";
237
+ tableName: "user_facts";
238
+ dataType: "string";
239
+ columnType: "PgText";
240
+ data: "llm_extraction" | "explicit_user_input" | "inline_tool" | "onboarding_form";
241
+ driverParam: string;
242
+ notNull: false;
243
+ hasDefault: false;
244
+ isPrimaryKey: false;
245
+ isAutoincrement: false;
246
+ hasRuntimeDefault: false;
247
+ enumValues: [string, ...string[]];
248
+ baseColumn: never;
249
+ identity: undefined;
250
+ generated: undefined;
251
+ }, {}, {
252
+ $type: "llm_extraction" | "explicit_user_input" | "inline_tool" | "onboarding_form";
253
+ }>;
254
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
255
+ name: "created_at";
256
+ tableName: "user_facts";
257
+ dataType: "date";
258
+ columnType: "PgTimestamp";
259
+ data: Date;
260
+ driverParam: string;
261
+ notNull: true;
262
+ hasDefault: true;
263
+ isPrimaryKey: false;
264
+ isAutoincrement: false;
265
+ hasRuntimeDefault: false;
266
+ enumValues: undefined;
267
+ baseColumn: never;
268
+ identity: undefined;
269
+ generated: undefined;
270
+ }, {}, {}>;
271
+ lastConfirmedAt: import("drizzle-orm/pg-core").PgColumn<{
272
+ name: "last_confirmed_at";
273
+ tableName: "user_facts";
274
+ dataType: "date";
275
+ columnType: "PgTimestamp";
276
+ data: Date;
277
+ driverParam: string;
278
+ notNull: false;
279
+ hasDefault: false;
280
+ isPrimaryKey: false;
281
+ isAutoincrement: false;
282
+ hasRuntimeDefault: false;
283
+ enumValues: undefined;
284
+ baseColumn: never;
285
+ identity: undefined;
286
+ generated: undefined;
287
+ }, {}, {}>;
288
+ expiresAt: import("drizzle-orm/pg-core").PgColumn<{
289
+ name: "expires_at";
290
+ tableName: "user_facts";
291
+ dataType: "date";
292
+ columnType: "PgTimestamp";
293
+ data: Date;
294
+ driverParam: string;
295
+ notNull: false;
296
+ hasDefault: false;
297
+ isPrimaryKey: false;
298
+ isAutoincrement: false;
299
+ hasRuntimeDefault: false;
300
+ enumValues: undefined;
301
+ baseColumn: never;
302
+ identity: undefined;
303
+ generated: undefined;
304
+ }, {}, {}>;
305
+ };
306
+ dialect: "pg";
307
+ }>;
308
+ export declare const USER_MEMORY_KINDS: readonly ["conversation_summary", "event", "insight", "preference_statement", "decision", "struggle", "success"];
309
+ export type UserMemoryKind = (typeof USER_MEMORY_KINDS)[number];
310
+ export declare const userMemories: import("drizzle-orm/pg-core").PgTableWithColumns<{
311
+ name: "user_memories";
312
+ schema: undefined;
313
+ columns: {
314
+ id: import("drizzle-orm/pg-core").PgColumn<{
315
+ name: "id";
316
+ tableName: "user_memories";
317
+ dataType: "string";
318
+ columnType: "PgText";
319
+ data: string;
320
+ driverParam: string;
321
+ notNull: true;
322
+ hasDefault: false;
323
+ isPrimaryKey: true;
324
+ isAutoincrement: false;
325
+ hasRuntimeDefault: false;
326
+ enumValues: [string, ...string[]];
327
+ baseColumn: never;
328
+ identity: undefined;
329
+ generated: undefined;
330
+ }, {}, {}>;
331
+ userId: import("drizzle-orm/pg-core").PgColumn<{
332
+ name: "user_id";
333
+ tableName: "user_memories";
334
+ dataType: "string";
335
+ columnType: "PgText";
336
+ data: string;
337
+ driverParam: string;
338
+ notNull: true;
339
+ hasDefault: false;
340
+ isPrimaryKey: false;
341
+ isAutoincrement: false;
342
+ hasRuntimeDefault: false;
343
+ enumValues: [string, ...string[]];
344
+ baseColumn: never;
345
+ identity: undefined;
346
+ generated: undefined;
347
+ }, {}, {}>;
348
+ workspaceId: import("drizzle-orm/pg-core").PgColumn<{
349
+ name: "workspace_id";
350
+ tableName: "user_memories";
351
+ dataType: "string";
352
+ columnType: "PgText";
353
+ data: string;
354
+ driverParam: string;
355
+ notNull: true;
356
+ hasDefault: false;
357
+ isPrimaryKey: false;
358
+ isAutoincrement: false;
359
+ hasRuntimeDefault: false;
360
+ enumValues: [string, ...string[]];
361
+ baseColumn: never;
362
+ identity: undefined;
363
+ generated: undefined;
364
+ }, {}, {}>;
365
+ kind: import("drizzle-orm/pg-core").PgColumn<{
366
+ name: "kind";
367
+ tableName: "user_memories";
368
+ dataType: "string";
369
+ columnType: "PgText";
370
+ data: "conversation_summary" | "event" | "insight" | "preference_statement" | "decision" | "struggle" | "success";
371
+ driverParam: string;
372
+ notNull: true;
373
+ hasDefault: false;
374
+ isPrimaryKey: false;
375
+ isAutoincrement: false;
376
+ hasRuntimeDefault: false;
377
+ enumValues: [string, ...string[]];
378
+ baseColumn: never;
379
+ identity: undefined;
380
+ generated: undefined;
381
+ }, {}, {
382
+ $type: "conversation_summary" | "event" | "insight" | "preference_statement" | "decision" | "struggle" | "success";
383
+ }>;
384
+ content: import("drizzle-orm/pg-core").PgColumn<{
385
+ name: "content";
386
+ tableName: "user_memories";
387
+ dataType: "string";
388
+ columnType: "PgText";
389
+ data: string;
390
+ driverParam: string;
391
+ notNull: true;
392
+ hasDefault: false;
393
+ isPrimaryKey: false;
394
+ isAutoincrement: false;
395
+ hasRuntimeDefault: false;
396
+ enumValues: [string, ...string[]];
397
+ baseColumn: never;
398
+ identity: undefined;
399
+ generated: undefined;
400
+ }, {}, {}>;
401
+ embedding: import("drizzle-orm/pg-core").PgColumn<{
402
+ name: "embedding";
403
+ tableName: "user_memories";
404
+ dataType: "array";
405
+ columnType: "PgVector";
406
+ data: number[];
407
+ driverParam: string;
408
+ notNull: false;
409
+ hasDefault: false;
410
+ isPrimaryKey: false;
411
+ isAutoincrement: false;
412
+ hasRuntimeDefault: false;
413
+ enumValues: undefined;
414
+ baseColumn: never;
415
+ identity: undefined;
416
+ generated: undefined;
417
+ }, {}, {
418
+ dimensions: 1536;
419
+ }>;
420
+ sourceProduct: import("drizzle-orm/pg-core").PgColumn<{
421
+ name: "source_product";
422
+ tableName: "user_memories";
423
+ dataType: "string";
424
+ columnType: "PgText";
425
+ data: string;
426
+ driverParam: string;
427
+ notNull: false;
428
+ hasDefault: false;
429
+ isPrimaryKey: false;
430
+ isAutoincrement: false;
431
+ hasRuntimeDefault: false;
432
+ enumValues: [string, ...string[]];
433
+ baseColumn: never;
434
+ identity: undefined;
435
+ generated: undefined;
436
+ }, {}, {}>;
437
+ sourceSessionId: import("drizzle-orm/pg-core").PgColumn<{
438
+ name: "source_session_id";
439
+ tableName: "user_memories";
440
+ dataType: "string";
441
+ columnType: "PgText";
442
+ data: string;
443
+ driverParam: string;
444
+ notNull: false;
445
+ hasDefault: false;
446
+ isPrimaryKey: false;
447
+ isAutoincrement: false;
448
+ hasRuntimeDefault: false;
449
+ enumValues: [string, ...string[]];
450
+ baseColumn: never;
451
+ identity: undefined;
452
+ generated: undefined;
453
+ }, {}, {}>;
454
+ sourceMessageIds: import("drizzle-orm/pg-core").PgColumn<{
455
+ name: "source_message_ids";
456
+ tableName: "user_memories";
457
+ dataType: "array";
458
+ columnType: "PgArray";
459
+ data: string[];
460
+ driverParam: string | string[];
461
+ notNull: false;
462
+ hasDefault: false;
463
+ isPrimaryKey: false;
464
+ isAutoincrement: false;
465
+ hasRuntimeDefault: false;
466
+ enumValues: [string, ...string[]];
467
+ baseColumn: import("drizzle-orm").Column<{
468
+ name: "source_message_ids";
469
+ tableName: "user_memories";
470
+ dataType: "string";
471
+ columnType: "PgText";
472
+ data: string;
473
+ driverParam: string;
474
+ notNull: false;
475
+ hasDefault: false;
476
+ isPrimaryKey: false;
477
+ isAutoincrement: false;
478
+ hasRuntimeDefault: false;
479
+ enumValues: [string, ...string[]];
480
+ baseColumn: never;
481
+ identity: undefined;
482
+ generated: undefined;
483
+ }, {}, {}>;
484
+ identity: undefined;
485
+ generated: undefined;
486
+ }, {}, {
487
+ baseBuilder: import("drizzle-orm/pg-core").PgColumnBuilder<{
488
+ name: "source_message_ids";
489
+ dataType: "string";
490
+ columnType: "PgText";
491
+ data: string;
492
+ enumValues: [string, ...string[]];
493
+ driverParam: string;
494
+ }, {}, {}, import("drizzle-orm").ColumnBuilderExtraConfig>;
495
+ size: undefined;
496
+ }>;
497
+ importance: import("drizzle-orm/pg-core").PgColumn<{
498
+ name: "importance";
499
+ tableName: "user_memories";
500
+ dataType: "number";
501
+ columnType: "PgInteger";
502
+ data: number;
503
+ driverParam: string | number;
504
+ notNull: true;
505
+ hasDefault: true;
506
+ isPrimaryKey: false;
507
+ isAutoincrement: false;
508
+ hasRuntimeDefault: false;
509
+ enumValues: undefined;
510
+ baseColumn: never;
511
+ identity: undefined;
512
+ generated: undefined;
513
+ }, {}, {}>;
514
+ decayFactor: import("drizzle-orm/pg-core").PgColumn<{
515
+ name: "decay_factor";
516
+ tableName: "user_memories";
517
+ dataType: "number";
518
+ columnType: "PgDoublePrecision";
519
+ data: number;
520
+ driverParam: string | number;
521
+ notNull: true;
522
+ hasDefault: true;
523
+ isPrimaryKey: false;
524
+ isAutoincrement: false;
525
+ hasRuntimeDefault: false;
526
+ enumValues: undefined;
527
+ baseColumn: never;
528
+ identity: undefined;
529
+ generated: undefined;
530
+ }, {}, {}>;
531
+ metadata: import("drizzle-orm/pg-core").PgColumn<{
532
+ name: "metadata";
533
+ tableName: "user_memories";
534
+ dataType: "json";
535
+ columnType: "PgJsonb";
536
+ data: unknown;
537
+ driverParam: unknown;
538
+ notNull: false;
539
+ hasDefault: false;
540
+ isPrimaryKey: false;
541
+ isAutoincrement: false;
542
+ hasRuntimeDefault: false;
543
+ enumValues: undefined;
544
+ baseColumn: never;
545
+ identity: undefined;
546
+ generated: undefined;
547
+ }, {}, {}>;
548
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
549
+ name: "created_at";
550
+ tableName: "user_memories";
551
+ dataType: "date";
552
+ columnType: "PgTimestamp";
553
+ data: Date;
554
+ driverParam: string;
555
+ notNull: true;
556
+ hasDefault: true;
557
+ isPrimaryKey: false;
558
+ isAutoincrement: false;
559
+ hasRuntimeDefault: false;
560
+ enumValues: undefined;
561
+ baseColumn: never;
562
+ identity: undefined;
563
+ generated: undefined;
564
+ }, {}, {}>;
565
+ };
566
+ dialect: "pg";
567
+ }>;
568
+ export declare const SYNTHESIS_TRIGGER_REASONS: readonly ["fact_threshold", "session_close", "daily_cron", "manual"];
569
+ export type SynthesisTriggerReason = (typeof SYNTHESIS_TRIGGER_REASONS)[number];
570
+ export declare const userProfileSnapshots: import("drizzle-orm/pg-core").PgTableWithColumns<{
571
+ name: "user_profile_snapshots";
572
+ schema: undefined;
573
+ columns: {
574
+ userId: import("drizzle-orm/pg-core").PgColumn<{
575
+ name: "user_id";
576
+ tableName: "user_profile_snapshots";
577
+ dataType: "string";
578
+ columnType: "PgText";
579
+ data: string;
580
+ driverParam: string;
581
+ notNull: true;
582
+ hasDefault: false;
583
+ isPrimaryKey: false;
584
+ isAutoincrement: false;
585
+ hasRuntimeDefault: false;
586
+ enumValues: [string, ...string[]];
587
+ baseColumn: never;
588
+ identity: undefined;
589
+ generated: undefined;
590
+ }, {}, {}>;
591
+ workspaceId: import("drizzle-orm/pg-core").PgColumn<{
592
+ name: "workspace_id";
593
+ tableName: "user_profile_snapshots";
594
+ dataType: "string";
595
+ columnType: "PgText";
596
+ data: string;
597
+ driverParam: string;
598
+ notNull: true;
599
+ hasDefault: false;
600
+ isPrimaryKey: false;
601
+ isAutoincrement: false;
602
+ hasRuntimeDefault: false;
603
+ enumValues: [string, ...string[]];
604
+ baseColumn: never;
605
+ identity: undefined;
606
+ generated: undefined;
607
+ }, {}, {}>;
608
+ version: import("drizzle-orm/pg-core").PgColumn<{
609
+ name: "version";
610
+ tableName: "user_profile_snapshots";
611
+ dataType: "number";
612
+ columnType: "PgInteger";
613
+ data: number;
614
+ driverParam: string | number;
615
+ notNull: true;
616
+ hasDefault: false;
617
+ isPrimaryKey: false;
618
+ isAutoincrement: false;
619
+ hasRuntimeDefault: false;
620
+ enumValues: undefined;
621
+ baseColumn: never;
622
+ identity: undefined;
623
+ generated: undefined;
624
+ }, {}, {}>;
625
+ summary: import("drizzle-orm/pg-core").PgColumn<{
626
+ name: "summary";
627
+ tableName: "user_profile_snapshots";
628
+ dataType: "string";
629
+ columnType: "PgText";
630
+ data: string;
631
+ driverParam: string;
632
+ notNull: true;
633
+ hasDefault: false;
634
+ isPrimaryKey: false;
635
+ isAutoincrement: false;
636
+ hasRuntimeDefault: false;
637
+ enumValues: [string, ...string[]];
638
+ baseColumn: never;
639
+ identity: undefined;
640
+ generated: undefined;
641
+ }, {}, {}>;
642
+ summaryEn: import("drizzle-orm/pg-core").PgColumn<{
643
+ name: "summary_en";
644
+ tableName: "user_profile_snapshots";
645
+ dataType: "string";
646
+ columnType: "PgText";
647
+ data: string;
648
+ driverParam: string;
649
+ notNull: false;
650
+ hasDefault: false;
651
+ isPrimaryKey: false;
652
+ isAutoincrement: false;
653
+ hasRuntimeDefault: false;
654
+ enumValues: [string, ...string[]];
655
+ baseColumn: never;
656
+ identity: undefined;
657
+ generated: undefined;
658
+ }, {}, {}>;
659
+ summaryMn: import("drizzle-orm/pg-core").PgColumn<{
660
+ name: "summary_mn";
661
+ tableName: "user_profile_snapshots";
662
+ dataType: "string";
663
+ columnType: "PgText";
664
+ data: string;
665
+ driverParam: string;
666
+ notNull: false;
667
+ hasDefault: false;
668
+ isPrimaryKey: false;
669
+ isAutoincrement: false;
670
+ hasRuntimeDefault: false;
671
+ enumValues: [string, ...string[]];
672
+ baseColumn: never;
673
+ identity: undefined;
674
+ generated: undefined;
675
+ }, {}, {}>;
676
+ factsDigest: import("drizzle-orm/pg-core").PgColumn<{
677
+ name: "facts_digest";
678
+ tableName: "user_profile_snapshots";
679
+ dataType: "json";
680
+ columnType: "PgJsonb";
681
+ data: unknown;
682
+ driverParam: unknown;
683
+ notNull: true;
684
+ hasDefault: false;
685
+ isPrimaryKey: false;
686
+ isAutoincrement: false;
687
+ hasRuntimeDefault: false;
688
+ enumValues: undefined;
689
+ baseColumn: never;
690
+ identity: undefined;
691
+ generated: undefined;
692
+ }, {}, {}>;
693
+ activeGoals: import("drizzle-orm/pg-core").PgColumn<{
694
+ name: "active_goals";
695
+ tableName: "user_profile_snapshots";
696
+ dataType: "json";
697
+ columnType: "PgJsonb";
698
+ data: unknown;
699
+ driverParam: unknown;
700
+ notNull: false;
701
+ hasDefault: false;
702
+ isPrimaryKey: false;
703
+ isAutoincrement: false;
704
+ hasRuntimeDefault: false;
705
+ enumValues: undefined;
706
+ baseColumn: never;
707
+ identity: undefined;
708
+ generated: undefined;
709
+ }, {}, {}>;
710
+ personalitySignals: import("drizzle-orm/pg-core").PgColumn<{
711
+ name: "personality_signals";
712
+ tableName: "user_profile_snapshots";
713
+ dataType: "json";
714
+ columnType: "PgJsonb";
715
+ data: unknown;
716
+ driverParam: unknown;
717
+ notNull: false;
718
+ hasDefault: false;
719
+ isPrimaryKey: false;
720
+ isAutoincrement: false;
721
+ hasRuntimeDefault: false;
722
+ enumValues: undefined;
723
+ baseColumn: never;
724
+ identity: undefined;
725
+ generated: undefined;
726
+ }, {}, {}>;
727
+ relationshipNotes: import("drizzle-orm/pg-core").PgColumn<{
728
+ name: "relationship_notes";
729
+ tableName: "user_profile_snapshots";
730
+ dataType: "json";
731
+ columnType: "PgJsonb";
732
+ data: unknown;
733
+ driverParam: unknown;
734
+ notNull: false;
735
+ hasDefault: false;
736
+ isPrimaryKey: false;
737
+ isAutoincrement: false;
738
+ hasRuntimeDefault: false;
739
+ enumValues: undefined;
740
+ baseColumn: never;
741
+ identity: undefined;
742
+ generated: undefined;
743
+ }, {}, {}>;
744
+ synthesizedByModel: import("drizzle-orm/pg-core").PgColumn<{
745
+ name: "synthesized_by_model";
746
+ tableName: "user_profile_snapshots";
747
+ dataType: "string";
748
+ columnType: "PgText";
749
+ data: string;
750
+ driverParam: string;
751
+ notNull: false;
752
+ hasDefault: false;
753
+ isPrimaryKey: false;
754
+ isAutoincrement: false;
755
+ hasRuntimeDefault: false;
756
+ enumValues: [string, ...string[]];
757
+ baseColumn: never;
758
+ identity: undefined;
759
+ generated: undefined;
760
+ }, {}, {}>;
761
+ synthesizedAt: import("drizzle-orm/pg-core").PgColumn<{
762
+ name: "synthesized_at";
763
+ tableName: "user_profile_snapshots";
764
+ dataType: "date";
765
+ columnType: "PgTimestamp";
766
+ data: Date;
767
+ driverParam: string;
768
+ notNull: true;
769
+ hasDefault: true;
770
+ isPrimaryKey: false;
771
+ isAutoincrement: false;
772
+ hasRuntimeDefault: false;
773
+ enumValues: undefined;
774
+ baseColumn: never;
775
+ identity: undefined;
776
+ generated: undefined;
777
+ }, {}, {}>;
778
+ nextSynthesisAt: import("drizzle-orm/pg-core").PgColumn<{
779
+ name: "next_synthesis_at";
780
+ tableName: "user_profile_snapshots";
781
+ dataType: "date";
782
+ columnType: "PgTimestamp";
783
+ data: Date;
784
+ driverParam: string;
785
+ notNull: false;
786
+ hasDefault: false;
787
+ isPrimaryKey: false;
788
+ isAutoincrement: false;
789
+ hasRuntimeDefault: false;
790
+ enumValues: undefined;
791
+ baseColumn: never;
792
+ identity: undefined;
793
+ generated: undefined;
794
+ }, {}, {}>;
795
+ triggerReason: import("drizzle-orm/pg-core").PgColumn<{
796
+ name: "trigger_reason";
797
+ tableName: "user_profile_snapshots";
798
+ dataType: "string";
799
+ columnType: "PgText";
800
+ data: "fact_threshold" | "session_close" | "daily_cron" | "manual";
801
+ driverParam: string;
802
+ notNull: false;
803
+ hasDefault: false;
804
+ isPrimaryKey: false;
805
+ isAutoincrement: false;
806
+ hasRuntimeDefault: false;
807
+ enumValues: [string, ...string[]];
808
+ baseColumn: never;
809
+ identity: undefined;
810
+ generated: undefined;
811
+ }, {}, {
812
+ $type: "fact_threshold" | "session_close" | "daily_cron" | "manual";
813
+ }>;
814
+ };
815
+ dialect: "pg";
816
+ }>;
817
+ export declare const AUDIT_TARGET_KINDS: readonly ["fact", "memory", "snapshot"];
818
+ export type AuditTargetKind = (typeof AUDIT_TARGET_KINDS)[number];
819
+ export declare const AUDIT_ACTIONS: readonly ["create", "update", "delete", "view", "export"];
820
+ export type AuditAction = (typeof AUDIT_ACTIONS)[number];
821
+ export declare const AUDIT_ACTOR_KINDS: readonly ["agent", "user", "system_job", "admin"];
822
+ export type AuditActorKind = (typeof AUDIT_ACTOR_KINDS)[number];
823
+ export declare const userMemoryAudit: import("drizzle-orm/pg-core").PgTableWithColumns<{
824
+ name: "user_memory_audit";
825
+ schema: undefined;
826
+ columns: {
827
+ id: import("drizzle-orm/pg-core").PgColumn<{
828
+ name: "id";
829
+ tableName: "user_memory_audit";
830
+ dataType: "string";
831
+ columnType: "PgText";
832
+ data: string;
833
+ driverParam: string;
834
+ notNull: true;
835
+ hasDefault: false;
836
+ isPrimaryKey: true;
837
+ isAutoincrement: false;
838
+ hasRuntimeDefault: false;
839
+ enumValues: [string, ...string[]];
840
+ baseColumn: never;
841
+ identity: undefined;
842
+ generated: undefined;
843
+ }, {}, {}>;
844
+ userId: import("drizzle-orm/pg-core").PgColumn<{
845
+ name: "user_id";
846
+ tableName: "user_memory_audit";
847
+ dataType: "string";
848
+ columnType: "PgText";
849
+ data: string;
850
+ driverParam: string;
851
+ notNull: true;
852
+ hasDefault: false;
853
+ isPrimaryKey: false;
854
+ isAutoincrement: false;
855
+ hasRuntimeDefault: false;
856
+ enumValues: [string, ...string[]];
857
+ baseColumn: never;
858
+ identity: undefined;
859
+ generated: undefined;
860
+ }, {}, {}>;
861
+ workspaceId: import("drizzle-orm/pg-core").PgColumn<{
862
+ name: "workspace_id";
863
+ tableName: "user_memory_audit";
864
+ dataType: "string";
865
+ columnType: "PgText";
866
+ data: string;
867
+ driverParam: string;
868
+ notNull: true;
869
+ hasDefault: false;
870
+ isPrimaryKey: false;
871
+ isAutoincrement: false;
872
+ hasRuntimeDefault: false;
873
+ enumValues: [string, ...string[]];
874
+ baseColumn: never;
875
+ identity: undefined;
876
+ generated: undefined;
877
+ }, {}, {}>;
878
+ targetKind: import("drizzle-orm/pg-core").PgColumn<{
879
+ name: "target_kind";
880
+ tableName: "user_memory_audit";
881
+ dataType: "string";
882
+ columnType: "PgText";
883
+ data: "fact" | "memory" | "snapshot";
884
+ driverParam: string;
885
+ notNull: true;
886
+ hasDefault: false;
887
+ isPrimaryKey: false;
888
+ isAutoincrement: false;
889
+ hasRuntimeDefault: false;
890
+ enumValues: [string, ...string[]];
891
+ baseColumn: never;
892
+ identity: undefined;
893
+ generated: undefined;
894
+ }, {}, {
895
+ $type: "fact" | "memory" | "snapshot";
896
+ }>;
897
+ targetId: import("drizzle-orm/pg-core").PgColumn<{
898
+ name: "target_id";
899
+ tableName: "user_memory_audit";
900
+ dataType: "string";
901
+ columnType: "PgText";
902
+ data: string;
903
+ driverParam: string;
904
+ notNull: true;
905
+ hasDefault: false;
906
+ isPrimaryKey: false;
907
+ isAutoincrement: false;
908
+ hasRuntimeDefault: false;
909
+ enumValues: [string, ...string[]];
910
+ baseColumn: never;
911
+ identity: undefined;
912
+ generated: undefined;
913
+ }, {}, {}>;
914
+ action: import("drizzle-orm/pg-core").PgColumn<{
915
+ name: "action";
916
+ tableName: "user_memory_audit";
917
+ dataType: "string";
918
+ columnType: "PgText";
919
+ data: "create" | "update" | "delete" | "view" | "export";
920
+ driverParam: string;
921
+ notNull: true;
922
+ hasDefault: false;
923
+ isPrimaryKey: false;
924
+ isAutoincrement: false;
925
+ hasRuntimeDefault: false;
926
+ enumValues: [string, ...string[]];
927
+ baseColumn: never;
928
+ identity: undefined;
929
+ generated: undefined;
930
+ }, {}, {
931
+ $type: "create" | "update" | "delete" | "view" | "export";
932
+ }>;
933
+ actorKind: import("drizzle-orm/pg-core").PgColumn<{
934
+ name: "actor_kind";
935
+ tableName: "user_memory_audit";
936
+ dataType: "string";
937
+ columnType: "PgText";
938
+ data: "agent" | "user" | "system_job" | "admin";
939
+ driverParam: string;
940
+ notNull: true;
941
+ hasDefault: false;
942
+ isPrimaryKey: false;
943
+ isAutoincrement: false;
944
+ hasRuntimeDefault: false;
945
+ enumValues: [string, ...string[]];
946
+ baseColumn: never;
947
+ identity: undefined;
948
+ generated: undefined;
949
+ }, {}, {
950
+ $type: "agent" | "user" | "system_job" | "admin";
951
+ }>;
952
+ actorId: import("drizzle-orm/pg-core").PgColumn<{
953
+ name: "actor_id";
954
+ tableName: "user_memory_audit";
955
+ dataType: "string";
956
+ columnType: "PgText";
957
+ data: string;
958
+ driverParam: string;
959
+ notNull: false;
960
+ hasDefault: false;
961
+ isPrimaryKey: false;
962
+ isAutoincrement: false;
963
+ hasRuntimeDefault: false;
964
+ enumValues: [string, ...string[]];
965
+ baseColumn: never;
966
+ identity: undefined;
967
+ generated: undefined;
968
+ }, {}, {}>;
969
+ beforeValue: import("drizzle-orm/pg-core").PgColumn<{
970
+ name: "before_value";
971
+ tableName: "user_memory_audit";
972
+ dataType: "json";
973
+ columnType: "PgJsonb";
974
+ data: unknown;
975
+ driverParam: unknown;
976
+ notNull: false;
977
+ hasDefault: false;
978
+ isPrimaryKey: false;
979
+ isAutoincrement: false;
980
+ hasRuntimeDefault: false;
981
+ enumValues: undefined;
982
+ baseColumn: never;
983
+ identity: undefined;
984
+ generated: undefined;
985
+ }, {}, {}>;
986
+ afterValue: import("drizzle-orm/pg-core").PgColumn<{
987
+ name: "after_value";
988
+ tableName: "user_memory_audit";
989
+ dataType: "json";
990
+ columnType: "PgJsonb";
991
+ data: unknown;
992
+ driverParam: unknown;
993
+ notNull: false;
994
+ hasDefault: false;
995
+ isPrimaryKey: false;
996
+ isAutoincrement: false;
997
+ hasRuntimeDefault: false;
998
+ enumValues: undefined;
999
+ baseColumn: never;
1000
+ identity: undefined;
1001
+ generated: undefined;
1002
+ }, {}, {}>;
1003
+ reason: import("drizzle-orm/pg-core").PgColumn<{
1004
+ name: "reason";
1005
+ tableName: "user_memory_audit";
1006
+ dataType: "string";
1007
+ columnType: "PgText";
1008
+ data: string;
1009
+ driverParam: string;
1010
+ notNull: false;
1011
+ hasDefault: false;
1012
+ isPrimaryKey: false;
1013
+ isAutoincrement: false;
1014
+ hasRuntimeDefault: false;
1015
+ enumValues: [string, ...string[]];
1016
+ baseColumn: never;
1017
+ identity: undefined;
1018
+ generated: undefined;
1019
+ }, {}, {}>;
1020
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
1021
+ name: "created_at";
1022
+ tableName: "user_memory_audit";
1023
+ dataType: "date";
1024
+ columnType: "PgTimestamp";
1025
+ data: Date;
1026
+ driverParam: string;
1027
+ notNull: true;
1028
+ hasDefault: true;
1029
+ isPrimaryKey: false;
1030
+ isAutoincrement: false;
1031
+ hasRuntimeDefault: false;
1032
+ enumValues: undefined;
1033
+ baseColumn: never;
1034
+ identity: undefined;
1035
+ generated: undefined;
1036
+ }, {}, {}>;
1037
+ };
1038
+ dialect: "pg";
1039
+ }>;
1040
+ /**
1041
+ * Background-job queue for fact extraction (Phase F). When a chat
1042
+ * session ends the chat handler enqueues the conversation id here;
1043
+ * the worker (packages/agents/src/extraction/worker.ts) polls and
1044
+ * processes pending rows. Status starts as 'pending', flips to
1045
+ * 'processing' while the worker holds the row, then 'completed' or
1046
+ * 'failed' on exit. Failed rows track attempts so we can retry with
1047
+ * exponential backoff and a hard cap.
1048
+ *
1049
+ * Keeping the queue in Postgres rather than Inngest/QStash for now —
1050
+ * launch traffic is small enough that DB polling is sufficient and
1051
+ * the doc explicitly calls this out as the V1 design.
1052
+ */
1053
+ export declare const EXTRACTION_STATUSES: readonly ["pending", "processing", "completed", "failed"];
1054
+ export type ExtractionStatus = (typeof EXTRACTION_STATUSES)[number];
1055
+ export declare const pendingExtractions: import("drizzle-orm/pg-core").PgTableWithColumns<{
1056
+ name: "pending_extractions";
1057
+ schema: undefined;
1058
+ columns: {
1059
+ id: import("drizzle-orm/pg-core").PgColumn<{
1060
+ name: "id";
1061
+ tableName: "pending_extractions";
1062
+ dataType: "string";
1063
+ columnType: "PgText";
1064
+ data: string;
1065
+ driverParam: string;
1066
+ notNull: true;
1067
+ hasDefault: false;
1068
+ isPrimaryKey: true;
1069
+ isAutoincrement: false;
1070
+ hasRuntimeDefault: false;
1071
+ enumValues: [string, ...string[]];
1072
+ baseColumn: never;
1073
+ identity: undefined;
1074
+ generated: undefined;
1075
+ }, {}, {}>;
1076
+ conversationId: import("drizzle-orm/pg-core").PgColumn<{
1077
+ name: "conversation_id";
1078
+ tableName: "pending_extractions";
1079
+ dataType: "string";
1080
+ columnType: "PgText";
1081
+ data: string;
1082
+ driverParam: string;
1083
+ notNull: true;
1084
+ hasDefault: false;
1085
+ isPrimaryKey: false;
1086
+ isAutoincrement: false;
1087
+ hasRuntimeDefault: false;
1088
+ enumValues: [string, ...string[]];
1089
+ baseColumn: never;
1090
+ identity: undefined;
1091
+ generated: undefined;
1092
+ }, {}, {}>;
1093
+ workspaceId: import("drizzle-orm/pg-core").PgColumn<{
1094
+ name: "workspace_id";
1095
+ tableName: "pending_extractions";
1096
+ dataType: "string";
1097
+ columnType: "PgText";
1098
+ data: string;
1099
+ driverParam: string;
1100
+ notNull: true;
1101
+ hasDefault: false;
1102
+ isPrimaryKey: false;
1103
+ isAutoincrement: false;
1104
+ hasRuntimeDefault: false;
1105
+ enumValues: [string, ...string[]];
1106
+ baseColumn: never;
1107
+ identity: undefined;
1108
+ generated: undefined;
1109
+ }, {}, {}>;
1110
+ userId: import("drizzle-orm/pg-core").PgColumn<{
1111
+ name: "user_id";
1112
+ tableName: "pending_extractions";
1113
+ dataType: "string";
1114
+ columnType: "PgText";
1115
+ data: string;
1116
+ driverParam: string;
1117
+ notNull: true;
1118
+ hasDefault: false;
1119
+ isPrimaryKey: false;
1120
+ isAutoincrement: false;
1121
+ hasRuntimeDefault: false;
1122
+ enumValues: [string, ...string[]];
1123
+ baseColumn: never;
1124
+ identity: undefined;
1125
+ generated: undefined;
1126
+ }, {}, {}>;
1127
+ productSlug: import("drizzle-orm/pg-core").PgColumn<{
1128
+ name: "product_slug";
1129
+ tableName: "pending_extractions";
1130
+ dataType: "string";
1131
+ columnType: "PgText";
1132
+ data: string;
1133
+ driverParam: string;
1134
+ notNull: true;
1135
+ hasDefault: false;
1136
+ isPrimaryKey: false;
1137
+ isAutoincrement: false;
1138
+ hasRuntimeDefault: false;
1139
+ enumValues: [string, ...string[]];
1140
+ baseColumn: never;
1141
+ identity: undefined;
1142
+ generated: undefined;
1143
+ }, {}, {}>;
1144
+ status: import("drizzle-orm/pg-core").PgColumn<{
1145
+ name: "status";
1146
+ tableName: "pending_extractions";
1147
+ dataType: "string";
1148
+ columnType: "PgText";
1149
+ data: "pending" | "processing" | "completed" | "failed";
1150
+ driverParam: string;
1151
+ notNull: true;
1152
+ hasDefault: true;
1153
+ isPrimaryKey: false;
1154
+ isAutoincrement: false;
1155
+ hasRuntimeDefault: false;
1156
+ enumValues: [string, ...string[]];
1157
+ baseColumn: never;
1158
+ identity: undefined;
1159
+ generated: undefined;
1160
+ }, {}, {
1161
+ $type: "pending" | "processing" | "completed" | "failed";
1162
+ }>;
1163
+ attempts: import("drizzle-orm/pg-core").PgColumn<{
1164
+ name: "attempts";
1165
+ tableName: "pending_extractions";
1166
+ dataType: "number";
1167
+ columnType: "PgInteger";
1168
+ data: number;
1169
+ driverParam: string | number;
1170
+ notNull: true;
1171
+ hasDefault: true;
1172
+ isPrimaryKey: false;
1173
+ isAutoincrement: false;
1174
+ hasRuntimeDefault: false;
1175
+ enumValues: undefined;
1176
+ baseColumn: never;
1177
+ identity: undefined;
1178
+ generated: undefined;
1179
+ }, {}, {}>;
1180
+ maxAttempts: import("drizzle-orm/pg-core").PgColumn<{
1181
+ name: "max_attempts";
1182
+ tableName: "pending_extractions";
1183
+ dataType: "number";
1184
+ columnType: "PgInteger";
1185
+ data: number;
1186
+ driverParam: string | number;
1187
+ notNull: true;
1188
+ hasDefault: true;
1189
+ isPrimaryKey: false;
1190
+ isAutoincrement: false;
1191
+ hasRuntimeDefault: false;
1192
+ enumValues: undefined;
1193
+ baseColumn: never;
1194
+ identity: undefined;
1195
+ generated: undefined;
1196
+ }, {}, {}>;
1197
+ lastError: import("drizzle-orm/pg-core").PgColumn<{
1198
+ name: "last_error";
1199
+ tableName: "pending_extractions";
1200
+ dataType: "string";
1201
+ columnType: "PgText";
1202
+ data: string;
1203
+ driverParam: string;
1204
+ notNull: false;
1205
+ hasDefault: false;
1206
+ isPrimaryKey: false;
1207
+ isAutoincrement: false;
1208
+ hasRuntimeDefault: false;
1209
+ enumValues: [string, ...string[]];
1210
+ baseColumn: never;
1211
+ identity: undefined;
1212
+ generated: undefined;
1213
+ }, {}, {}>;
1214
+ nextRetryAt: import("drizzle-orm/pg-core").PgColumn<{
1215
+ name: "next_retry_at";
1216
+ tableName: "pending_extractions";
1217
+ dataType: "date";
1218
+ columnType: "PgTimestamp";
1219
+ data: Date;
1220
+ driverParam: string;
1221
+ notNull: false;
1222
+ hasDefault: false;
1223
+ isPrimaryKey: false;
1224
+ isAutoincrement: false;
1225
+ hasRuntimeDefault: false;
1226
+ enumValues: undefined;
1227
+ baseColumn: never;
1228
+ identity: undefined;
1229
+ generated: undefined;
1230
+ }, {}, {}>;
1231
+ enqueuedAt: import("drizzle-orm/pg-core").PgColumn<{
1232
+ name: "enqueued_at";
1233
+ tableName: "pending_extractions";
1234
+ dataType: "date";
1235
+ columnType: "PgTimestamp";
1236
+ data: Date;
1237
+ driverParam: string;
1238
+ notNull: true;
1239
+ hasDefault: true;
1240
+ isPrimaryKey: false;
1241
+ isAutoincrement: false;
1242
+ hasRuntimeDefault: false;
1243
+ enumValues: undefined;
1244
+ baseColumn: never;
1245
+ identity: undefined;
1246
+ generated: undefined;
1247
+ }, {}, {}>;
1248
+ startedAt: import("drizzle-orm/pg-core").PgColumn<{
1249
+ name: "started_at";
1250
+ tableName: "pending_extractions";
1251
+ dataType: "date";
1252
+ columnType: "PgTimestamp";
1253
+ data: Date;
1254
+ driverParam: string;
1255
+ notNull: false;
1256
+ hasDefault: false;
1257
+ isPrimaryKey: false;
1258
+ isAutoincrement: false;
1259
+ hasRuntimeDefault: false;
1260
+ enumValues: undefined;
1261
+ baseColumn: never;
1262
+ identity: undefined;
1263
+ generated: undefined;
1264
+ }, {}, {}>;
1265
+ completedAt: import("drizzle-orm/pg-core").PgColumn<{
1266
+ name: "completed_at";
1267
+ tableName: "pending_extractions";
1268
+ dataType: "date";
1269
+ columnType: "PgTimestamp";
1270
+ data: Date;
1271
+ driverParam: string;
1272
+ notNull: false;
1273
+ hasDefault: false;
1274
+ isPrimaryKey: false;
1275
+ isAutoincrement: false;
1276
+ hasRuntimeDefault: false;
1277
+ enumValues: undefined;
1278
+ baseColumn: never;
1279
+ identity: undefined;
1280
+ generated: undefined;
1281
+ }, {}, {}>;
1282
+ };
1283
+ dialect: "pg";
1284
+ }>;
1285
+ export type UserFact = typeof userFacts.$inferSelect;
1286
+ export type InsertUserFact = typeof userFacts.$inferInsert;
1287
+ export type UserMemory = typeof userMemories.$inferSelect;
1288
+ export type InsertUserMemory = typeof userMemories.$inferInsert;
1289
+ export type UserProfileSnapshot = typeof userProfileSnapshots.$inferSelect;
1290
+ export type InsertUserProfileSnapshot = typeof userProfileSnapshots.$inferInsert;
1291
+ export type UserMemoryAuditRow = typeof userMemoryAudit.$inferSelect;
1292
+ export type InsertUserMemoryAudit = typeof userMemoryAudit.$inferInsert;
1293
+ export type PendingExtraction = typeof pendingExtractions.$inferSelect;
1294
+ export type InsertPendingExtraction = typeof pendingExtractions.$inferInsert;
1295
+ //# sourceMappingURL=identity.d.ts.map