@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,78 @@
1
+ /**
2
+ * Context and location types for remember-core.
3
+ * Ported from remember-mcp/src/types/memory.ts
4
+ */
5
+ /**
6
+ * GPS coordinates
7
+ */
8
+ export interface GPSCoordinates {
9
+ latitude: number;
10
+ longitude: number;
11
+ accuracy?: number;
12
+ altitude?: number;
13
+ timestamp: string;
14
+ }
15
+ /**
16
+ * Address information
17
+ */
18
+ export interface Address {
19
+ formatted: string;
20
+ street?: string;
21
+ city?: string;
22
+ state?: string;
23
+ country?: string;
24
+ postal_code?: string;
25
+ timezone?: string;
26
+ }
27
+ /**
28
+ * Location information (from platform cookies)
29
+ */
30
+ export interface Location {
31
+ gps: GPSCoordinates | null;
32
+ address: Address | null;
33
+ source: 'gps' | 'ip' | 'manual' | 'cached' | 'unavailable';
34
+ confidence: number;
35
+ is_approximate: boolean;
36
+ }
37
+ /**
38
+ * Conversation participant
39
+ */
40
+ export interface Participant {
41
+ user_id: string;
42
+ role: 'user' | 'assistant' | 'system';
43
+ name?: string;
44
+ }
45
+ /**
46
+ * Source information
47
+ */
48
+ export interface Source {
49
+ type: 'conversation' | 'import' | 'inference' | 'manual' | 'api';
50
+ platform?: string;
51
+ client?: string;
52
+ version?: string;
53
+ }
54
+ /**
55
+ * Environment information
56
+ */
57
+ export interface Environment {
58
+ location?: Location;
59
+ device?: string;
60
+ user_agent?: string;
61
+ }
62
+ /**
63
+ * Context information about how/when memory was created
64
+ */
65
+ export interface MemoryContext {
66
+ conversation_id?: string;
67
+ conversation_title?: string;
68
+ turn_number?: number;
69
+ summary?: string;
70
+ participants?: Participant[];
71
+ timestamp: string;
72
+ timezone?: string;
73
+ source: Source;
74
+ environment?: Environment;
75
+ tags?: string[];
76
+ notes?: string;
77
+ }
78
+ //# sourceMappingURL=context.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.types.d.ts","sourceRoot":"","sources":["../../src/types/context.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,cAAc,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,QAAQ,GAAG,QAAQ,GAAG,aAAa,CAAC;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,cAAc,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Context and location types for remember-core.
3
+ * Ported from remember-mcp/src/types/memory.ts
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=context.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.types.js","sourceRoot":"","sources":["../../src/types/context.types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,14 @@
1
+ export type { Result, Ok, Err } from './result.types.js';
2
+ export { ok, err, isOk, isErr, mapOk, mapErr, andThen, getOrElse, tryCatch, tryCatchAsync, } from './result.types.js';
3
+ export type { DeepPartial, Nullable, Optional, Maybe, Awaited, AsyncReturnType, RequireFields, OptionalFields, Values, Constructor, Immutable, } from './utils.types.js';
4
+ export type { UserId, EmailAddress, Timestamp, User, CreateUserInput, ListUsersInput, UserDTO, PaginatedResult, } from './shared.types.js';
5
+ export { toUserId, toEmailAddress, toTimestamp, toUserDTO, createPaginatedResult, } from './shared.types.js';
6
+ export type { GPSCoordinates, Address, Location, Participant, Source, Environment, MemoryContext, } from './context.types.js';
7
+ export type { ContentType, Memory, Relationship, MemoryDocument, MemoryUpdate, RelationshipUpdate, } from './memory.types.js';
8
+ export type { SearchFilters, DeletedFilter, SearchOptions, SearchResult, } from './search.types.js';
9
+ export type { GroupPermissions, GroupMembership, UserCredentials, AuthContext, WriteMode, CredentialsProvider, } from './auth.types.js';
10
+ export type { TemplatePreferences, SearchPreferences, LocationPreferences, PrivacyPreferences, NotificationPreferences, DisplayPreferences, UserPreferences, PreferenceCategory, } from './preferences.types.js';
11
+ export { DEFAULT_PREFERENCES, PREFERENCE_CATEGORIES, PREFERENCE_DESCRIPTIONS, getPreferenceDescription, getPreferencesSchema, } from './preferences.types.js';
12
+ export type { SpaceMemory, SpaceSearchOptions, SpaceSearchResult, SpaceId, } from './space.types.js';
13
+ export { SPACE_DISPLAY_NAMES, SUPPORTED_SPACES, } from './space.types.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAGA,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EACL,EAAE,EACF,GAAG,EACH,IAAI,EACJ,KAAK,EACL,KAAK,EACL,MAAM,EACN,OAAO,EACP,SAAS,EACT,QAAQ,EACR,aAAa,GACd,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,OAAO,EACP,eAAe,EACf,aAAa,EACb,cAAc,EACd,MAAM,EACN,WAAW,EACX,SAAS,GACV,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,MAAM,EACN,YAAY,EACZ,SAAS,EACT,IAAI,EACJ,eAAe,EACf,cAAc,EACd,OAAO,EACP,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,QAAQ,EACR,cAAc,EACd,WAAW,EACX,SAAS,EACT,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,cAAc,EACd,OAAO,EACP,QAAQ,EACR,WAAW,EACX,MAAM,EACN,WAAW,EACX,aAAa,GACd,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACV,WAAW,EACX,MAAM,EACN,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,GACb,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,WAAW,EACX,SAAS,EACT,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAGhC,YAAY,EACV,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,OAAO,GACR,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,6 @@
1
+ // src/types/index.ts
2
+ export { ok, err, isOk, isErr, mapOk, mapErr, andThen, getOrElse, tryCatch, tryCatchAsync, } from './result.types.js';
3
+ export { toUserId, toEmailAddress, toTimestamp, toUserDTO, createPaginatedResult, } from './shared.types.js';
4
+ export { DEFAULT_PREFERENCES, PREFERENCE_CATEGORIES, PREFERENCE_DESCRIPTIONS, getPreferenceDescription, getPreferencesSchema, } from './preferences.types.js';
5
+ export { SPACE_DISPLAY_NAMES, SUPPORTED_SPACES, } from './space.types.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,qBAAqB;AAIrB,OAAO,EACL,EAAE,EACF,GAAG,EACH,IAAI,EACJ,KAAK,EACL,KAAK,EACL,MAAM,EACN,OAAO,EACP,SAAS,EACT,QAAQ,EACR,aAAa,GACd,MAAM,mBAAmB,CAAC;AA6B3B,OAAO,EACL,QAAQ,EACR,cAAc,EACd,WAAW,EACX,SAAS,EACT,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAqD3B,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAUhC,OAAO,EACL,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export {};
2
+ /**
3
+ * LLM-related type definitions for remember-core.
4
+ *
5
+ * Placeholder — upstream source (remember-mcp/src/llm/types.ts) is currently empty.
6
+ * This file establishes the expected structure for future LLM type definitions.
7
+ */
8
+ //# sourceMappingURL=llm.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm.types.d.ts","sourceRoot":"","sources":["../../src/types/llm.types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
@@ -0,0 +1,8 @@
1
+ export {};
2
+ /**
3
+ * LLM-related type definitions for remember-core.
4
+ *
5
+ * Placeholder — upstream source (remember-mcp/src/llm/types.ts) is currently empty.
6
+ * This file establishes the expected structure for future LLM type definitions.
7
+ */
8
+ //# sourceMappingURL=llm.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm.types.js","sourceRoot":"","sources":["../../src/types/llm.types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Core Memory and Relationship types for remember-core.
3
+ * Ported from remember-mcp/src/types/memory.ts
4
+ */
5
+ import type { Location, MemoryContext } from './context.types.js';
6
+ /**
7
+ * Content types for memories.
8
+ * Based on remember-mcp content-types-expansion design.
9
+ */
10
+ export type ContentType = 'code' | 'note' | 'documentation' | 'reference' | 'todo' | 'checklist' | 'project' | 'goal' | 'habit' | 'email' | 'conversation' | 'meeting' | 'person' | 'article' | 'webpage' | 'social' | 'image' | 'video' | 'audio' | 'song' | 'transcript' | 'presentation' | 'spreadsheet' | 'pdf' | 'screenplay' | 'recipe' | 'idea' | 'quote' | 'poetry' | 'journal' | 'memory' | 'event' | 'bookmark' | 'form' | 'location' | 'invoice' | 'contract' | 'system' | 'action' | 'audit' | 'history' | 'ghost' | 'comment';
11
+ /**
12
+ * Core Memory interface.
13
+ * Stored in per-user Weaviate collections (Memory_users_{userId}).
14
+ */
15
+ export interface Memory {
16
+ id: string;
17
+ user_id: string;
18
+ doc_type: 'memory';
19
+ content: string;
20
+ title?: string;
21
+ summary?: string;
22
+ type: ContentType;
23
+ weight: number;
24
+ trust: number;
25
+ confidence?: number;
26
+ location: Location;
27
+ context: MemoryContext;
28
+ relationships: string[];
29
+ access_count: number;
30
+ last_accessed_at?: string;
31
+ access_frequency?: number;
32
+ created_at: string;
33
+ updated_at: string;
34
+ version: number;
35
+ tags: string[];
36
+ category?: string;
37
+ references?: string[];
38
+ template_id?: string;
39
+ template_version?: string;
40
+ structured_content?: Record<string, unknown>;
41
+ base_weight: number;
42
+ computed_weight?: number;
43
+ parent_id?: string | null;
44
+ thread_root_id?: string | null;
45
+ moderation_flags?: string[];
46
+ deleted_at?: Date | null;
47
+ deleted_by?: string;
48
+ deletion_reason?: string;
49
+ space_ids?: string[];
50
+ group_ids?: string[];
51
+ }
52
+ /**
53
+ * Relationship interface.
54
+ * Stored in same collection as memories with doc_type: "relationship".
55
+ */
56
+ export interface Relationship {
57
+ id: string;
58
+ user_id: string;
59
+ doc_type: 'relationship';
60
+ memory_ids: string[];
61
+ relationship_type: string;
62
+ observation: string;
63
+ strength: number;
64
+ confidence: number;
65
+ context: MemoryContext;
66
+ created_at: string;
67
+ updated_at: string;
68
+ version: number;
69
+ tags: string[];
70
+ }
71
+ /**
72
+ * Union type for documents in Memory collection
73
+ */
74
+ export type MemoryDocument = Memory | Relationship;
75
+ /**
76
+ * Partial memory for updates
77
+ */
78
+ export type MemoryUpdate = Partial<Omit<Memory, 'id' | 'user_id' | 'doc_type' | 'created_at' | 'version'>>;
79
+ /**
80
+ * Partial relationship for updates
81
+ */
82
+ export type RelationshipUpdate = Partial<Omit<Relationship, 'id' | 'user_id' | 'doc_type' | 'created_at' | 'version'>>;
83
+ //# sourceMappingURL=memory.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.types.d.ts","sourceRoot":"","sources":["../../src/types/memory.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Core Memory and Relationship types for remember-core.
3
+ * Ported from remember-mcp/src/types/memory.ts
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=memory.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.types.js","sourceRoot":"","sources":["../../src/types/memory.types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,285 @@
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
+ * Template preferences
8
+ */
9
+ export interface TemplatePreferences {
10
+ auto_suggest: boolean;
11
+ suggestion_threshold: number;
12
+ max_suggestions: number;
13
+ show_preview: boolean;
14
+ remember_choice: boolean;
15
+ suppressed_categories?: string[];
16
+ suppressed_templates?: string[];
17
+ always_suggest?: string[];
18
+ }
19
+ /**
20
+ * Search preferences
21
+ */
22
+ export interface SearchPreferences {
23
+ default_limit: number;
24
+ include_low_trust: boolean;
25
+ weight_by_access: boolean;
26
+ weight_by_recency: boolean;
27
+ default_alpha: number;
28
+ }
29
+ /**
30
+ * Location preferences
31
+ */
32
+ export interface LocationPreferences {
33
+ auto_capture: boolean;
34
+ precision: 'exact' | 'approximate' | 'city' | 'none';
35
+ share_with_memories: boolean;
36
+ }
37
+ /**
38
+ * Privacy preferences
39
+ */
40
+ export interface PrivacyPreferences {
41
+ default_trust_level: number;
42
+ allow_cross_user_access: boolean;
43
+ auto_approve_requests: boolean;
44
+ audit_logging: boolean;
45
+ }
46
+ /**
47
+ * Notification preferences
48
+ */
49
+ export interface NotificationPreferences {
50
+ trust_violations: boolean;
51
+ access_requests: boolean;
52
+ memory_reminders: boolean;
53
+ relationship_suggestions: boolean;
54
+ }
55
+ /**
56
+ * Display preferences
57
+ */
58
+ export interface DisplayPreferences {
59
+ date_format: string;
60
+ time_format: string;
61
+ timezone: string;
62
+ language: string;
63
+ }
64
+ /**
65
+ * Complete user preferences
66
+ */
67
+ export interface UserPreferences {
68
+ user_id: string;
69
+ templates: TemplatePreferences;
70
+ search: SearchPreferences;
71
+ location: LocationPreferences;
72
+ privacy: PrivacyPreferences;
73
+ notifications: NotificationPreferences;
74
+ display: DisplayPreferences;
75
+ created_at: string;
76
+ updated_at: string;
77
+ }
78
+ /**
79
+ * Default preferences
80
+ */
81
+ export declare const DEFAULT_PREFERENCES: Omit<UserPreferences, 'user_id' | 'created_at' | 'updated_at'>;
82
+ /**
83
+ * Valid preference categories
84
+ */
85
+ export declare const PREFERENCE_CATEGORIES: readonly ["templates", "search", "location", "privacy", "notifications", "display"];
86
+ export type PreferenceCategory = typeof PREFERENCE_CATEGORIES[number];
87
+ /**
88
+ * Preference field descriptions for dynamic tool schema generation
89
+ */
90
+ export declare const PREFERENCE_DESCRIPTIONS: {
91
+ readonly templates: {
92
+ readonly auto_suggest: "Automatically suggest templates when creating memories (default: true)";
93
+ readonly suggestion_threshold: "Minimum confidence to show template suggestion, 0-1 (default: 0.6)";
94
+ readonly max_suggestions: "Maximum number of templates to suggest, 1-5 (default: 3)";
95
+ readonly show_preview: "Show template preview in suggestion (default: true)";
96
+ readonly remember_choice: "Remember \"don't suggest for this type\" choices (default: true)";
97
+ readonly suppressed_categories: "Categories to never suggest templates for (default: [])";
98
+ readonly suppressed_templates: "Specific templates to never suggest (default: [])";
99
+ readonly always_suggest: "Templates to always suggest regardless of confidence (default: [])";
100
+ };
101
+ readonly search: {
102
+ readonly default_limit: "Default number of search results to return, 1-100 (default: 10)";
103
+ readonly include_low_trust: "Include low-trust memories in search results (default: false)";
104
+ readonly weight_by_access: "Use access count in search ranking (default: true)";
105
+ readonly weight_by_recency: "Use recency in search ranking (default: true)";
106
+ readonly default_alpha: "Default hybrid search alpha (0=keyword, 1=semantic, default: 0.7)";
107
+ };
108
+ readonly location: {
109
+ readonly auto_capture: "Automatically capture location for memories (default: true)";
110
+ readonly precision: "Location precision level: exact, approximate, city, none (default: approximate)";
111
+ readonly share_with_memories: "Include location data in memories (default: true)";
112
+ };
113
+ readonly privacy: {
114
+ readonly default_trust_level: "Default trust level for new memories, 0-1 (default: 0.25)";
115
+ readonly allow_cross_user_access: "Allow other users to request access to memories (default: false)";
116
+ readonly auto_approve_requests: "Automatically approve access requests (default: false)";
117
+ readonly audit_logging: "Enable audit logging for preference changes (default: true)";
118
+ };
119
+ readonly notifications: {
120
+ readonly trust_violations: "Notify on trust violations (default: true)";
121
+ readonly access_requests: "Notify on access requests from other users (default: true)";
122
+ readonly memory_reminders: "Send reminders about important memories (default: false)";
123
+ readonly relationship_suggestions: "Suggest new relationships between memories (default: true)";
124
+ };
125
+ readonly display: {
126
+ readonly date_format: "Date format string (default: MM/DD/YYYY)";
127
+ readonly time_format: "Time format: 12h or 24h (default: 12h)";
128
+ readonly timezone: "Timezone identifier (default: America/Los_Angeles)";
129
+ readonly language: "Language code (default: en)";
130
+ };
131
+ };
132
+ /**
133
+ * Generate dynamic preference description for tool schema
134
+ */
135
+ export declare function getPreferenceDescription(): string;
136
+ /**
137
+ * Generate JSON schema for preferences
138
+ */
139
+ export declare function getPreferencesSchema(): {
140
+ type: string;
141
+ properties: {
142
+ templates: {
143
+ type: string;
144
+ description: string;
145
+ properties: {
146
+ auto_suggest: {
147
+ type: string;
148
+ };
149
+ suggestion_threshold: {
150
+ type: string;
151
+ minimum: number;
152
+ maximum: number;
153
+ };
154
+ max_suggestions: {
155
+ type: string;
156
+ minimum: number;
157
+ maximum: number;
158
+ };
159
+ show_preview: {
160
+ type: string;
161
+ };
162
+ remember_choice: {
163
+ type: string;
164
+ };
165
+ suppressed_categories: {
166
+ type: string;
167
+ items: {
168
+ type: string;
169
+ };
170
+ };
171
+ suppressed_templates: {
172
+ type: string;
173
+ items: {
174
+ type: string;
175
+ };
176
+ };
177
+ always_suggest: {
178
+ type: string;
179
+ items: {
180
+ type: string;
181
+ };
182
+ };
183
+ };
184
+ };
185
+ search: {
186
+ type: string;
187
+ description: string;
188
+ properties: {
189
+ default_limit: {
190
+ type: string;
191
+ minimum: number;
192
+ maximum: number;
193
+ };
194
+ include_low_trust: {
195
+ type: string;
196
+ };
197
+ weight_by_access: {
198
+ type: string;
199
+ };
200
+ weight_by_recency: {
201
+ type: string;
202
+ };
203
+ default_alpha: {
204
+ type: string;
205
+ minimum: number;
206
+ maximum: number;
207
+ };
208
+ };
209
+ };
210
+ location: {
211
+ type: string;
212
+ description: string;
213
+ properties: {
214
+ auto_capture: {
215
+ type: string;
216
+ };
217
+ precision: {
218
+ type: string;
219
+ enum: string[];
220
+ };
221
+ share_with_memories: {
222
+ type: string;
223
+ };
224
+ };
225
+ };
226
+ privacy: {
227
+ type: string;
228
+ description: string;
229
+ properties: {
230
+ default_trust_level: {
231
+ type: string;
232
+ minimum: number;
233
+ maximum: number;
234
+ };
235
+ allow_cross_user_access: {
236
+ type: string;
237
+ };
238
+ auto_approve_requests: {
239
+ type: string;
240
+ };
241
+ audit_logging: {
242
+ type: string;
243
+ };
244
+ };
245
+ };
246
+ notifications: {
247
+ type: string;
248
+ description: string;
249
+ properties: {
250
+ trust_violations: {
251
+ type: string;
252
+ };
253
+ access_requests: {
254
+ type: string;
255
+ };
256
+ memory_reminders: {
257
+ type: string;
258
+ };
259
+ relationship_suggestions: {
260
+ type: string;
261
+ };
262
+ };
263
+ };
264
+ display: {
265
+ type: string;
266
+ description: string;
267
+ properties: {
268
+ date_format: {
269
+ type: string;
270
+ };
271
+ time_format: {
272
+ type: string;
273
+ enum: string[];
274
+ };
275
+ timezone: {
276
+ type: string;
277
+ };
278
+ language: {
279
+ type: string;
280
+ };
281
+ };
282
+ };
283
+ };
284
+ };
285
+ //# sourceMappingURL=preferences.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preferences.types.d.ts","sourceRoot":"","sources":["../../src/types/preferences.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,OAAO,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;IACrD,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uBAAuB,EAAE,OAAO,CAAC;IACjC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,aAAa,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,wBAAwB,EAAE,OAAO,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,aAAa,EAAE,uBAAuB,CAAC;IACvC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,YAAY,GAAG,YAAY,CAyC9F,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,qFAOxB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyC1B,CAAC;AAEX;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAWjD;AAED;;GAEG;AACH,wBAAgB,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsEnC"}