@prmichaelsen/remember-core 0.12.0

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 (198) hide show
  1. package/README.md +100 -0
  2. package/dist/collections/composite-ids.d.ts +47 -0
  3. package/dist/collections/composite-ids.d.ts.map +1 -0
  4. package/dist/collections/composite-ids.js +97 -0
  5. package/dist/collections/composite-ids.js.map +1 -0
  6. package/dist/collections/dot-notation.d.ts +37 -0
  7. package/dist/collections/dot-notation.d.ts.map +1 -0
  8. package/dist/collections/dot-notation.js +100 -0
  9. package/dist/collections/dot-notation.js.map +1 -0
  10. package/dist/collections/index.d.ts +7 -0
  11. package/dist/collections/index.d.ts.map +1 -0
  12. package/dist/collections/index.js +7 -0
  13. package/dist/collections/index.js.map +1 -0
  14. package/dist/collections/tracking-arrays.d.ts +28 -0
  15. package/dist/collections/tracking-arrays.d.ts.map +1 -0
  16. package/dist/collections/tracking-arrays.js +67 -0
  17. package/dist/collections/tracking-arrays.js.map +1 -0
  18. package/dist/config/debug.d.ts +36 -0
  19. package/dist/config/debug.d.ts.map +1 -0
  20. package/dist/config/debug.js +48 -0
  21. package/dist/config/debug.js.map +1 -0
  22. package/dist/config/environment.d.ts +71 -0
  23. package/dist/config/environment.d.ts.map +1 -0
  24. package/dist/config/environment.js +57 -0
  25. package/dist/config/environment.js.map +1 -0
  26. package/dist/config/index.d.ts +9 -0
  27. package/dist/config/index.d.ts.map +1 -0
  28. package/dist/config/index.js +27 -0
  29. package/dist/config/index.js.map +1 -0
  30. package/dist/constants/content-types.d.ts +60 -0
  31. package/dist/constants/content-types.d.ts.map +1 -0
  32. package/dist/constants/content-types.js +450 -0
  33. package/dist/constants/content-types.js.map +1 -0
  34. package/dist/constants/index.d.ts +3 -0
  35. package/dist/constants/index.d.ts.map +1 -0
  36. package/dist/constants/index.js +3 -0
  37. package/dist/constants/index.js.map +1 -0
  38. package/dist/database/firestore/index.d.ts +8 -0
  39. package/dist/database/firestore/index.d.ts.map +1 -0
  40. package/dist/database/firestore/index.js +10 -0
  41. package/dist/database/firestore/index.js.map +1 -0
  42. package/dist/database/firestore/init.d.ts +51 -0
  43. package/dist/database/firestore/init.d.ts.map +1 -0
  44. package/dist/database/firestore/init.js +92 -0
  45. package/dist/database/firestore/init.js.map +1 -0
  46. package/dist/database/firestore/paths.d.ts +54 -0
  47. package/dist/database/firestore/paths.d.ts.map +1 -0
  48. package/dist/database/firestore/paths.js +103 -0
  49. package/dist/database/firestore/paths.js.map +1 -0
  50. package/dist/database/weaviate/client.d.ts +68 -0
  51. package/dist/database/weaviate/client.d.ts.map +1 -0
  52. package/dist/database/weaviate/client.js +157 -0
  53. package/dist/database/weaviate/client.js.map +1 -0
  54. package/dist/database/weaviate/index.d.ts +6 -0
  55. package/dist/database/weaviate/index.d.ts.map +1 -0
  56. package/dist/database/weaviate/index.js +9 -0
  57. package/dist/database/weaviate/index.js.map +1 -0
  58. package/dist/database/weaviate/schema.d.ts +22 -0
  59. package/dist/database/weaviate/schema.d.ts.map +1 -0
  60. package/dist/database/weaviate/schema.js +50 -0
  61. package/dist/database/weaviate/schema.js.map +1 -0
  62. package/dist/database/weaviate/space-schema.d.ts +36 -0
  63. package/dist/database/weaviate/space-schema.d.ts.map +1 -0
  64. package/dist/database/weaviate/space-schema.js +65 -0
  65. package/dist/database/weaviate/space-schema.js.map +1 -0
  66. package/dist/database/weaviate/v2-collections.d.ts +160 -0
  67. package/dist/database/weaviate/v2-collections.d.ts.map +1 -0
  68. package/dist/database/weaviate/v2-collections.js +275 -0
  69. package/dist/database/weaviate/v2-collections.js.map +1 -0
  70. package/dist/errors/app-errors.d.ts +64 -0
  71. package/dist/errors/app-errors.d.ts.map +1 -0
  72. package/dist/errors/app-errors.js +90 -0
  73. package/dist/errors/app-errors.js.map +1 -0
  74. package/dist/errors/base.error.d.ts +15 -0
  75. package/dist/errors/base.error.d.ts.map +1 -0
  76. package/dist/errors/base.error.js +25 -0
  77. package/dist/errors/base.error.js.map +1 -0
  78. package/dist/errors/index.d.ts +19 -0
  79. package/dist/errors/index.d.ts.map +1 -0
  80. package/dist/errors/index.js +25 -0
  81. package/dist/errors/index.js.map +1 -0
  82. package/dist/index.d.ts +8 -0
  83. package/dist/index.d.ts.map +1 -0
  84. package/dist/index.js +9 -0
  85. package/dist/index.js.map +1 -0
  86. package/dist/services/confirmation-token.service.d.ts +56 -0
  87. package/dist/services/confirmation-token.service.d.ts.map +1 -0
  88. package/dist/services/confirmation-token.service.js +118 -0
  89. package/dist/services/confirmation-token.service.js.map +1 -0
  90. package/dist/services/credentials-provider.d.ts +25 -0
  91. package/dist/services/credentials-provider.d.ts.map +1 -0
  92. package/dist/services/credentials-provider.js +31 -0
  93. package/dist/services/credentials-provider.js.map +1 -0
  94. package/dist/services/index.d.ts +11 -0
  95. package/dist/services/index.d.ts.map +1 -0
  96. package/dist/services/index.js +17 -0
  97. package/dist/services/index.js.map +1 -0
  98. package/dist/services/memory.service.d.ts +129 -0
  99. package/dist/services/memory.service.d.ts.map +1 -0
  100. package/dist/services/memory.service.js +294 -0
  101. package/dist/services/memory.service.js.map +1 -0
  102. package/dist/services/preferences.service.d.ts +27 -0
  103. package/dist/services/preferences.service.d.ts.map +1 -0
  104. package/dist/services/preferences.service.js +106 -0
  105. package/dist/services/preferences.service.js.map +1 -0
  106. package/dist/services/relationship.service.d.ts +75 -0
  107. package/dist/services/relationship.service.d.ts.map +1 -0
  108. package/dist/services/relationship.service.js +211 -0
  109. package/dist/services/relationship.service.js.map +1 -0
  110. package/dist/services/space-config.service.d.ts +22 -0
  111. package/dist/services/space-config.service.d.ts.map +1 -0
  112. package/dist/services/space-config.service.js +50 -0
  113. package/dist/services/space-config.service.js.map +1 -0
  114. package/dist/services/space.service.d.ts +160 -0
  115. package/dist/services/space.service.d.ts.map +1 -0
  116. package/dist/services/space.service.js +815 -0
  117. package/dist/services/space.service.js.map +1 -0
  118. package/dist/testing/index.d.ts +8 -0
  119. package/dist/testing/index.d.ts.map +1 -0
  120. package/dist/testing/index.js +8 -0
  121. package/dist/testing/index.js.map +1 -0
  122. package/dist/testing/test-data-generator.d.ts +100 -0
  123. package/dist/testing/test-data-generator.d.ts.map +1 -0
  124. package/dist/testing/test-data-generator.js +194 -0
  125. package/dist/testing/test-data-generator.js.map +1 -0
  126. package/dist/testing/weaviate-mock.d.ts +317 -0
  127. package/dist/testing/weaviate-mock.d.ts.map +1 -0
  128. package/dist/testing/weaviate-mock.js +233 -0
  129. package/dist/testing/weaviate-mock.js.map +1 -0
  130. package/dist/types/auth.types.d.ts +36 -0
  131. package/dist/types/auth.types.d.ts.map +1 -0
  132. package/dist/types/auth.types.js +9 -0
  133. package/dist/types/auth.types.js.map +1 -0
  134. package/dist/types/context.types.d.ts +78 -0
  135. package/dist/types/context.types.d.ts.map +1 -0
  136. package/dist/types/context.types.js +6 -0
  137. package/dist/types/context.types.js.map +1 -0
  138. package/dist/types/index.d.ts +14 -0
  139. package/dist/types/index.d.ts.map +1 -0
  140. package/dist/types/index.js +6 -0
  141. package/dist/types/index.js.map +1 -0
  142. package/dist/types/llm.types.d.ts +8 -0
  143. package/dist/types/llm.types.d.ts.map +1 -0
  144. package/dist/types/llm.types.js +8 -0
  145. package/dist/types/llm.types.js.map +1 -0
  146. package/dist/types/memory.types.d.ts +83 -0
  147. package/dist/types/memory.types.d.ts.map +1 -0
  148. package/dist/types/memory.types.js +6 -0
  149. package/dist/types/memory.types.js.map +1 -0
  150. package/dist/types/preferences.types.d.ts +285 -0
  151. package/dist/types/preferences.types.d.ts.map +1 -0
  152. package/dist/types/preferences.types.js +195 -0
  153. package/dist/types/preferences.types.js.map +1 -0
  154. package/dist/types/result.types.d.ts +60 -0
  155. package/dist/types/result.types.d.ts.map +1 -0
  156. package/dist/types/result.types.js +82 -0
  157. package/dist/types/result.types.js.map +1 -0
  158. package/dist/types/search.types.d.ts +49 -0
  159. package/dist/types/search.types.d.ts.map +1 -0
  160. package/dist/types/search.types.js +6 -0
  161. package/dist/types/search.types.js.map +1 -0
  162. package/dist/types/shared.types.d.ts +91 -0
  163. package/dist/types/shared.types.d.ts.map +1 -0
  164. package/dist/types/shared.types.js +57 -0
  165. package/dist/types/shared.types.js.map +1 -0
  166. package/dist/types/space.types.d.ts +82 -0
  167. package/dist/types/space.types.d.ts.map +1 -0
  168. package/dist/types/space.types.js +18 -0
  169. package/dist/types/space.types.js.map +1 -0
  170. package/dist/types/utils.types.d.ts +51 -0
  171. package/dist/types/utils.types.d.ts.map +1 -0
  172. package/dist/types/utils.types.js +4 -0
  173. package/dist/types/utils.types.js.map +1 -0
  174. package/dist/utils/auth-helpers.d.ts +23 -0
  175. package/dist/utils/auth-helpers.d.ts.map +1 -0
  176. package/dist/utils/auth-helpers.js +31 -0
  177. package/dist/utils/auth-helpers.js.map +1 -0
  178. package/dist/utils/debug.d.ts +45 -0
  179. package/dist/utils/debug.d.ts.map +1 -0
  180. package/dist/utils/debug.js +112 -0
  181. package/dist/utils/debug.js.map +1 -0
  182. package/dist/utils/error-handler.d.ts +46 -0
  183. package/dist/utils/error-handler.d.ts.map +1 -0
  184. package/dist/utils/error-handler.js +63 -0
  185. package/dist/utils/error-handler.js.map +1 -0
  186. package/dist/utils/filters.d.ts +42 -0
  187. package/dist/utils/filters.d.ts.map +1 -0
  188. package/dist/utils/filters.js +132 -0
  189. package/dist/utils/filters.js.map +1 -0
  190. package/dist/utils/index.d.ts +9 -0
  191. package/dist/utils/index.d.ts.map +1 -0
  192. package/dist/utils/index.js +9 -0
  193. package/dist/utils/index.js.map +1 -0
  194. package/dist/utils/logger.d.ts +22 -0
  195. package/dist/utils/logger.d.ts.map +1 -0
  196. package/dist/utils/logger.js +68 -0
  197. package/dist/utils/logger.js.map +1 -0
  198. package/package.json +100 -0
@@ -0,0 +1,195 @@
1
+ /**
2
+ * User preferences types for remember-core.
3
+ * Ported from remember-mcp/src/types/preferences.ts
4
+ * Stored in Firestore at users/{userId}/preferences
5
+ */
6
+ /**
7
+ * Default preferences
8
+ */
9
+ export const DEFAULT_PREFERENCES = {
10
+ templates: {
11
+ auto_suggest: true,
12
+ suggestion_threshold: 0.6,
13
+ max_suggestions: 3,
14
+ show_preview: true,
15
+ remember_choice: true,
16
+ suppressed_categories: [],
17
+ suppressed_templates: [],
18
+ always_suggest: [],
19
+ },
20
+ search: {
21
+ default_limit: 10,
22
+ include_low_trust: false,
23
+ weight_by_access: true,
24
+ weight_by_recency: true,
25
+ default_alpha: 0.7,
26
+ },
27
+ location: {
28
+ auto_capture: true,
29
+ precision: 'approximate',
30
+ share_with_memories: true,
31
+ },
32
+ privacy: {
33
+ default_trust_level: 0.25,
34
+ allow_cross_user_access: false,
35
+ auto_approve_requests: false,
36
+ audit_logging: true,
37
+ },
38
+ notifications: {
39
+ trust_violations: true,
40
+ access_requests: true,
41
+ memory_reminders: false,
42
+ relationship_suggestions: true,
43
+ },
44
+ display: {
45
+ date_format: 'MM/DD/YYYY',
46
+ time_format: '12h',
47
+ timezone: 'America/Los_Angeles',
48
+ language: 'en',
49
+ },
50
+ };
51
+ /**
52
+ * Valid preference categories
53
+ */
54
+ export const PREFERENCE_CATEGORIES = [
55
+ 'templates',
56
+ 'search',
57
+ 'location',
58
+ 'privacy',
59
+ 'notifications',
60
+ 'display',
61
+ ];
62
+ /**
63
+ * Preference field descriptions for dynamic tool schema generation
64
+ */
65
+ export const PREFERENCE_DESCRIPTIONS = {
66
+ templates: {
67
+ auto_suggest: 'Automatically suggest templates when creating memories (default: true)',
68
+ suggestion_threshold: 'Minimum confidence to show template suggestion, 0-1 (default: 0.6)',
69
+ max_suggestions: 'Maximum number of templates to suggest, 1-5 (default: 3)',
70
+ show_preview: 'Show template preview in suggestion (default: true)',
71
+ remember_choice: 'Remember "don\'t suggest for this type" choices (default: true)',
72
+ suppressed_categories: 'Categories to never suggest templates for (default: [])',
73
+ suppressed_templates: 'Specific templates to never suggest (default: [])',
74
+ always_suggest: 'Templates to always suggest regardless of confidence (default: [])',
75
+ },
76
+ search: {
77
+ default_limit: 'Default number of search results to return, 1-100 (default: 10)',
78
+ include_low_trust: 'Include low-trust memories in search results (default: false)',
79
+ weight_by_access: 'Use access count in search ranking (default: true)',
80
+ weight_by_recency: 'Use recency in search ranking (default: true)',
81
+ default_alpha: 'Default hybrid search alpha (0=keyword, 1=semantic, default: 0.7)',
82
+ },
83
+ location: {
84
+ auto_capture: 'Automatically capture location for memories (default: true)',
85
+ precision: 'Location precision level: exact, approximate, city, none (default: approximate)',
86
+ share_with_memories: 'Include location data in memories (default: true)',
87
+ },
88
+ privacy: {
89
+ default_trust_level: 'Default trust level for new memories, 0-1 (default: 0.25)',
90
+ allow_cross_user_access: 'Allow other users to request access to memories (default: false)',
91
+ auto_approve_requests: 'Automatically approve access requests (default: false)',
92
+ audit_logging: 'Enable audit logging for preference changes (default: true)',
93
+ },
94
+ notifications: {
95
+ trust_violations: 'Notify on trust violations (default: true)',
96
+ access_requests: 'Notify on access requests from other users (default: true)',
97
+ memory_reminders: 'Send reminders about important memories (default: false)',
98
+ relationship_suggestions: 'Suggest new relationships between memories (default: true)',
99
+ },
100
+ display: {
101
+ date_format: 'Date format string (default: MM/DD/YYYY)',
102
+ time_format: 'Time format: 12h or 24h (default: 12h)',
103
+ timezone: 'Timezone identifier (default: America/Los_Angeles)',
104
+ language: 'Language code (default: en)',
105
+ },
106
+ };
107
+ /**
108
+ * Generate dynamic preference description for tool schema
109
+ */
110
+ export function getPreferenceDescription() {
111
+ const categories = Object.entries(PREFERENCE_DESCRIPTIONS)
112
+ .map(([category, fields]) => {
113
+ const fieldList = Object.entries(fields)
114
+ .map(([field, desc]) => ` - ${field}: ${desc}`)
115
+ .join('\n');
116
+ return `${category}:\n${fieldList}`;
117
+ })
118
+ .join('\n\n');
119
+ return `User preferences control system behavior. Available preference categories and fields:\n\n${categories}`;
120
+ }
121
+ /**
122
+ * Generate JSON schema for preferences
123
+ */
124
+ export function getPreferencesSchema() {
125
+ return {
126
+ type: 'object',
127
+ properties: {
128
+ templates: {
129
+ type: 'object',
130
+ description: 'Template suggestion preferences',
131
+ properties: {
132
+ auto_suggest: { type: 'boolean' },
133
+ suggestion_threshold: { type: 'number', minimum: 0, maximum: 1 },
134
+ max_suggestions: { type: 'number', minimum: 1, maximum: 5 },
135
+ show_preview: { type: 'boolean' },
136
+ remember_choice: { type: 'boolean' },
137
+ suppressed_categories: { type: 'array', items: { type: 'string' } },
138
+ suppressed_templates: { type: 'array', items: { type: 'string' } },
139
+ always_suggest: { type: 'array', items: { type: 'string' } },
140
+ },
141
+ },
142
+ search: {
143
+ type: 'object',
144
+ description: 'Search behavior preferences',
145
+ properties: {
146
+ default_limit: { type: 'number', minimum: 1, maximum: 100 },
147
+ include_low_trust: { type: 'boolean' },
148
+ weight_by_access: { type: 'boolean' },
149
+ weight_by_recency: { type: 'boolean' },
150
+ default_alpha: { type: 'number', minimum: 0, maximum: 1 },
151
+ },
152
+ },
153
+ location: {
154
+ type: 'object',
155
+ description: 'Location capture preferences',
156
+ properties: {
157
+ auto_capture: { type: 'boolean' },
158
+ precision: { type: 'string', enum: ['exact', 'approximate', 'city', 'none'] },
159
+ share_with_memories: { type: 'boolean' },
160
+ },
161
+ },
162
+ privacy: {
163
+ type: 'object',
164
+ description: 'Privacy and trust preferences',
165
+ properties: {
166
+ default_trust_level: { type: 'number', minimum: 0, maximum: 1 },
167
+ allow_cross_user_access: { type: 'boolean' },
168
+ auto_approve_requests: { type: 'boolean' },
169
+ audit_logging: { type: 'boolean' },
170
+ },
171
+ },
172
+ notifications: {
173
+ type: 'object',
174
+ description: 'Notification preferences',
175
+ properties: {
176
+ trust_violations: { type: 'boolean' },
177
+ access_requests: { type: 'boolean' },
178
+ memory_reminders: { type: 'boolean' },
179
+ relationship_suggestions: { type: 'boolean' },
180
+ },
181
+ },
182
+ display: {
183
+ type: 'object',
184
+ description: 'Display format preferences',
185
+ properties: {
186
+ date_format: { type: 'string' },
187
+ time_format: { type: 'string', enum: ['12h', '24h'] },
188
+ timezone: { type: 'string' },
189
+ language: { type: 'string' },
190
+ },
191
+ },
192
+ },
193
+ };
194
+ }
195
+ //# sourceMappingURL=preferences.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preferences.types.js","sourceRoot":"","sources":["../../src/types/preferences.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiFH;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAmE;IACjG,SAAS,EAAE;QACT,YAAY,EAAE,IAAI;QAClB,oBAAoB,EAAE,GAAG;QACzB,eAAe,EAAE,CAAC;QAClB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,IAAI;QACrB,qBAAqB,EAAE,EAAE;QACzB,oBAAoB,EAAE,EAAE;QACxB,cAAc,EAAE,EAAE;KACnB;IACD,MAAM,EAAE;QACN,aAAa,EAAE,EAAE;QACjB,iBAAiB,EAAE,KAAK;QACxB,gBAAgB,EAAE,IAAI;QACtB,iBAAiB,EAAE,IAAI;QACvB,aAAa,EAAE,GAAG;KACnB;IACD,QAAQ,EAAE;QACR,YAAY,EAAE,IAAI;QAClB,SAAS,EAAE,aAAa;QACxB,mBAAmB,EAAE,IAAI;KAC1B;IACD,OAAO,EAAE;QACP,mBAAmB,EAAE,IAAI;QACzB,uBAAuB,EAAE,KAAK;QAC9B,qBAAqB,EAAE,KAAK;QAC5B,aAAa,EAAE,IAAI;KACpB;IACD,aAAa,EAAE;QACb,gBAAgB,EAAE,IAAI;QACtB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,KAAK;QACvB,wBAAwB,EAAE,IAAI;KAC/B;IACD,OAAO,EAAE;QACP,WAAW,EAAE,YAAY;QACzB,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE,qBAAqB;QAC/B,QAAQ,EAAE,IAAI;KACf;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,WAAW;IACX,QAAQ;IACR,UAAU;IACV,SAAS;IACT,eAAe;IACf,SAAS;CACD,CAAC;AAIX;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,SAAS,EAAE;QACT,YAAY,EAAE,wEAAwE;QACtF,oBAAoB,EAAE,oEAAoE;QAC1F,eAAe,EAAE,0DAA0D;QAC3E,YAAY,EAAE,qDAAqD;QACnE,eAAe,EAAE,iEAAiE;QAClF,qBAAqB,EAAE,yDAAyD;QAChF,oBAAoB,EAAE,mDAAmD;QACzE,cAAc,EAAE,oEAAoE;KACrF;IACD,MAAM,EAAE;QACN,aAAa,EAAE,iEAAiE;QAChF,iBAAiB,EAAE,+DAA+D;QAClF,gBAAgB,EAAE,oDAAoD;QACtE,iBAAiB,EAAE,+CAA+C;QAClE,aAAa,EAAE,mEAAmE;KACnF;IACD,QAAQ,EAAE;QACR,YAAY,EAAE,6DAA6D;QAC3E,SAAS,EAAE,iFAAiF;QAC5F,mBAAmB,EAAE,mDAAmD;KACzE;IACD,OAAO,EAAE;QACP,mBAAmB,EAAE,2DAA2D;QAChF,uBAAuB,EAAE,kEAAkE;QAC3F,qBAAqB,EAAE,wDAAwD;QAC/E,aAAa,EAAE,6DAA6D;KAC7E;IACD,aAAa,EAAE;QACb,gBAAgB,EAAE,4CAA4C;QAC9D,eAAe,EAAE,4DAA4D;QAC7E,gBAAgB,EAAE,0DAA0D;QAC5E,wBAAwB,EAAE,4DAA4D;KACvF;IACD,OAAO,EAAE;QACP,WAAW,EAAE,0CAA0C;QACvD,WAAW,EAAE,wCAAwC;QACrD,QAAQ,EAAE,oDAAoD;QAC9D,QAAQ,EAAE,6BAA6B;KACxC;CACO,CAAC;AAEX;;GAEG;AACH,MAAM,UAAU,wBAAwB;IACtC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC;SACvD,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE;QAC1B,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;aACrC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,IAAI,EAAE,CAAC;aAC/C,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,GAAG,QAAQ,MAAM,SAAS,EAAE,CAAC;IACtC,CAAC,CAAC;SACD,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhB,OAAO,4FAA4F,UAAU,EAAE,CAAC;AAClH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iCAAiC;gBAC9C,UAAU,EAAE;oBACV,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBACjC,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;oBAChE,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;oBAC3D,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBACjC,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBACpC,qBAAqB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;oBACnE,oBAAoB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;oBAClE,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;iBAC7D;aACF;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6BAA6B;gBAC1C,UAAU,EAAE;oBACV,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE;oBAC3D,iBAAiB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBACtC,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBACrC,iBAAiB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBACtC,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;iBAC1D;aACF;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8BAA8B;gBAC3C,UAAU,EAAE;oBACV,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBACjC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE;oBAC7E,mBAAmB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;iBACzC;aACF;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+BAA+B;gBAC5C,UAAU,EAAE;oBACV,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;oBAC/D,uBAAuB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBAC5C,qBAAqB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBAC1C,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;iBACnC;aACF;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0BAA0B;gBACvC,UAAU,EAAE;oBACV,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBACrC,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBACpC,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBACrC,wBAAwB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;iBAC9C;aACF;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,4BAA4B;gBACzC,UAAU,EAAE;oBACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC/B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;oBACrD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC5B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC7B;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Represents a successful result containing a value of type T
3
+ */
4
+ export interface Ok<T> {
5
+ readonly success: true;
6
+ readonly value: T;
7
+ }
8
+ /**
9
+ * Represents a failed result containing an error of type E
10
+ */
11
+ export interface Err<E> {
12
+ readonly success: false;
13
+ readonly error: E;
14
+ }
15
+ /**
16
+ * A value that is either Ok<T> or Err<E>.
17
+ * Use for operations where failure is expected and callers must handle both cases.
18
+ */
19
+ export type Result<T, E = Error> = Ok<T> | Err<E>;
20
+ /**
21
+ * Construct a successful result
22
+ */
23
+ export declare function ok<T>(value: T): Ok<T>;
24
+ /**
25
+ * Construct a failed result
26
+ */
27
+ export declare function err<E>(error: E): Err<E>;
28
+ /**
29
+ * Type guard: checks if a Result is successful
30
+ */
31
+ export declare function isOk<T, E>(result: Result<T, E>): result is Ok<T>;
32
+ /**
33
+ * Type guard: checks if a Result is a failure
34
+ */
35
+ export declare function isErr<T, E>(result: Result<T, E>): result is Err<E>;
36
+ /**
37
+ * Apply a transform to the Ok value, passing Err through unchanged
38
+ */
39
+ export declare function mapOk<T, U, E>(result: Result<T, E>, fn: (value: T) => U): Result<U, E>;
40
+ /**
41
+ * Apply a transform to the Err value, passing Ok through unchanged
42
+ */
43
+ export declare function mapErr<T, E, F>(result: Result<T, E>, fn: (error: E) => F): Result<T, F>;
44
+ /**
45
+ * Chain two Result-returning operations
46
+ */
47
+ export declare function andThen<T, U, E>(result: Result<T, E>, fn: (value: T) => Result<U, E>): Result<U, E>;
48
+ /**
49
+ * Unwrap the Ok value or return a default
50
+ */
51
+ export declare function getOrElse<T, E>(result: Result<T, E>, defaultValue: T): T;
52
+ /**
53
+ * Wrap a synchronous function that might throw into one returning a Result
54
+ */
55
+ export declare function tryCatch<T, E = Error>(fn: () => T, onError: (e: unknown) => E): Result<T, E>;
56
+ /**
57
+ * Wrap an async function that might throw into one returning a Result
58
+ */
59
+ export declare function tryCatchAsync<T, E = Error>(fn: () => Promise<T>, onError: (e: unknown) => E): Promise<Result<T, E>>;
60
+ //# sourceMappingURL=result.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.types.d.ts","sourceRoot":"","sources":["../../src/types/result.types.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,GAAG,CAAC,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAElD;;GAEG;AACH,wBAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAErC;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAEvC;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,CAEhE;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAElE;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAC3B,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAClB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAKd;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAC5B,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAClB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAKd;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAC7B,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAC7B,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAKd;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAExE;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,EACnC,EAAE,EAAE,MAAM,CAAC,EACX,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,GACzB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAMd;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,EAC9C,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,GACzB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAMvB"}
@@ -0,0 +1,82 @@
1
+ // src/types/result.types.ts
2
+ // Pattern: Result Types (core-sdk.types-result.md)
3
+ /**
4
+ * Construct a successful result
5
+ */
6
+ export function ok(value) {
7
+ return { success: true, value };
8
+ }
9
+ /**
10
+ * Construct a failed result
11
+ */
12
+ export function err(error) {
13
+ return { success: false, error };
14
+ }
15
+ /**
16
+ * Type guard: checks if a Result is successful
17
+ */
18
+ export function isOk(result) {
19
+ return result.success === true;
20
+ }
21
+ /**
22
+ * Type guard: checks if a Result is a failure
23
+ */
24
+ export function isErr(result) {
25
+ return result.success === false;
26
+ }
27
+ /**
28
+ * Apply a transform to the Ok value, passing Err through unchanged
29
+ */
30
+ export function mapOk(result, fn) {
31
+ if (isOk(result)) {
32
+ return ok(fn(result.value));
33
+ }
34
+ return result;
35
+ }
36
+ /**
37
+ * Apply a transform to the Err value, passing Ok through unchanged
38
+ */
39
+ export function mapErr(result, fn) {
40
+ if (isErr(result)) {
41
+ return err(fn(result.error));
42
+ }
43
+ return result;
44
+ }
45
+ /**
46
+ * Chain two Result-returning operations
47
+ */
48
+ export function andThen(result, fn) {
49
+ if (isOk(result)) {
50
+ return fn(result.value);
51
+ }
52
+ return result;
53
+ }
54
+ /**
55
+ * Unwrap the Ok value or return a default
56
+ */
57
+ export function getOrElse(result, defaultValue) {
58
+ return isOk(result) ? result.value : defaultValue;
59
+ }
60
+ /**
61
+ * Wrap a synchronous function that might throw into one returning a Result
62
+ */
63
+ export function tryCatch(fn, onError) {
64
+ try {
65
+ return ok(fn());
66
+ }
67
+ catch (e) {
68
+ return err(onError(e));
69
+ }
70
+ }
71
+ /**
72
+ * Wrap an async function that might throw into one returning a Result
73
+ */
74
+ export async function tryCatchAsync(fn, onError) {
75
+ try {
76
+ return ok(await fn());
77
+ }
78
+ catch (e) {
79
+ return err(onError(e));
80
+ }
81
+ }
82
+ //# sourceMappingURL=result.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.types.js","sourceRoot":"","sources":["../../src/types/result.types.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,mDAAmD;AAwBnD;;GAEG;AACH,MAAM,UAAU,EAAE,CAAI,KAAQ;IAC5B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,GAAG,CAAI,KAAQ;IAC7B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI,CAAO,MAAoB;IAC7C,OAAO,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAO,MAAoB;IAC9C,OAAO,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CACnB,MAAoB,EACpB,EAAmB;IAEnB,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CACpB,MAAoB,EACpB,EAAmB;IAEnB,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAClB,OAAO,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CACrB,MAAoB,EACpB,EAA8B;IAE9B,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAO,MAAoB,EAAE,YAAe;IACnE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CACtB,EAAW,EACX,OAA0B;IAE1B,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAoB,EACpB,OAA0B;IAE1B,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;AACH,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Search-related types for remember-core.
3
+ * Ported from remember-mcp/src/types/memory.ts
4
+ */
5
+ import type { GPSCoordinates } from './context.types.js';
6
+ import type { ContentType, Memory, Relationship } from './memory.types.js';
7
+ /**
8
+ * Search filters
9
+ */
10
+ export interface SearchFilters {
11
+ types?: ContentType[];
12
+ tags?: string[];
13
+ weight_min?: number;
14
+ weight_max?: number;
15
+ trust_min?: number;
16
+ trust_max?: number;
17
+ date_from?: string;
18
+ date_to?: string;
19
+ location_near?: GPSCoordinates;
20
+ location_radius_meters?: number;
21
+ has_relationships?: boolean;
22
+ }
23
+ /**
24
+ * Deleted filter type
25
+ */
26
+ export type DeletedFilter = 'exclude' | 'include' | 'only';
27
+ /**
28
+ * Search options
29
+ */
30
+ export interface SearchOptions {
31
+ query: string;
32
+ alpha?: number;
33
+ filters?: SearchFilters;
34
+ include_relationships?: boolean;
35
+ deleted_filter?: DeletedFilter;
36
+ limit?: number;
37
+ offset?: number;
38
+ }
39
+ /**
40
+ * Search result
41
+ */
42
+ export interface SearchResult {
43
+ memories: Memory[];
44
+ relationships?: Relationship[];
45
+ total: number;
46
+ offset: number;
47
+ limit: number;
48
+ }
49
+ //# sourceMappingURL=search.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.types.d.ts","sourceRoot":"","sources":["../../src/types/search.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Search-related types for remember-core.
3
+ * Ported from remember-mcp/src/types/memory.ts
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=search.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.types.js","sourceRoot":"","sources":["../../src/types/search.types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,91 @@
1
+ declare const __brand: unique symbol;
2
+ type Brand<T, B> = T & {
3
+ [__brand]: B;
4
+ };
5
+ /**
6
+ * A user's unique identifier.
7
+ * Prevents mixing raw strings with user IDs at compile time.
8
+ */
9
+ export type UserId = Brand<string, 'UserId'>;
10
+ /**
11
+ * An email address (validated format).
12
+ */
13
+ export type EmailAddress = Brand<string, 'EmailAddress'>;
14
+ /**
15
+ * An ISO 8601 timestamp string.
16
+ */
17
+ export type Timestamp = Brand<string, 'Timestamp'>;
18
+ /**
19
+ * Cast a raw string to UserId.
20
+ * Validates the string is non-empty; throws otherwise.
21
+ */
22
+ export declare function toUserId(value: string): UserId;
23
+ /**
24
+ * Cast a raw string to EmailAddress.
25
+ * Validates basic email format; throws otherwise.
26
+ */
27
+ export declare function toEmailAddress(value: string): EmailAddress;
28
+ /**
29
+ * Cast a raw string to Timestamp.
30
+ * Validates it is a parseable date; throws otherwise.
31
+ */
32
+ export declare function toTimestamp(value: string): Timestamp;
33
+ /**
34
+ * Internal User entity (as stored in the database).
35
+ * Never expose this directly in API responses — use UserDTO instead.
36
+ */
37
+ export interface User {
38
+ id: UserId;
39
+ email: EmailAddress;
40
+ name: string;
41
+ role: 'admin' | 'member' | 'viewer';
42
+ createdAt: Timestamp;
43
+ updatedAt: Timestamp;
44
+ }
45
+ /**
46
+ * Input for creating a new user.
47
+ */
48
+ export interface CreateUserInput {
49
+ email: string;
50
+ name: string;
51
+ role?: 'admin' | 'member' | 'viewer';
52
+ }
53
+ /**
54
+ * Input for listing users with optional filtering.
55
+ */
56
+ export interface ListUsersInput {
57
+ role?: 'admin' | 'member' | 'viewer';
58
+ cursor?: string;
59
+ limit?: number;
60
+ }
61
+ /**
62
+ * User data as returned in API responses.
63
+ * Omits sensitive fields; adds computed display fields.
64
+ */
65
+ export interface UserDTO {
66
+ id: string;
67
+ email: string;
68
+ name: string;
69
+ role: string;
70
+ createdAt: string;
71
+ }
72
+ /**
73
+ * Transform an internal User entity to a UserDTO for API responses.
74
+ * Co-located with the type so the transformation is always in sync.
75
+ */
76
+ export declare function toUserDTO(user: User): UserDTO;
77
+ /**
78
+ * A paginated list of items with cursor-based navigation.
79
+ */
80
+ export interface PaginatedResult<T> {
81
+ items: T[];
82
+ total: number;
83
+ cursor: string | null;
84
+ hasMore: boolean;
85
+ }
86
+ /**
87
+ * Create a PaginatedResult from a list of items.
88
+ */
89
+ export declare function createPaginatedResult<T>(items: T[], total: number, cursor: string | null): PaginatedResult<T>;
90
+ export {};
91
+ //# sourceMappingURL=shared.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.types.d.ts","sourceRoot":"","sources":["../../src/types/shared.types.ts"],"names":[],"mappings":"AAKA,OAAO,CAAC,MAAM,OAAO,EAAE,OAAO,MAAM,CAAC;AACrC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;CAAE,CAAC;AAExC;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAK9C;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAK1D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAKpD;AAID;;;GAGG;AACH,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACpC,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;CACtB;AAID;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAQ7C;AAID;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,KAAK,EAAE,CAAC,EAAE,EACV,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,eAAe,CAAC,CAAC,CAAC,CAOpB"}
@@ -0,0 +1,57 @@
1
+ // src/types/shared.types.ts
2
+ // Pattern: Shared Types (core-sdk.types-shared.md)
3
+ /**
4
+ * Cast a raw string to UserId.
5
+ * Validates the string is non-empty; throws otherwise.
6
+ */
7
+ export function toUserId(value) {
8
+ if (!value || value.trim().length === 0) {
9
+ throw new Error('UserId must be a non-empty string');
10
+ }
11
+ return value;
12
+ }
13
+ /**
14
+ * Cast a raw string to EmailAddress.
15
+ * Validates basic email format; throws otherwise.
16
+ */
17
+ export function toEmailAddress(value) {
18
+ if (!value.includes('@')) {
19
+ throw new Error(`Invalid email address: ${value}`);
20
+ }
21
+ return value;
22
+ }
23
+ /**
24
+ * Cast a raw string to Timestamp.
25
+ * Validates it is a parseable date; throws otherwise.
26
+ */
27
+ export function toTimestamp(value) {
28
+ if (isNaN(Date.parse(value))) {
29
+ throw new Error(`Invalid timestamp: ${value}`);
30
+ }
31
+ return value;
32
+ }
33
+ /**
34
+ * Transform an internal User entity to a UserDTO for API responses.
35
+ * Co-located with the type so the transformation is always in sync.
36
+ */
37
+ export function toUserDTO(user) {
38
+ return {
39
+ id: user.id,
40
+ email: user.email,
41
+ name: user.name,
42
+ role: user.role,
43
+ createdAt: user.createdAt,
44
+ };
45
+ }
46
+ /**
47
+ * Create a PaginatedResult from a list of items.
48
+ */
49
+ export function createPaginatedResult(items, total, cursor) {
50
+ return {
51
+ items,
52
+ total,
53
+ cursor,
54
+ hasMore: cursor !== null,
55
+ };
56
+ }
57
+ //# sourceMappingURL=shared.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.types.js","sourceRoot":"","sources":["../../src/types/shared.types.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,mDAAmD;AAuBnD;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,KAAe,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,KAAqB,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,KAAkB,CAAC;AAC5B,CAAC;AAmDD;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,IAAU;IAClC,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC;AACJ,CAAC;AAcD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAU,EACV,KAAa,EACb,MAAqB;IAErB,OAAO;QACL,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO,EAAE,MAAM,KAAK,IAAI;KACzB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Space Memory type definitions for remember-core.
3
+ * Ported from remember-mcp/src/types/space-memory.ts
4
+ *
5
+ * Space memories are memories published to shared collections
6
+ * where they can be discovered by other users.
7
+ */
8
+ import type { Memory } from './memory.types.js';
9
+ import type { SearchOptions, SearchResult } from './search.types.js';
10
+ /**
11
+ * Space memory - a memory published to a shared space.
12
+ * Extends Memory with additional fields for attribution and discovery.
13
+ */
14
+ export interface SpaceMemory extends Omit<Memory, 'user_id' | 'doc_type'> {
15
+ /**
16
+ * Spaces this memory is published to (snake_case array).
17
+ * Examples: ['the_void'], ['dogs', 'cats'], ['the_void', 'dogs']
18
+ *
19
+ * A memory can belong to multiple spaces simultaneously.
20
+ */
21
+ spaces: string[];
22
+ /**
23
+ * Original author's user_id (for permissions).
24
+ * This is private and not shown publicly.
25
+ */
26
+ author_id: string;
27
+ /**
28
+ * Optional ghost profile ID for pseudonymous publishing.
29
+ * If present, memory is attributed to ghost instead of user.
30
+ */
31
+ ghost_id?: string;
32
+ /**
33
+ * When the memory was published to the space.
34
+ */
35
+ published_at: string;
36
+ /**
37
+ * How many times this memory has been discovered/viewed.
38
+ */
39
+ discovery_count: number;
40
+ /**
41
+ * Attribution type.
42
+ * - 'user': Published as the user (shows author_id)
43
+ * - 'ghost': Published as a ghost (shows ghost_id)
44
+ */
45
+ attribution: 'user' | 'ghost';
46
+ /**
47
+ * Document type discriminator.
48
+ * Always 'space_memory' for space memories.
49
+ */
50
+ doc_type: 'space_memory';
51
+ deleted_at?: Date | null;
52
+ deleted_by?: string;
53
+ deletion_reason?: string;
54
+ }
55
+ /**
56
+ * Search options for space memories.
57
+ * Same as SearchOptions but for space collections.
58
+ */
59
+ export interface SpaceSearchOptions extends Omit<SearchOptions, 'include_relationships'> {
60
+ /** Space to search */
61
+ space: string;
62
+ }
63
+ /**
64
+ * Search result for space memories.
65
+ */
66
+ export interface SpaceSearchResult extends Omit<SearchResult, 'memories' | 'relationships'> {
67
+ /** Found space memories */
68
+ space_memories: SpaceMemory[];
69
+ }
70
+ /**
71
+ * Supported space IDs
72
+ */
73
+ export type SpaceId = 'the_void';
74
+ /**
75
+ * Space display names mapped to IDs
76
+ */
77
+ export declare const SPACE_DISPLAY_NAMES: Record<SpaceId, string>;
78
+ /**
79
+ * Supported spaces constant
80
+ */
81
+ export declare const SUPPORTED_SPACES: SpaceId[];
82
+ //# sourceMappingURL=space.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"space.types.d.ts","sourceRoot":"","sources":["../../src/types/space.types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAErE;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,CAAC;IACvE;;;;;OAKG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAE9B;;;OAGG;IACH,QAAQ,EAAE,cAAc,CAAC;IAGzB,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,aAAa,EAAE,uBAAuB,CAAC;IACtF,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,YAAY,EAAE,UAAU,GAAG,eAAe,CAAC;IACzF,2BAA2B;IAC3B,cAAc,EAAE,WAAW,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAEvD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,OAAO,EAAiB,CAAC"}